Lynx/Modules/OTA Update UI/UpdateGate
@sigx/lynx-updates-ui · Beta · Component library

UpdateGate#

Wraps your app and blocks it behind a full-screen overlay while a mandatory update installs. Children always render; the overlay only covers them when state.mandatory is true.

Import#

TSX
import { UpdateGate } from '@sigx/lynx-updates-ui';

Usage#

Wrap your app's content in <UpdateGate> (its default slot). It renders the children normally at all times; when the headless package sees a mandatory: true manifest, a full-screen overlay covers them with a centered title + description, a Progress bar bound to the download, "Installing…" while applying, and a Retry button (re-runs Updates.download()) on error.

TSX
import { UpdateGate } from '@sigx/lynx-updates-ui';

<UpdateGate description="A required update is being installed.">
  <App />
</UpdateGate>

Only mandatory updates trigger the gate — optional updates flow through UpdatePrompt and UpdateReadyBanner, which never overlap the gate.

Custom blocked screen#

The named blocked slot replaces the built-in overlay entirely — bring your own blocked UI while still letting the gate decide when to show it.

TSX
<UpdateGate slots={{ blocked: () => <MyBlockedScreen /> }}>
  <App />
</UpdateGate>

Props#

PropTypeDefaultDescription
titlestring'Update required'Overlay headline.
descriptionstringCopy under the headline.
classstringExtra class for the overlay container.

Slots#

SlotDescription
defaultApp content — always mounted.
blockedEscape hatch: replaces the built-in blocked overlay entirely.

See the API reference and the headless @sigx/lynx-updates docs for how state.mandatory is set.