diff --git a/webapp/packages/core-administration/src/AdministrationScreen/ConfigurationWizard/ConfigurationWizardScreen.tsx b/webapp/packages/core-administration/src/AdministrationScreen/ConfigurationWizard/ConfigurationWizardScreen.tsx index 80a52e2c86..a366236048 100644 --- a/webapp/packages/core-administration/src/AdministrationScreen/ConfigurationWizard/ConfigurationWizardScreen.tsx +++ b/webapp/packages/core-administration/src/AdministrationScreen/ConfigurationWizard/ConfigurationWizardScreen.tsx @@ -22,7 +22,7 @@ import { WizardStepper } from './WizardStepper'; import { WizardTopAppBar } from './WizardTopAppBar/WizardTopAppBar'; export const ConfigurationWizardScreen = observer(function ConfigurationWizardScreen() { - useDataResource(PermissionsResource, undefined); + useDataResource(ConfigurationWizardScreen, PermissionsResource, undefined); const administrationItemService = useService(AdministrationItemService); const administrationScreenService = useService(AdministrationScreenService); diff --git a/webapp/packages/core-app/src/Body.tsx b/webapp/packages/core-app/src/Body.tsx index feaca98299..1ed430f838 100644 --- a/webapp/packages/core-app/src/Body.tsx +++ b/webapp/packages/core-app/src/Body.tsx @@ -34,7 +34,7 @@ export const Body = observer(function Body() { useAppLoadingScreen(); const style = useStyles(bodyStyles); const ref = useRef(null); - const permissionsService = useDataResource(PermissionsResource, undefined); + const permissionsService = useDataResource(Body, PermissionsResource, undefined); const screenService = useService(ScreenService); const Screen = screenService.screen?.component; const { backendVersion } = useAppVersion(); diff --git a/webapp/packages/core-blocks/src/useDataResource.ts b/webapp/packages/core-blocks/src/useDataResource.ts index b82e2b04df..4e6ef51ca7 100644 --- a/webapp/packages/core-blocks/src/useDataResource.ts +++ b/webapp/packages/core-blocks/src/useDataResource.ts @@ -37,6 +37,7 @@ export function useDataResource< TResource extends CachedDataResource, TKeyArg extends ResourceKey> >( + component: React.FC, ctor: IServiceConstructor | TResource, keyObj: TResource extends any ? TKeyArg | null : never, actions?: IActions @@ -47,6 +48,7 @@ export function useDataResource< const [exception, setException] = useState(null); const key = keyObj && typeof keyObj === 'object' && 'includes' in keyObj ? keyObj.key : keyObj; const includes = keyObj && typeof keyObj === 'object' && 'includes' in keyObj ? keyObj.includes : []; + const [loadFunctionName] = useState(component.name); const outdated = getComputed(() => ( (resource.isOutdated(key) || !resource.isLoaded(key, includes)) @@ -57,7 +59,7 @@ export function useDataResource< loading: false, firstRender: true, prevData: (isResourceKeyList(key) ? [] : undefined) as CachedResourceData | undefined, - async load(refresh?: boolean) { + async [loadFunctionName](refresh?: boolean) { const { loading, resource, actions, prevData } = refObj; if (loading) { @@ -132,7 +134,7 @@ export function useDataResource< }, reload: () => { setException(null); - refObj.load(true); + (refObj as any)[loadFunctionName](true); }, isLoading: () => { if (refObj.key === null) { @@ -153,7 +155,7 @@ export function useDataResource< } if (result.exception === null) { - refObj.load(); + (refObj as any)[loadFunctionName](); } }); diff --git a/webapp/packages/core-root/src/index.ts b/webapp/packages/core-root/src/index.ts index 84e2b35431..845d4e52a4 100644 --- a/webapp/packages/core-root/src/index.ts +++ b/webapp/packages/core-root/src/index.ts @@ -1,4 +1,5 @@ export * from './ConnectionNavigatorViewSettings'; +export * from './FeatureResource'; export * from './NetworkError'; export * from './NetworkStateService'; export * from './PermissionsResource';