2024-04-11 00:09:41 +03:00

36 lines
1.0 KiB
JavaScript

import RootStore from './root';
import { createContext } from 'react';
import { isServer } from 'tools/common';
/** @type {RootStore} */
let store;
export const StoreContext = createContext(store);
export function initializeStore(initialData) {
const _store = store ?? new RootStore();
if (initialData) {
const { calculation, tables, mode } = initialData;
if (calculation?.values) _store.$calculation.$values.hydrate(calculation.values);
if (calculation?.statuses) _store.$calculation.$status.hydrate(calculation.statuses);
if (calculation?.options) _store.$calculation.$options.hydrate(calculation.options);
if (tables?.insurance) {
_store.$tables.insurance.hydrate({
options: tables.insurance.options,
statuses: tables.insurance.statuses,
values: tables.insurance.values,
});
}
_store.$process.clear();
if (mode === 'unlimited') _store.$process.add('Unlimited');
}
if (isServer()) return _store;
if (!store) store = _store;
return _store;
}