From d7b4ef33ed5592fbe544b6ec1fe2a597d2f08699 Mon Sep 17 00:00:00 2001 From: Domagoj Kriskovic Date: Mon, 17 Aug 2026 14:42:31 +0200 Subject: [PATCH] Add "New" badge to library nav link and a feedback link on the library page GitOrigin-RevId: 6c936ca8168dd718c4eaf806f426d5c00078add8 --- .../Features/Tutorial/TutorialController.mjs | 1 + .../web/frontend/extracted-translations.json | 1 + .../components/sidebar/sidebar-ds-nav.tsx | 7 ++- services/web/locales/en.json | 1 + .../sidebar/sidebar-ds-nav.test.tsx | 45 ++++++++++++++++++- 5 files changed, 52 insertions(+), 3 deletions(-) diff --git a/services/web/app/src/Features/Tutorial/TutorialController.mjs b/services/web/app/src/Features/Tutorial/TutorialController.mjs index 45673745c3..1859f1bb9b 100644 --- a/services/web/app/src/Features/Tutorial/TutorialController.mjs +++ b/services/web/app/src/Features/Tutorial/TutorialController.mjs @@ -33,6 +33,7 @@ const VALID_KEYS = [ 'themed-dashboard-intro', 'dimensions-consent', 'dimensions-rail-popover', + 'library-new-badge', ] // tutorialKey is validated against the same known-key enum the handlers diff --git a/services/web/frontend/extracted-translations.json b/services/web/frontend/extracted-translations.json index f7ba1b492a..57009202b8 100644 --- a/services/web/frontend/extracted-translations.json +++ b/services/web/frontend/extracted-translations.json @@ -1151,6 +1151,7 @@ "lets_get_those_premium_features": "", "lets_get_you_set_up": "", "library": "", + "library_is_new_give_feedback": "", "license": "", "license_allocated": "", "license_not_allocated": "", diff --git a/services/web/frontend/js/features/project-list/components/sidebar/sidebar-ds-nav.tsx b/services/web/frontend/js/features/project-list/components/sidebar/sidebar-ds-nav.tsx index abebbc38c2..087723d5e3 100644 --- a/services/web/frontend/js/features/project-list/components/sidebar/sidebar-ds-nav.tsx +++ b/services/web/frontend/js/features/project-list/components/sidebar/sidebar-ds-nav.tsx @@ -36,8 +36,10 @@ function SidebarDsNav({ ? trashActive : selectedTagId === undefined && filter === 'trashed' const [dsNavLibraryLinkModule] = importOverleafModules('dsNavLibraryLink') - const DsNavLibraryLink: JSXElementConstructor<{ active?: boolean }> = - dsNavLibraryLinkModule?.import.default + const DsNavLibraryLink: JSXElementConstructor<{ + active?: boolean + inLibrary?: boolean + }> = dsNavLibraryLinkModule?.import.default const { mousePos, getHandleProps, getTargetProps } = usePersistedResize({ name: 'project-sidebar', }) @@ -87,6 +89,7 @@ function SidebarDsNav({ {DsNavLibraryLink && ( )}