2022-12-27 13:10:09 +03:00

36 lines
1.0 KiB
JavaScript

/* eslint-disable object-curly-newline */
/* eslint-disable @typescript-eslint/naming-convention */
/* eslint-disable no-underscore-dangle */
import { createContext } from 'react';
import { isServer } from 'tools/common';
import RootStore from './root';
/** @type{RootStore} */
let store;
export const StoreContext = createContext(store);
export function initializeStore(initialData) {
const _store = store ?? new RootStore();
if (initialData) {
const { calculation, tables } = 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({
values: tables.insurance.values,
options: tables.insurance.options,
statuses: tables.insurance.statuses,
});
}
}
if (isServer()) return _store;
if (!store) store = _store;
return _store;
}