diff --git a/services/web/app/src/Features/Project/ProjectController.mjs b/services/web/app/src/Features/Project/ProjectController.mjs index 253b70d8ce..fb7adc03c6 100644 --- a/services/web/app/src/Features/Project/ProjectController.mjs +++ b/services/web/app/src/Features/Project/ProjectController.mjs @@ -639,7 +639,6 @@ const _ProjectController = { 'export-markdown', 'export-html', 'command-palette', - 'overleaf-library', 'focus-mode', 'markdown-visual', 'ai-disabled-collaborators', diff --git a/services/web/app/src/Features/Project/ProjectListController.mjs b/services/web/app/src/Features/Project/ProjectListController.mjs index 5b3a909f49..45f9c51df8 100644 --- a/services/web/app/src/Features/Project/ProjectListController.mjs +++ b/services/web/app/src/Features/Project/ProjectListController.mjs @@ -574,7 +574,6 @@ async function projectListPage(req, res, next) { const splitTests = [ // Split tests that will be made available to the frontend 'import-docx', - 'overleaf-library', 'import-markdown', 'themed-modals', 'shared-workspace', diff --git a/services/web/config/settings.defaults.js b/services/web/config/settings.defaults.js index ad3eb75990..bdb9d73586 100644 --- a/services/web/config/settings.defaults.js +++ b/services/web/config/settings.defaults.js @@ -1031,6 +1031,7 @@ module.exports = { createFileModes: [], devToolbar: [], dsNavLibraryLink: [], + trashPageTabs: [], adminUserLibrary: [], gitBridge: [], publishModalDropdownButton: [], diff --git a/services/web/frontend/extracted-translations.json b/services/web/frontend/extracted-translations.json index b332c56648..da9d6e70ae 100644 --- a/services/web/frontend/extracted-translations.json +++ b/services/web/frontend/extracted-translations.json @@ -741,7 +741,6 @@ "file_tree": "", "files_cannot_include_invalid_characters": "", "files_selected": "", - "filter_projects": "", "find": "", "find_out_how_to_get_the_most_out_of_your_new_subscription": "", "find_out_more": "", @@ -1846,7 +1845,6 @@ "search_match_case": "", "search_members": "", "search_next": "", - "search_only_the_bib_files_in_your_project_only_by_citekeys": "", "search_previous": "", "search_project": "", "search_projects": "", diff --git a/services/web/frontend/js/features/project-list/components/current-plan-widget/free-plan.tsx b/services/web/frontend/js/features/project-list/components/current-plan-widget/free-plan.tsx index b27ecc8b28..615e033431 100644 --- a/services/web/frontend/js/features/project-list/components/current-plan-widget/free-plan.tsx +++ b/services/web/frontend/js/features/project-list/components/current-plan-widget/free-plan.tsx @@ -4,12 +4,10 @@ import OLTooltip from '@/shared/components/ol/ol-tooltip' import MaterialIcon from '@/shared/components/material-icon' import { FreePlanSubscription } from '../../../../../../types/project/dashboard/subscription' import * as eventTracking from '../../../../infrastructure/event-tracking' -import { isSplitTestEnabled } from '@/utils/splitTestUtils' type FreePlanProps = Pick function FreePlan({ featuresPageURL }: FreePlanProps) { - const isLibraryEnabled = isSplitTestEnabled('overleaf-library') const { t } = useTranslation() const currentPlanLabel = ( {' '} diff --git a/services/web/frontend/js/features/project-list/components/dropdown/navigation-dropdown.tsx b/services/web/frontend/js/features/project-list/components/dropdown/navigation-dropdown.tsx index 10b40bf7b9..5108d14f43 100644 --- a/services/web/frontend/js/features/project-list/components/dropdown/navigation-dropdown.tsx +++ b/services/web/frontend/js/features/project-list/components/dropdown/navigation-dropdown.tsx @@ -9,13 +9,11 @@ import { import { OLDropdown, OLDropdownDivider, - OLDropdownHeader, OLDropdownItem, OLDropdownMenu, OLDropdownToggle, } from '@/shared/components/ol/ol-dropdown-menu' import MaterialIcon from '@/shared/components/material-icon' -import { isSplitTestEnabled } from '@/utils/splitTestUtils' import ProjectsFilterMenu from '../projects-filter-menu' import TagsList from '../tags-list' import { ActivePage } from '../../util/navigation-state' @@ -78,7 +76,6 @@ function NavigationDropdown({ ) const [view, setView] = useState<'top' | 'tags' | 'trash'>('top') const { filter, selectedTagId, tags } = useProjectListContext() - const isLibraryEnabled = isSplitTestEnabled('overleaf-library') const projectsTrashActive = activePage === 'projects' && selectedTagId === undefined && @@ -126,7 +123,7 @@ function NavigationDropdown({ filter="all" text={t('all_projects')} activePage={activePage} - leadingIcon={isLibraryEnabled && } + leadingIcon={} />
  • @@ -134,7 +131,7 @@ function NavigationDropdown({ filter="owned" text={t('your_projects')} activePage={activePage} - leadingIcon={isLibraryEnabled && } + leadingIcon={} />
  • @@ -142,7 +139,7 @@ function NavigationDropdown({ filter="shared" text={t('shared_with_you')} activePage={activePage} - leadingIcon={isLibraryEnabled && } + leadingIcon={} />
  • @@ -150,71 +147,40 @@ function NavigationDropdown({ filter="archived" text={t('archived_projects')} activePage={activePage} - leadingIcon={isLibraryEnabled && } + leadingIcon={} />
  • - {!isLibraryEnabled && ( -
  • - -
  • - )} - - ) - - const submenuItems = ( - <> - {filterItems} - - {t('tags')}: - - ) return ( { - if (show) { - if (selectedTagId !== undefined) { - setView('tags') - } else if (isTrashActive) { - setView('trash') - } else { - setView('top') - } - } else { - setView('top') - } - } - : undefined - } + onToggle={show => { + if (show) { + if (selectedTagId !== undefined) { + setView('tags') + } else if (isTrashActive) { + setView('trash') + } else { + setView('top') + } + } else { + setView('top') + } + }} > {title} - - {!isLibraryEnabled && submenuItems} - {isLibraryEnabled && view === 'top' && ( + + {view === 'top' && ( <> {filterItems}
  • @@ -257,7 +223,7 @@ function NavigationDropdown({
  • )} - {isLibraryEnabled && view === 'tags' && ( + {view === 'tags' && ( <>
  • )} - {isLibraryEnabled && view === 'trash' && ( + {view === 'trash' && ( <>
  • tag._id === selectedTagId) - : [] + const initialTags = selectedTagId + ? tags.filter(tag => tag._id === selectedTagId) + : [] const sendTrackingEvent = useCallback( ({ dropdownMenu, diff --git a/services/web/frontend/js/features/project-list/components/project-list-ds-nav.tsx b/services/web/frontend/js/features/project-list/components/project-list-ds-nav.tsx index c043246381..0698408269 100644 --- a/services/web/frontend/js/features/project-list/components/project-list-ds-nav.tsx +++ b/services/web/frontend/js/features/project-list/components/project-list-ds-nav.tsx @@ -26,7 +26,6 @@ import overleafLogoDark from '@/shared/svgs/overleaf-a-ds-solution-mallard-dark. import CookieBanner from '@/shared/components/cookie-banner' import NoProjects from '@/features/project-list/components/no-projects' import { useActiveOverallTheme } from '@/shared/hooks/use-active-overall-theme' -import { isSplitTestEnabled } from '@/utils/splitTestUtils' import { useFeatureFlag } from '@/shared/context/split-test-context' export function ProjectListDsNav() { @@ -44,48 +43,28 @@ export function ProjectListDsNav() { currentFilterProjectsCount, } = useProjectListContext() const activeOverallTheme = useActiveOverallTheme() - const isLibraryEnabled = isSplitTestEnabled('overleaf-library') const isSharedWorkspaceEnabled = useFeatureFlag('shared-workspace') const selectedTag = tags.find(tag => tag._id === selectedTagId) - const showTrashHeader = isLibraryEnabled && filter === 'trashed' + const showTrashHeader = filter === 'trashed' const showNewProjectButton = - !isLibraryEnabled || - (filter !== 'shared' && filter !== 'archived' && filter !== 'trashed') + filter !== 'shared' && filter !== 'archived' && filter !== 'trashed' const tableTopArea = (
    - {isLibraryEnabled ? ( - <> - - {showNewProjectButton && ( - - )} - - ) : ( - <> - - - + + {showNewProjectButton && ( + )}
    ) @@ -93,7 +72,6 @@ export function ProjectListDsNav() { return (
    @@ -159,7 +137,7 @@ export function ProjectListDsNav() { ) : (
    - + - {isLibraryEnabled && showNewProjectButton && ( + {showNewProjectButton && ( - {isLibraryEnabled && (activePage === 'library' || isTrashActive) && ( - - )} + {(activePage === 'library' || isTrashActive) && }