Skip to content

Commit 749dd92

Browse files
authored
removes FooterProvider in favor of just useQuery (#2125)
* removes FooterProvider in favor of just useQuery * removes prefetching of footerlayout
1 parent 1388b02 commit 749dd92

File tree

5 files changed

+32
-74
lines changed

5 files changed

+32
-74
lines changed

src/features/footer/Footer.tsx

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,33 @@
1-
import React, { useMemo } from 'react';
1+
import React from 'react';
22

3+
import { useQuery } from '@tanstack/react-query';
34
import cn from 'classnames';
45

56
import { AltinnLogo, LogoColor } from 'src/components/logo/AltinnLogo';
7+
import { useAppQueries } from 'src/core/contexts/AppQueriesProvider';
68
import { ContextNotProvided } from 'src/core/contexts/context';
9+
import { DisplayError } from 'src/core/errorHandling/DisplayError';
710
import { useLaxApplicationMetadata } from 'src/features/applicationMetadata/ApplicationMetadataProvider';
811
import { createFooterComponent } from 'src/features/footer';
912
import classes from 'src/features/footer/Footer.module.css';
10-
import { useFooterLayout } from 'src/features/footer/FooterLayoutProvider';
1113

1214
export const Footer = () => {
13-
const footerLayout = useFooterLayout();
15+
const { fetchFooterLayout } = useAppQueries();
16+
const { data, error: footerLayoutError } = useQuery({
17+
queryKey: ['fetchFooterLayout'],
18+
queryFn: fetchFooterLayout,
19+
staleTime: 1000 * 60 * 60 * 24, // 24 hours
20+
});
21+
1422
const application = useLaxApplicationMetadata();
23+
24+
if (footerLayoutError) {
25+
return <DisplayError error={footerLayoutError} />;
26+
}
27+
1528
const shouldUseOrgLogo = application !== ContextNotProvided && application.logo != null;
1629

17-
const components = useMemo(() => footerLayout.map((props) => createFooterComponent(props)), [footerLayout]);
30+
const components = data?.footer?.map((props) => createFooterComponent(props)) ?? [];
1831
if (!components.length && !shouldUseOrgLogo) {
1932
return null;
2033
}

src/features/footer/FooterLayoutProvider.tsx

Lines changed: 0 additions & 47 deletions
This file was deleted.

src/index.tsx

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ import { AppQueriesProvider } from 'src/core/contexts/AppQueriesProvider';
2222
import { WindowTitleProvider } from 'src/core/ui/WindowTitleProvider';
2323
import { ApplicationMetadataProvider } from 'src/features/applicationMetadata/ApplicationMetadataProvider';
2424
import { ApplicationSettingsProvider } from 'src/features/applicationSettings/ApplicationSettingsProvider';
25-
import { FooterLayoutProvider } from 'src/features/footer/FooterLayoutProvider';
2625
import { UiConfigProvider } from 'src/features/form/layout/UiConfigContext';
2726
import { LayoutSetsProvider } from 'src/features/form/layoutSets/LayoutSetsProvider';
2827
import { GlobalFormDataReadersProvider } from 'src/features/formData/FormDataReaders';
@@ -87,22 +86,20 @@ function Root() {
8786
<TextResourcesProvider>
8887
<OrgsProvider>
8988
<ApplicationSettingsProvider>
90-
<FooterLayoutProvider>
91-
<PartyProvider>
92-
<KeepAliveProvider>
93-
<WindowTitleProvider>
94-
<App />
95-
<ToastContainer
96-
position='top-center'
97-
theme='colored'
98-
transition={Slide}
99-
draggable={false}
100-
/>
101-
<ScrollRestoration />
102-
</WindowTitleProvider>
103-
</KeepAliveProvider>
104-
</PartyProvider>
105-
</FooterLayoutProvider>
89+
<PartyProvider>
90+
<KeepAliveProvider>
91+
<WindowTitleProvider>
92+
<App />
93+
<ToastContainer
94+
position='top-center'
95+
theme='colored'
96+
transition={Slide}
97+
draggable={false}
98+
/>
99+
<ScrollRestoration />
100+
</WindowTitleProvider>
101+
</KeepAliveProvider>
102+
</PartyProvider>
106103
</ApplicationSettingsProvider>
107104
</OrgsProvider>
108105
</TextResourcesProvider>

src/queries/appPrefetcher.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import { matchPath } from 'react-router-dom';
33
import { usePrefetchQuery } from 'src/core/queries/usePrefetchQuery';
44
import { useApplicationMetadataQueryDef } from 'src/features/applicationMetadata/ApplicationMetadataProvider';
55
import { useApplicationSettingsQueryDef } from 'src/features/applicationSettings/ApplicationSettingsProvider';
6-
import { useFooterLayoutQueryDef } from 'src/features/footer/FooterLayoutProvider';
76
import { useLayoutSetsQueryDef } from 'src/features/form/layoutSets/LayoutSetsProvider';
87
import { useInstanceDataQueryDef } from 'src/features/instance/InstanceContext';
98
import { useProcessQueryDef } from 'src/features/instance/ProcessContext';
@@ -26,7 +25,6 @@ export function AppPrefetcher() {
2625
usePrefetchQuery(useProfileQueryDef(true), Boolean(partyId));
2726
usePrefetchQuery(useOrgsQueryDef());
2827
usePrefetchQuery(useApplicationSettingsQueryDef());
29-
usePrefetchQuery(useFooterLayoutQueryDef());
3028
usePrefetchQuery(usePartiesQueryDef(true), Boolean(partyId));
3129
usePrefetchQuery(useCurrentPartyQueryDef(true), Boolean(partyId));
3230

src/test/renderWithProviders.tsx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ import { AppQueriesProvider } from 'src/core/contexts/AppQueriesProvider';
2525
import { RenderStart } from 'src/core/ui/RenderStart';
2626
import { ApplicationMetadataProvider } from 'src/features/applicationMetadata/ApplicationMetadataProvider';
2727
import { ApplicationSettingsProvider } from 'src/features/applicationSettings/ApplicationSettingsProvider';
28-
import { FooterLayoutProvider } from 'src/features/footer/FooterLayoutProvider';
2928
import { FormProvider } from 'src/features/form/FormContext';
3029
import { PageNavigationProvider } from 'src/features/form/layout/PageNavigationContext';
3130
import { UiConfigProvider } from 'src/features/form/layout/UiConfigContext';
@@ -284,9 +283,7 @@ function DefaultProviders({ children, queries, queryClient, Router = DefaultRout
284283
<ProfileProvider>
285284
<PartyProvider>
286285
<TextResourcesProvider>
287-
<FooterLayoutProvider>
288-
<InstantiationProvider>{children}</InstantiationProvider>
289-
</FooterLayoutProvider>
286+
<InstantiationProvider>{children}</InstantiationProvider>
290287
</TextResourcesProvider>
291288
</PartyProvider>
292289
</ProfileProvider>

0 commit comments

Comments
 (0)