From c603ef60d4e9ae6bd5006cd2e96b7e0d8c812c51 Mon Sep 17 00:00:00 2001 From: Jordane Minaya Date: Mon, 11 Jul 2022 14:38:46 +0200 Subject: [PATCH 1/7] feat: adapt use map results for date filter --- frontend/src/components/pages/search/Search.tsx | 2 +- .../pages/search/hooks/useMapResults.ts | 10 ++++++---- frontend/src/modules/mapResults/connector.ts | 16 +++++++++++++--- 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/frontend/src/components/pages/search/Search.tsx b/frontend/src/components/pages/search/Search.tsx index 787e55c3b..97e5c4f5c 100644 --- a/frontend/src/components/pages/search/Search.tsx +++ b/frontend/src/components/pages/search/Search.tsx @@ -83,7 +83,7 @@ export const SearchUI: React.FC = ({ language }) => { hideMobileMap, } = useTrekResults({ filtersState, textFilterState, bboxState, dateFilter }, language); - const { isMapLoading } = useMapResults({ filtersState, textFilterState }, language); + const { isMapLoading } = useMapResults({ filtersState, textFilterState, dateFilter }, language); const intl = useIntl(); diff --git a/frontend/src/components/pages/search/hooks/useMapResults.ts b/frontend/src/components/pages/search/hooks/useMapResults.ts index ca42d4252..09f093cd4 100644 --- a/frontend/src/components/pages/search/hooks/useMapResults.ts +++ b/frontend/src/components/pages/search/hooks/useMapResults.ts @@ -3,7 +3,7 @@ import { useQuery } from 'react-query'; import { getMapResults } from 'modules/mapResults/connector'; import { MapResults } from 'modules/mapResults/interface'; -import { FilterState } from 'modules/filters/interface'; +import { DateFilter, FilterState } from 'modules/filters/interface'; import { ListAndMapContext } from '../../../../modules/map/ListAndMapContext'; import { parseFilters, parseTextFilter } from '../utils'; @@ -16,18 +16,20 @@ export const useMapResults = ( filters: { filtersState: FilterState[]; textFilterState: string | null; + dateFilter: DateFilter | null; }, language: string, ): ReturnType => { const { setPoints } = useContext(ListAndMapContext); - const { filtersState, textFilterState } = filters; + const { filtersState, textFilterState, dateFilter } = filters; const parsedFiltersState = parseFilters(filtersState); const { data: mapResults, isLoading: isMapLoading } = useQuery( - ['mapResults', parsedFiltersState, language, parseTextFilter(textFilterState)], - () => getMapResults({ filtersState: parsedFiltersState, textFilterState }, language), + ['mapResults', parsedFiltersState, language, parseTextFilter(textFilterState), dateFilter], + () => + getMapResults({ filtersState: parsedFiltersState, textFilterState, dateFilter }, language), ); if (mapResults) setPoints(mapResults); diff --git a/frontend/src/modules/mapResults/connector.ts b/frontend/src/modules/mapResults/connector.ts index d1c07f7d0..bdb76279e 100644 --- a/frontend/src/modules/mapResults/connector.ts +++ b/frontend/src/modules/mapResults/connector.ts @@ -1,7 +1,9 @@ import { QueryFilterState } from 'components/pages/search/utils'; import { getActivities } from 'modules/activities/connector'; import { CATEGORY_ID, EVENT_ID, OUTDOOR_ID, PRACTICE_ID } from 'modules/filters/constant'; +import { DateFilter } from 'modules/filters/interface'; import { + formatDateFilter, formatOutdoorSiteFiltersToUrlParams, formatTextFilter, formatTouristicContentFiltersToUrlParams, @@ -14,7 +16,6 @@ import { getGlobalConfig } from 'modules/utils/api.config'; import { generatePageNumbersArray } from 'modules/utils/connector'; import { getOutdoorPractices } from '../outdoorPractice/connector'; import { fetchOutdoorSites } from '../outdoorSite/api'; -import { adaptTouristicEvents } from '../touristicEvent/adapter'; import { fetchTouristicEvents } from '../touristicEvent/api'; import { getTouristicEventTypes } from '../touristicEventType/connector'; import { @@ -27,10 +28,14 @@ import { fetchTouristicContentMapResults, fetchTrekMapResults } from './api'; import { MapResults } from './interface'; export const getMapResults = async ( - filters: { filtersState: QueryFilterState[]; textFilterState: string | null }, + filters: { + filtersState: QueryFilterState[]; + textFilterState: string | null; + dateFilter: DateFilter | null; + }, language: string, ): Promise => { - const { filtersState, textFilterState } = filters; + const { filtersState, textFilterState, dateFilter } = filters; try { const practiceFilter = filtersState.find(({ id }) => id === PRACTICE_ID); @@ -65,6 +70,7 @@ export const getMapResults = async ( const touristicEventsFilter = formatTouristicEventsFiltersToUrlParams(filtersState); const textFilter = formatTextFilter(textFilterState); + const newDateFilter = formatDateFilter(dateFilter); const resultsNumber = getGlobalConfig().mapResultsPageSize; @@ -150,6 +156,8 @@ export const getMapResults = async ( const rawMapResults = await fetchTouristicEvents({ language, page_size: resultsNumber, + dates_before: newDateFilter.dates_before, + dates_after: newDateFilter.dates_after, ...touristicEventsFilter, ...textFilter, }); @@ -159,6 +167,8 @@ export const getMapResults = async ( language, page_size: resultsNumber, page: pageNumber, + dates_before: newDateFilter.dates_before, + dates_after: newDateFilter.dates_after, ...touristicEventsFilter, ...textFilter, }), From d635dbc1b2cdd90b1bb47b02c7ea544dac7db675 Mon Sep 17 00:00:00 2001 From: Jordane Minaya Date: Tue, 12 Jul 2022 18:03:54 +0200 Subject: [PATCH 2/7] feat: onClick img remove fullScreen and add link... ... to detailsPage --- .../pages/search/components/ResultCard/ResultCard.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/frontend/src/components/pages/search/components/ResultCard/ResultCard.tsx b/frontend/src/components/pages/search/components/ResultCard/ResultCard.tsx index cf7355ad2..309eb5c17 100644 --- a/frontend/src/components/pages/search/components/ResultCard/ResultCard.tsx +++ b/frontend/src/components/pages/search/components/ResultCard/ResultCard.tsx @@ -20,6 +20,7 @@ import { Clock } from 'components/Icons/Clock'; import { CodeBrackets } from 'components/Icons/CodeBrackets'; import { TrendingUp } from 'components/Icons/TrendingUp'; import { ListAndMapContext } from 'modules/map/ListAndMapContext'; +import { useRouter } from 'next/router'; import { Attachment } from '../../../../../modules/interface'; import { dataUnits } from '../../../../../modules/results/adapter'; @@ -130,6 +131,7 @@ export const ResultCard: React.FC< const { setHoveredCardId } = useContext(ListAndMapContext); const intl = useIntl(); + const router = useRouter(); return ( - {({ isFullscreen, toggleFullscreen }) => ( + {({ isFullscreen }) => ( <> {isFullscreen && attachments && attachments.length > 0 && ( @@ -156,7 +158,7 @@ export const ResultCard: React.FC< thumbnailUris={thumbnailUris} iconUri={badgeIconUri} iconName={badgeName as string} - onClickImage={attachments ? toggleFullscreen : undefined} + onClickImage={() => router.push(redirectionUrl)} /> )} From 71e05483d35e66508b2349e634b1a262e301b430 Mon Sep 17 00:00:00 2001 From: Jordane Minaya Date: Tue, 12 Jul 2022 19:47:00 +0200 Subject: [PATCH 3/7] feat: on click img detailsCard link to detailsPage --- .../details/components/DetailsCard/DetailsCard.tsx | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/frontend/src/components/pages/details/components/DetailsCard/DetailsCard.tsx b/frontend/src/components/pages/details/components/DetailsCard/DetailsCard.tsx index 9502bc096..04400f7d8 100644 --- a/frontend/src/components/pages/details/components/DetailsCard/DetailsCard.tsx +++ b/frontend/src/components/pages/details/components/DetailsCard/DetailsCard.tsx @@ -6,6 +6,7 @@ import { HtmlText } from 'components/pages/details/utils'; import getActivityColor from 'components/pages/search/components/ResultCard/getActivityColor'; import parse from 'html-react-parser'; import { ListAndMapContext } from 'modules/map/ListAndMapContext'; +import { useRouter } from 'next/router'; import { useContext } from 'react'; import { FormattedMessage } from 'react-intl'; import { textEllipsisAfterNLines } from 'services/cssHelpers'; @@ -55,6 +56,8 @@ export const DetailsCard: React.FC = ({ const { setHoveredCardId } = useContext(ListAndMapContext); + const router = useRouter(); + return ( = ({ {({ isFullscreen, toggleFullscreen }) => ( <> {isFullscreen && - attachments && + redirectionUrl && attachments.length > 0 && typeof navigator !== 'undefined' && - navigator?.onLine && } + navigator?.onLine && ( + router.push(redirectionUrl)} + attachments={attachments} + /> + )} {!isFullscreen && ( Date: Tue, 12 Jul 2022 20:02:11 +0200 Subject: [PATCH 4/7] feat: link on clik img only for touristic content --- .../components/DetailsCard/DetailsCard.tsx | 28 ++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/frontend/src/components/pages/details/components/DetailsCard/DetailsCard.tsx b/frontend/src/components/pages/details/components/DetailsCard/DetailsCard.tsx index 04400f7d8..c2aeaf07d 100644 --- a/frontend/src/components/pages/details/components/DetailsCard/DetailsCard.tsx +++ b/frontend/src/components/pages/details/components/DetailsCard/DetailsCard.tsx @@ -84,16 +84,42 @@ export const DetailsCard: React.FC = ({ {({ isFullscreen, toggleFullscreen }) => ( <> {isFullscreen && + type === 'TOURISTIC_CONTENT' && redirectionUrl && attachments.length > 0 && typeof navigator !== 'undefined' && navigator?.onLine && ( router.push(redirectionUrl)} + /> + )} + {!isFullscreen && + type === 'TOURISTIC_CONTENT' && + redirectionUrl && + attachments.length > 0 && + typeof navigator !== 'undefined' && + navigator?.onLine && ( + router.push(redirectionUrl)} + /> + )} + {isFullscreen && + type !== 'TOURISTIC_CONTENT' && + attachments.length > 0 && + typeof navigator !== 'undefined' && + navigator?.onLine && ( + )} - {!isFullscreen && ( + {!isFullscreen && type !== 'TOURISTIC_CONTENT' && ( Date: Tue, 12 Jul 2022 20:24:20 +0200 Subject: [PATCH 5/7] feat: fix test error --- .../src/components/pages/details/__tests__/Details.test.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/components/pages/details/__tests__/Details.test.tsx b/frontend/src/components/pages/details/__tests__/Details.test.tsx index 1b57eb6ab..3ac31d1d1 100644 --- a/frontend/src/components/pages/details/__tests__/Details.test.tsx +++ b/frontend/src/components/pages/details/__tests__/Details.test.tsx @@ -120,7 +120,7 @@ describe('Details', () => { await component.findByText('La Motte-en-Champsaur'); await component.findAllByText('Lagopède alpin'); await component.findAllByText('Refuge de la Lavey'); - await component.findByText('Auberge Gaillard'); + await component.findAllByText('Auberge Gaillard'); await component.findByText( "L'auberge propose, dans un hameau de montagne en bout de route, en pleine nature, un hébergement de séjour, nuitée, demi-pension et pension complète dans un décor de la vie d'antan et d'aujourd'hui.", ); From ea18444bfb19865b436d0b46e6b779adabb33c7a Mon Sep 17 00:00:00 2001 From: Camille Monchicourt Date: Wed, 13 Jul 2022 13:41:57 +0200 Subject: [PATCH 6/7] Changelog 3.10.2 --- docs/changelog.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/changelog.md b/docs/changelog.md index 194507fdf..a2bdb293d 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,5 +1,13 @@ # Changelog +3.10.2 (2022-07-13) +------------------- + +**🐛 Fixes** + +* Fix events date filter on map results of Search page (#743) +* Link to detail page on images of objects cards rather than images fullscreen (#670) + 3.10.1 (2022-07-08) ------------------- From 045e85406bd0ae41db03f367b391ed2e16fbf7b7 Mon Sep 17 00:00:00 2001 From: Camille Monchicourt Date: Wed, 13 Jul 2022 13:49:46 +0200 Subject: [PATCH 7/7] Bump package.json / 3.10.2 --- frontend/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/package.json b/frontend/package.json index 26cdced69..c2b8a79ef 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,6 @@ { "name": "geotrek-rando-frontend", - "version": "3.10.1", + "version": "3.10.2", "private": true, "scripts": { "debug": "NODE_OPTIONS='--inspect' next ./src",