@renegade-fi/core
Version:
VanillaJS library for Renegade
32 lines (25 loc) • 902 B
text/typescript
import { reconnect } from "./actions/reconnect.js";
import type { Config, State } from "./createConfig.js";
type HydrateParameters = {
initialState?: State | undefined;
reconnectOnMount?: boolean | undefined;
};
export function hydrate(config: Config | undefined, parameters: HydrateParameters) {
if (!config) return { onMount: () => {} };
const { initialState, reconnectOnMount } = parameters;
if (initialState && !config._internal.store.persist.hasHydrated())
config.setState({
...initialState,
status: reconnectOnMount ? initialState.status : "disconnected",
});
return {
async onMount() {
if (config._internal.ssr) {
await config._internal.store.persist.rehydrate();
}
if (reconnectOnMount) {
await reconnect(config);
}
},
};
}