diff --git a/platform/viewer/src/App.jsx b/platform/viewer/src/App.jsx
index c65292a05..969977107 100644
--- a/platform/viewer/src/App.jsx
+++ b/platform/viewer/src/App.jsx
@@ -14,8 +14,7 @@ import {
} from '@ohif/ui';
// Viewer Project
// TODO: Should this influence study list?
-import { appConfigContext } from '@state/appConfig.context';
-import { useAppConfig } from '@hooks/useAppConfig';
+import { AppConfigProvider } from '@state';
import createRoutes from './routes';
import appInit from './appInit.js';
@@ -41,8 +40,8 @@ function App({ config, defaultExtensions }) {
servicesManager = init.servicesManager;
// Set appConfig
- const appConfigContextApi = useAppConfig(init.appConfig);
- const { routerBasename, modes, dataSources } = appConfigContextApi.appConfig;
+ const appConfigState = init.appConfig;
+ const { routerBasename, modes, dataSources } = appConfigState;
// Use config to create routes
const appRoutes = createRoutes(
modes,
@@ -97,7 +96,7 @@ function App({ config, defaultExtensions }) {
};
return (
-
+
-
+
);
}
diff --git a/platform/viewer/src/hooks/useAppConfig.js b/platform/viewer/src/hooks/useAppConfig.js
deleted file mode 100644
index bf50e040e..000000000
--- a/platform/viewer/src/hooks/useAppConfig.js
+++ /dev/null
@@ -1,17 +0,0 @@
-import { useCallback, useState } from 'react';
-
-/**
- * Implements the state/methods defined in `appConfig.context`.
- */
-export const useAppConfig = initialValue => {
- const [appConfig, setAppConfig] = useState(initialValue || {});
-
- const setCurrentAppConfig = useCallback(updatedConfig => {
- setAppConfig(updatedConfig);
- }, []);
-
- return {
- appConfig,
- setCurrentAppConfig,
- };
-};
diff --git a/platform/viewer/src/routes/DataSourceWrapper.jsx b/platform/viewer/src/routes/DataSourceWrapper.jsx
index d9a5348e1..d0a0711e3 100644
--- a/platform/viewer/src/routes/DataSourceWrapper.jsx
+++ b/platform/viewer/src/routes/DataSourceWrapper.jsx
@@ -1,9 +1,9 @@
/* eslint-disable react/jsx-props-no-spreading */
-import React, { useContext, useEffect, useState } from 'react';
+import React, { useEffect, useState } from 'react';
import PropTypes from 'prop-types';
import { MODULE_TYPES } from '@ohif/core';
//
-import { appConfigContext } from '../state/appConfig.context';
+import { useAppConfig } from '@state';
import { extensionManager } from '../App.jsx';
/**
@@ -15,7 +15,7 @@ import { extensionManager } from '../App.jsx';
* @param {function} props.children - Layout Template React Component
*/
function DataSourceWrapper(props) {
- const { appConfig } = useContext(appConfigContext);
+ const [appConfig] = useAppConfig();
const { children: LayoutTemplate, history, ...rest } = props;
const queryFilterValues = _getQueryFilterValues(history.location.search);
diff --git a/platform/viewer/src/routes/WorkList/WorkList.jsx b/platform/viewer/src/routes/WorkList/WorkList.jsx
index 4bf8c2ce3..4724ce80b 100644
--- a/platform/viewer/src/routes/WorkList/WorkList.jsx
+++ b/platform/viewer/src/routes/WorkList/WorkList.jsx
@@ -6,7 +6,8 @@ import moment from 'moment';
import qs from 'query-string';
//
import filtersMeta from './filtersMeta.js';
-import { useDebounce, useQuery } from './../../hooks';
+import { useAppConfig } from '@state';
+import { useDebounce, useQuery } from '@hooks';
import {
Icon,
@@ -28,6 +29,9 @@ const seriesInStudiesMap = new Map();
* - debounce `setFilterValues` (150ms?)
*/
function WorkList({ history, data: studies, dataSource }) {
+ // ~ Modes
+ const [appConfig] = useAppConfig();
+ console.warn('~~~~~~~~~~~~', appConfig);
// ~ Filters
const query = useQuery();
const queryFilterValues = _getQueryFilterValues(query);
@@ -176,7 +180,7 @@ function WorkList({ history, data: studies, dataSource }) {
continue;
}
- console.log(`fetching for ${expandedRowIndex}`)
+ console.log(`fetching for ${expandedRowIndex}`);
fetchSeries(studyInstanceUid);
}
// eslint-disable-next-line react-hooks/exhaustive-deps
@@ -319,7 +323,7 @@ function WorkList({ history, data: studies, dataSource }) {
rounded="full"
variant="outlined"
endIcon={}
- className="font-bold ml-4"
+ className="ml-4 font-bold"
>
View: Segmentation
@@ -348,7 +352,7 @@ function WorkList({ history, data: studies, dataSource }) {
-
+
FOR INVESTIGATIONAL USE ONLY
{},
-};
-
-export const appConfigContext = createContext(APP_CONFIG_DEFAULT_VALUE);
diff --git a/platform/viewer/src/state/appConfig.js b/platform/viewer/src/state/appConfig.js
new file mode 100644
index 000000000..8d7388153
--- /dev/null
+++ b/platform/viewer/src/state/appConfig.js
@@ -0,0 +1,20 @@
+import React, { useState, createContext, useContext } from 'react';
+import PropTypes from 'prop-types';
+
+const appConfigContext = createContext(null);
+const { Provider } = appConfigContext;
+
+export const useAppConfig = () => useContext(appConfigContext);
+
+export function AppConfigProvider({ children, value: initAppConfig }) {
+ const [appConfig, setAppConfig] = useState(initAppConfig);
+
+ return {children};
+}
+
+AppConfigProvider.propTypes = {
+ children: PropTypes.any,
+ value: PropTypes.any,
+};
+
+export default AppConfigProvider;
diff --git a/platform/viewer/src/state/index.js b/platform/viewer/src/state/index.js
new file mode 100644
index 000000000..e3a38870e
--- /dev/null
+++ b/platform/viewer/src/state/index.js
@@ -0,0 +1,3 @@
+import { AppConfigProvider, useAppConfig } from './appConfig.js';
+
+export { AppConfigProvider, useAppConfig };