| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- import AppStore from "./stores/AppStore";
- // Get environment settings
- const getEnvironment = async () => {
- /* istanbul ignore next */
- if (process.env.NODE_ENV === "development" && !process.env.BUILD_NO_SERVER) {
- return (await import("./env/development")).default;
- }
- return (await import("./env/production")).default;
- };
- // Configure default store
- export const configureStore = async (params, events) => {
- if (params.options?.secureMode) window.LS_SECURE_MODE = true;
- const env = await getEnvironment();
- params = { ...params };
- // Support forceBottomPanel option
- if (params?.settings?.forceBottomPanel) {
- params.bottomSidePanel = true;
- params.settings = { ...(params.settings || {}), forceBottomPanel: true };
- }
- if (!params?.config && env.getExample) {
- const { task, config } = await env.getExample();
- params.config = config;
- params.task = task;
- } else if (params?.task) {
- params.task = env.getData(params.task);
- }
- if (params.task?.id) {
- params.taskHistory = [{ taskId: params.task.id, annotationId: null }];
- }
- const store = AppStore.create(params, {
- ...env.configureApplication(params),
- events,
- });
- store.initializeStore({
- ...(params.task ?? {}),
- // allow external integrations to control when the app is fully hydrated
- // default behaviour is to consider this point as hydrated
- hydrated: params?.hydrated ?? true,
- users: params.users ?? [],
- annotationHistory: params.history ?? [],
- });
- return { store, getRoot: env.rootElement };
- };
|