From 77b315680550dfe1f3daaed8a37e4e46d14b2549 Mon Sep 17 00:00:00 2001 From: Nicolas Clerc Date: Thu, 18 Jun 2026 11:30:55 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8(frontend)=20add=20"more=20than=20a=20?= =?UTF-8?q?year"=20modification=20date=20preset?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Filter items last modified over a year ago, available wherever the modification date filter is used. --- .../components/filters/ExplorerFilterModified.tsx | 1 + .../explorer/utils/__tests__/dateFilters.test.ts | 6 ++++++ .../drive/src/features/explorer/utils/dateFilters.ts | 12 +++++++++++- .../apps/drive/src/features/i18n/translations.json | 2 ++ 4 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/frontend/apps/drive/src/features/explorer/components/filters/ExplorerFilterModified.tsx b/src/frontend/apps/drive/src/features/explorer/components/filters/ExplorerFilterModified.tsx index cb166d64..7fe6e54f 100644 --- a/src/frontend/apps/drive/src/features/explorer/components/filters/ExplorerFilterModified.tsx +++ b/src/frontend/apps/drive/src/features/explorer/components/filters/ExplorerFilterModified.tsx @@ -15,6 +15,7 @@ const MODIFIED_PRESETS: DatePreset[] = [ "last_7_days", "last_30_days", "this_year", + "more_than_a_year", ]; const MODIFIED_CUSTOM = "custom"; diff --git a/src/frontend/apps/drive/src/features/explorer/utils/__tests__/dateFilters.test.ts b/src/frontend/apps/drive/src/features/explorer/utils/__tests__/dateFilters.test.ts index 8d4b8692..a80c9f3c 100644 --- a/src/frontend/apps/drive/src/features/explorer/utils/__tests__/dateFilters.test.ts +++ b/src/frontend/apps/drive/src/features/explorer/utils/__tests__/dateFilters.test.ts @@ -31,6 +31,12 @@ describe("presetRange", () => { updated_at_before: "2026-05-29", }); }); + + it("caps at one year ago for the more than a year preset", () => { + expect(presetRange("more_than_a_year", today)).toEqual({ + updated_at_before: "2025-05-29", + }); + }); }); describe("toISODate", () => { diff --git a/src/frontend/apps/drive/src/features/explorer/utils/dateFilters.ts b/src/frontend/apps/drive/src/features/explorer/utils/dateFilters.ts index ce921072..ac395633 100644 --- a/src/frontend/apps/drive/src/features/explorer/utils/dateFilters.ts +++ b/src/frontend/apps/drive/src/features/explorer/utils/dateFilters.ts @@ -1,6 +1,11 @@ import { ItemFilters } from "@/features/drivers/Driver"; -export type DatePreset = "today" | "last_7_days" | "last_30_days" | "this_year"; +export type DatePreset = + | "today" + | "last_7_days" + | "last_30_days" + | "this_year" + | "more_than_a_year"; export type DateRange = Pick< ItemFilters, @@ -27,6 +32,11 @@ const addDays = (date: Date, days: number): Date => { * bound. `today` is injectable for deterministic tests. */ export const presetRange = (preset: DatePreset, today: Date = new Date()): DateRange => { + if (preset === "more_than_a_year") { + const before = new Date(today.getFullYear() - 1, today.getMonth(), today.getDate()); + return { updated_at_before: toISODate(before) }; + } + let after: Date; switch (preset) { case "today": diff --git a/src/frontend/apps/drive/src/features/i18n/translations.json b/src/frontend/apps/drive/src/features/i18n/translations.json index c11e1b9a..9133c417 100644 --- a/src/frontend/apps/drive/src/features/i18n/translations.json +++ b/src/frontend/apps/drive/src/features/i18n/translations.json @@ -289,6 +289,7 @@ "last_7_days": "Last 7 days", "last_30_days": "Last 30 days", "this_year": "This year", + "more_than_a_year": "More than a year", "custom": "Custom range" }, "start": "Start", @@ -926,6 +927,7 @@ "last_7_days": "7 derniers jours", "last_30_days": "30 derniers jours", "this_year": "Cette année", + "more_than_a_year": "Il y a plus d'un an", "custom": "Période personnalisée" }, "start": "Début",