Skip to content

Commit

Permalink
DRY the use of query common dictionaries
Browse files Browse the repository at this point in the history
  • Loading branch information
dtrucs committed Jul 25, 2023
1 parent 516c333 commit 4ae5d45
Show file tree
Hide file tree
Showing 9 changed files with 32 additions and 102 deletions.
13 changes: 2 additions & 11 deletions frontend/src/components/Map/hooks/usePopupResult.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,7 @@ import { PopupResult } from 'modules/trekResult/interface';
import { getTouristicContentPopupResult } from 'modules/touristicContent/connector';
import { useRouter } from 'next/router';
import { getDefaultLanguage } from 'modules/header/utills';
import { CommonDictionaries } from 'modules/dictionaries/interface';
import { getCommonDictionaries } from 'modules/dictionaries/connector';
import { ONE_DAY } from 'services/constants/staleTime';
import { queryCommonDictionaries } from 'modules/dictionaries/api';
import { getTouristicEventPopupResult } from '../../../modules/touristicEvent/connector';
import { getOutdoorSitePopupResult } from '../../../modules/outdoorSite/connector';

Expand All @@ -17,14 +15,7 @@ export const usePopupResult = (
type: 'TREK' | 'TOURISTIC_CONTENT' | 'OUTDOOR_SITE' | 'TOURISTIC_EVENT',
) => {
const language = useRouter().locale ?? getDefaultLanguage();

const { data: commonDictionaries } = useQuery<CommonDictionaries, Error>(
['commonDictionaries', language],
() => getCommonDictionaries(language),
{
staleTime: ONE_DAY / 2,
},
);
const commonDictionaries = queryCommonDictionaries(language);

const fetchData = () => {
if (type === 'TREK') return getTrekPopupResult(id, language);
Expand Down
16 changes: 2 additions & 14 deletions frontend/src/components/pages/details/useDetails.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,7 @@ import { useRouter } from 'next/router';
import { routes } from 'services/routes';
import { useMediaPredicate } from 'react-media-hook';
import useSectionsReferences from 'hooks/useSectionsReferences';
import { getCommonDictionaries } from 'modules/dictionaries/connector';
import { CommonDictionaries } from 'modules/dictionaries/interface';
import { queryCommonDictionaries } from 'modules/dictionaries/api';
import { getDetailsConfig } from './config';
import {
DetailsSectionOutdoorCourseNames,
Expand Down Expand Up @@ -46,18 +45,7 @@ export const useDetails = (
const path = isUrlString(slug) ? decodeURI(slug) : '';
const router = useRouter();

const { data: commonDictionaries } = useQuery<CommonDictionaries, Error>(
['commonDictionaries', language],
() => getCommonDictionaries(language),
{
onError: async error => {
if (isRessourceMissing(error)) {
await router.push(routes.HOME);
}
},
staleTime: ONE_DAY / 2,
},
);
const commonDictionaries = queryCommonDictionaries(language);

const {
data: details,
Expand Down
12 changes: 2 additions & 10 deletions frontend/src/components/pages/home/useHome.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,7 @@ import { HomePageConfig } from 'modules/home/interface';
import { adaptSuggestions, getHomePageConfig } from 'modules/home/utils';
import { useRouter } from 'next/router';
import { useQuery } from '@tanstack/react-query';
import { CommonDictionaries } from 'modules/dictionaries/interface';
import { getCommonDictionaries } from 'modules/dictionaries/connector';
import { ONE_DAY } from 'services/constants/staleTime';
import { queryCommonDictionaries } from 'modules/dictionaries/api';
interface UseHome {
config: HomePageConfig;
suggestions: ActivitySuggestion[];
Expand All @@ -22,13 +20,7 @@ export const useHome = (): UseHome => {
'ids' in suggestion ? suggestion.ids : [suggestion.type],
);

const { data: commonDictionaries } = useQuery<CommonDictionaries, Error>(
['commonDictionaries', language],
() => getCommonDictionaries(language),
{
staleTime: ONE_DAY / 2,
},
);
const commonDictionaries = queryCommonDictionaries(language);

const { data = [] } = useQuery<ActivitySuggestion[] | [], Error>(
['activitySuggestions', `Suggestion-${activitySuggestionIds.join('-')}`, language],
Expand Down
14 changes: 3 additions & 11 deletions frontend/src/components/pages/search/hooks/useTrekResults.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
import { useRouter } from 'next/router';
import { useInfiniteQuery, useQuery } from '@tanstack/react-query';
import { useInfiniteQuery } from '@tanstack/react-query';
import { useEffect, useRef, useState } from 'react';

import { getSearchResults } from 'modules/results/connector';
import { SearchResults } from 'modules/results/interface';
import { DateFilter, FilterState } from 'modules/filters/interface';

import { CommonDictionaries } from 'modules/dictionaries/interface';
import { getCommonDictionaries } from 'modules/dictionaries/connector';
import { ONE_DAY } from 'services/constants/staleTime';
import { queryCommonDictionaries } from 'modules/dictionaries/api';
import { formatInfiniteQuery, parseBboxFilter, parseFilters, parseTextFilter } from '../utils';
import { getGlobalConfig } from '../../../../modules/utils/api.config';

Expand Down Expand Up @@ -68,13 +66,7 @@ export const useTrekResults = (

const router = useRouter();

const { data: commonDictionaries } = useQuery<CommonDictionaries, Error>(
['commonDictionaries', language],
() => getCommonDictionaries(language),
{
staleTime: ONE_DAY / 2,
},
);
const commonDictionaries = queryCommonDictionaries(language);

const {
data,
Expand Down
16 changes: 2 additions & 14 deletions frontend/src/components/pages/site/useOutdoorCourse.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,10 @@ import { isUrlString } from 'modules/utils/string';
import { useState } from 'react';
import { useQuery } from '@tanstack/react-query';
import { useRouter } from 'next/router';
import { CommonDictionaries } from 'modules/dictionaries/interface';
import { getCommonDictionaries } from 'modules/dictionaries/connector';
import { isRessourceMissing } from 'services/routeUtils';
import { routes } from 'services/routes';
import { ONE_DAY } from 'services/constants/staleTime';
import { queryCommonDictionaries } from 'modules/dictionaries/api';
import { DetailsSections } from '../details/useDetails';
import { getDetailsConfig } from '../details/config';
import { OutdoorCourseDetails } from '../../../modules/outdoorCourse/interface';
Expand All @@ -22,18 +21,7 @@ export const useOutdoorCourse = (

const router = useRouter();

const { data: commonDictionaries } = useQuery<CommonDictionaries, Error>(
['commonDictionaries', language],
() => getCommonDictionaries(language),
{
onError: async error => {
if (isRessourceMissing(error)) {
await router.push(routes.HOME);
}
},
staleTime: ONE_DAY / 2,
},
);
const commonDictionaries = queryCommonDictionaries(language);

const { data, refetch, isLoading } = useQuery<OutdoorCourseDetails, Error>(
['outdoorCourseDetails', id, language],
Expand Down
16 changes: 2 additions & 14 deletions frontend/src/components/pages/site/useOutdoorSite.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,10 @@ import { isUrlString } from 'modules/utils/string';
import { useState } from 'react';
import { useQuery } from '@tanstack/react-query';
import { ONE_DAY } from 'services/constants/staleTime';
import { CommonDictionaries } from 'modules/dictionaries/interface';
import { getCommonDictionaries } from 'modules/dictionaries/connector';
import { isRessourceMissing } from 'services/routeUtils';
import { useRouter } from 'next/router';
import { routes } from 'services/routes';
import { queryCommonDictionaries } from 'modules/dictionaries/api';
import { getOutdoorSiteDetails } from '../../../modules/outdoorSite/connector';
import { OutdoorSiteDetails } from '../../../modules/outdoorSite/interface';
import { getDetailsConfig } from '../details/config';
Expand All @@ -18,18 +17,7 @@ export const useOutdoorSite = (outdoorSiteUrl: string | string[] | undefined, la
const path = isUrlString(outdoorSiteUrl) ? decodeURI(outdoorSiteUrl) : '';
const router = useRouter();

const { data: commonDictionaries } = useQuery<CommonDictionaries, Error>(
['commonDictionaries', language],
() => getCommonDictionaries(language),
{
onError: async error => {
if (isRessourceMissing(error)) {
await router.push(routes.HOME);
}
},
staleTime: ONE_DAY / 2,
},
);
const commonDictionaries = queryCommonDictionaries(language);

const { data, refetch, isLoading } = useQuery<OutdoorSiteDetails, Error>(
['outdoorSiteDetails', id, language],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,7 @@ import { useRouter } from 'next/router';
import { ONE_DAY } from 'services/constants/staleTime';
import { routes } from 'services/routes';
import useSectionsReferences from 'hooks/useSectionsReferences';
import { getCommonDictionaries } from 'modules/dictionaries/connector';
import { CommonDictionaries } from 'modules/dictionaries/interface';
import { queryCommonDictionaries } from 'modules/dictionaries/api';
import { DetailsSections } from '../details/useDetails';
import { getDetailsConfig } from '../details/config';

Expand All @@ -23,18 +22,7 @@ export const useTouristicContent = (
const path = isTouristicContentUrlString ? decodeURI(touristicContentUrl) : '';
const router = useRouter();

const { data: commonDictionaries } = useQuery<CommonDictionaries, Error>(
['commonDictionaries', language],
() => getCommonDictionaries(language),
{
onError: async error => {
if (isRessourceMissing(error)) {
await router.push(routes.HOME);
}
},
staleTime: ONE_DAY / 2,
},
);
const commonDictionaries = queryCommonDictionaries(language);

const { data, refetch, isLoading } = useQuery<TouristicContentDetails, Error>(
['touristicContentDetails', id, language],
Expand Down
16 changes: 2 additions & 14 deletions frontend/src/components/pages/touristicEvent/useTouristicEvent.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,7 @@ import { useRouter } from 'next/router';
import { ONE_DAY } from 'services/constants/staleTime';
import { routes } from 'services/routes';
import useSectionsReferences from 'hooks/useSectionsReferences';
import { getCommonDictionaries } from 'modules/dictionaries/connector';
import { CommonDictionaries } from 'modules/dictionaries/interface';
import { queryCommonDictionaries } from 'modules/dictionaries/api';
import { getTouristicEventDetails } from '../../../modules/touristicEvent/connector';
import { TouristicEventDetails } from '../../../modules/touristicEvent/interface';
import { getDetailsConfig } from '../details/config';
Expand All @@ -21,18 +20,7 @@ export const useTouristicEvent = (
const path = isUrlString(touristicEventUrl) ? decodeURI(touristicEventUrl) : '';
const router = useRouter();

const { data: commonDictionaries } = useQuery<CommonDictionaries, Error>(
['commonDictionaries', language],
() => getCommonDictionaries(language),
{
onError: async error => {
if (isRessourceMissing(error)) {
await router.push(routes.HOME);
}
},
staleTime: ONE_DAY / 2,
},
);
const commonDictionaries = queryCommonDictionaries(language);

const { data, refetch, isLoading } = useQuery<TouristicEventDetails, Error>(
['outdoorCourseDetails', id, language],
Expand Down
15 changes: 15 additions & 0 deletions frontend/src/modules/dictionaries/api.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import { useQuery } from '@tanstack/react-query';
import { ONE_DAY } from 'services/constants/staleTime';
import { CommonDictionaries } from './interface';
import { getCommonDictionaries } from './connector';

export const queryCommonDictionaries = (language: string) => {
const { data } = useQuery<CommonDictionaries, Error>(
['commonDictionaries', language],
() => getCommonDictionaries(language),
{
staleTime: ONE_DAY / 2,
},
);
return data;
};

0 comments on commit 4ae5d45

Please sign in to comment.