| name | angular-persist |
| description | Gate Angular UI on Persist hydration with useHydrated (readonly Signal). Call inside an injection context; use when avoiding flash of default state on async backends. |
| license | MIT |
| metadata | {"type":"framework","library":"@stainless-code/persist","library_version":"0.4.1","framework":"angular"} |
| requires | ["persist"] |
| sources | ["stainless-code/persist:src/adapters/frameworks/angular.ts"] |
Angular hydration gate
@stainless-code/persist/frameworks/angular returns a readonly Signal<boolean>. A real signal needs an injection context (effect()); null/undefined returns a shared signal(true) without effect().
Install
bun add @stainless-code/persist @angular/core
Peer: @angular/core >=17.0.0.
Minimal wiring
import { useHydrated } from "@stainless-code/persist/frameworks/angular";
export class PrefsComponent {
hydrated = useHydrated(prefsHydration);
}
@if (hydrated()) {
<prefs-panel />
} @else {
<skeleton />
}
Common mistakes
- Calling outside injection context.
- Treating the signal as store state.
- SSR / null signal — both surface as hydrated
true.
API surface
useHydrated(signal) → Signal<boolean> (readonly)