Make sure WorkList has access to AppConfig
This commit is contained in:
parent
6e65e7eaf5
commit
c3ecbadbc2
@ -14,8 +14,7 @@ import {
|
|||||||
} from '@ohif/ui';
|
} from '@ohif/ui';
|
||||||
// Viewer Project
|
// Viewer Project
|
||||||
// TODO: Should this influence study list?
|
// TODO: Should this influence study list?
|
||||||
import { appConfigContext } from '@state/appConfig.context';
|
import { AppConfigProvider } from '@state';
|
||||||
import { useAppConfig } from '@hooks/useAppConfig';
|
|
||||||
import createRoutes from './routes';
|
import createRoutes from './routes';
|
||||||
import appInit from './appInit.js';
|
import appInit from './appInit.js';
|
||||||
|
|
||||||
@ -41,8 +40,8 @@ function App({ config, defaultExtensions }) {
|
|||||||
servicesManager = init.servicesManager;
|
servicesManager = init.servicesManager;
|
||||||
|
|
||||||
// Set appConfig
|
// Set appConfig
|
||||||
const appConfigContextApi = useAppConfig(init.appConfig);
|
const appConfigState = init.appConfig;
|
||||||
const { routerBasename, modes, dataSources } = appConfigContextApi.appConfig;
|
const { routerBasename, modes, dataSources } = appConfigState;
|
||||||
// Use config to create routes
|
// Use config to create routes
|
||||||
const appRoutes = createRoutes(
|
const appRoutes = createRoutes(
|
||||||
modes,
|
modes,
|
||||||
@ -97,7 +96,7 @@ function App({ config, defaultExtensions }) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<appConfigContext.Provider value={appConfigContextApi}>
|
<AppConfigProvider value={appConfigState}>
|
||||||
<Router basename={routerBasename}>
|
<Router basename={routerBasename}>
|
||||||
<ThemeWrapper>
|
<ThemeWrapper>
|
||||||
<ViewportGridProvider
|
<ViewportGridProvider
|
||||||
@ -121,7 +120,7 @@ function App({ config, defaultExtensions }) {
|
|||||||
</ViewportGridProvider>
|
</ViewportGridProvider>
|
||||||
</ThemeWrapper>
|
</ThemeWrapper>
|
||||||
</Router>
|
</Router>
|
||||||
</appConfigContext.Provider>
|
</AppConfigProvider>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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,
|
|
||||||
};
|
|
||||||
};
|
|
||||||
@ -1,9 +1,9 @@
|
|||||||
/* eslint-disable react/jsx-props-no-spreading */
|
/* 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 PropTypes from 'prop-types';
|
||||||
import { MODULE_TYPES } from '@ohif/core';
|
import { MODULE_TYPES } from '@ohif/core';
|
||||||
//
|
//
|
||||||
import { appConfigContext } from '../state/appConfig.context';
|
import { useAppConfig } from '@state';
|
||||||
import { extensionManager } from '../App.jsx';
|
import { extensionManager } from '../App.jsx';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -15,7 +15,7 @@ import { extensionManager } from '../App.jsx';
|
|||||||
* @param {function} props.children - Layout Template React Component
|
* @param {function} props.children - Layout Template React Component
|
||||||
*/
|
*/
|
||||||
function DataSourceWrapper(props) {
|
function DataSourceWrapper(props) {
|
||||||
const { appConfig } = useContext(appConfigContext);
|
const [appConfig] = useAppConfig();
|
||||||
const { children: LayoutTemplate, history, ...rest } = props;
|
const { children: LayoutTemplate, history, ...rest } = props;
|
||||||
const queryFilterValues = _getQueryFilterValues(history.location.search);
|
const queryFilterValues = _getQueryFilterValues(history.location.search);
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,8 @@ import moment from 'moment';
|
|||||||
import qs from 'query-string';
|
import qs from 'query-string';
|
||||||
//
|
//
|
||||||
import filtersMeta from './filtersMeta.js';
|
import filtersMeta from './filtersMeta.js';
|
||||||
import { useDebounce, useQuery } from './../../hooks';
|
import { useAppConfig } from '@state';
|
||||||
|
import { useDebounce, useQuery } from '@hooks';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
Icon,
|
Icon,
|
||||||
@ -28,6 +29,9 @@ const seriesInStudiesMap = new Map();
|
|||||||
* - debounce `setFilterValues` (150ms?)
|
* - debounce `setFilterValues` (150ms?)
|
||||||
*/
|
*/
|
||||||
function WorkList({ history, data: studies, dataSource }) {
|
function WorkList({ history, data: studies, dataSource }) {
|
||||||
|
// ~ Modes
|
||||||
|
const [appConfig] = useAppConfig();
|
||||||
|
console.warn('~~~~~~~~~~~~', appConfig);
|
||||||
// ~ Filters
|
// ~ Filters
|
||||||
const query = useQuery();
|
const query = useQuery();
|
||||||
const queryFilterValues = _getQueryFilterValues(query);
|
const queryFilterValues = _getQueryFilterValues(query);
|
||||||
@ -176,7 +180,7 @@ function WorkList({ history, data: studies, dataSource }) {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(`fetching for ${expandedRowIndex}`)
|
console.log(`fetching for ${expandedRowIndex}`);
|
||||||
fetchSeries(studyInstanceUid);
|
fetchSeries(studyInstanceUid);
|
||||||
}
|
}
|
||||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
@ -319,7 +323,7 @@ function WorkList({ history, data: studies, dataSource }) {
|
|||||||
rounded="full"
|
rounded="full"
|
||||||
variant="outlined"
|
variant="outlined"
|
||||||
endIcon={<Icon name="launch-info" />}
|
endIcon={<Icon name="launch-info" />}
|
||||||
className="font-bold ml-4"
|
className="ml-4 font-bold"
|
||||||
>
|
>
|
||||||
View: Segmentation
|
View: Segmentation
|
||||||
</Button>
|
</Button>
|
||||||
@ -348,7 +352,7 @@ function WorkList({ history, data: studies, dataSource }) {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex items-center">
|
<div className="flex items-center">
|
||||||
<span className="mr-3 text-common-light text-lg">
|
<span className="mr-3 text-lg text-common-light">
|
||||||
FOR INVESTIGATIONAL USE ONLY
|
FOR INVESTIGATIONAL USE ONLY
|
||||||
</span>
|
</span>
|
||||||
<IconButton
|
<IconButton
|
||||||
|
|||||||
@ -1,8 +0,0 @@
|
|||||||
import { createContext } from 'react';
|
|
||||||
|
|
||||||
export const APP_CONFIG_DEFAULT_VALUE = {
|
|
||||||
appConfig: {},
|
|
||||||
setCurrentAppConfig: () => {},
|
|
||||||
};
|
|
||||||
|
|
||||||
export const appConfigContext = createContext(APP_CONFIG_DEFAULT_VALUE);
|
|
||||||
20
platform/viewer/src/state/appConfig.js
Normal file
20
platform/viewer/src/state/appConfig.js
Normal file
@ -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 <Provider value={[appConfig]}>{children}</Provider>;
|
||||||
|
}
|
||||||
|
|
||||||
|
AppConfigProvider.propTypes = {
|
||||||
|
children: PropTypes.any,
|
||||||
|
value: PropTypes.any,
|
||||||
|
};
|
||||||
|
|
||||||
|
export default AppConfigProvider;
|
||||||
3
platform/viewer/src/state/index.js
Normal file
3
platform/viewer/src/state/index.js
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
import { AppConfigProvider, useAppConfig } from './appConfig.js';
|
||||||
|
|
||||||
|
export { AppConfigProvider, useAppConfig };
|
||||||
Loading…
Reference in New Issue
Block a user