From 5a727b4b18945e7f4306da00d1f9e49f9c262fbd Mon Sep 17 00:00:00 2001 From: John Gedeon <940173+gidjin@users.noreply.github.com> Date: Fri, 16 Feb 2024 14:50:08 -0800 Subject: [PATCH] chore: review launchdarkly flags (#1207) * remove landingPageIndex flag * remove guardianDirectory flag * fixup! remove landingPageIndex flag * move flags to keep to top * remove weather widget * remove dragAndDropCollections flag * remove searchPageFilter flag * remove featuredShortcuts flag * fix pagenav test * Revert "remove dragAndDropCollections flag" This reverts commit a5bcd28d227b61aeb6fc468320c818fee3c0ec37. * WIP * WIP * WIP * Remove attributes --------- Co-authored-by: Jacob Capps <99674188+jcbcapps@users.noreply.github.com> Co-authored-by: Jacob Capps --- src/__tests__/pages/search.test.tsx | 21 ---------- src/components/AddWidget/AddWidget.test.tsx | 8 ---- src/components/AddWidget/AddWidget.tsx | 42 +++++++++---------- src/components/MySpace/MySpace.tsx | 4 +- src/components/PageNav/PageNav.test.tsx | 14 ------- src/components/PageNav/PageNav.tsx | 20 +++------ .../util/DraggableWidget/DraggableWidget.tsx | 16 ++----- src/pages/guardian-directory.tsx | 10 ----- src/pages/search.tsx | 4 +- src/stores/launchDarklyLocal.ts | 7 +--- 10 files changed, 31 insertions(+), 115 deletions(-) diff --git a/src/__tests__/pages/search.test.tsx b/src/__tests__/pages/search.test.tsx index 6180516fd..4354a7dd9 100644 --- a/src/__tests__/pages/search.test.tsx +++ b/src/__tests__/pages/search.test.tsx @@ -2,7 +2,6 @@ * @jest-environment jsdom */ import { screen } from '@testing-library/react' -import { mockFlags } from 'jest-launchdarkly-mock' import type { GetServerSidePropsContext } from 'next' import { renderWithAuth } from '../../testHelpers' @@ -133,10 +132,6 @@ describe('Search page', () => { }) test('renders the SearchFilter component', () => { - mockFlags({ - searchPageFilter: true, - }) - renderWithAuth( { expect(screen.getByText('Filter Search')).toBeInTheDocument() }) - test('does not render the SearchFilter component if the flag is off', () => { - mockFlags({ - searchPageFilter: false, - }) - - renderWithAuth( - - ) - - expect(screen.queryByText('Filter Search')).not.toBeInTheDocument() - }) - test('renders the results if there were matches for the query', async () => { const mockResults = mockCmsSearchResults.map((r) => ({ ...r, diff --git a/src/components/AddWidget/AddWidget.test.tsx b/src/components/AddWidget/AddWidget.test.tsx index d585697d0..9be520cf1 100644 --- a/src/components/AddWidget/AddWidget.test.tsx +++ b/src/components/AddWidget/AddWidget.test.tsx @@ -188,10 +188,6 @@ describe('AddWidget component', () => { }) test('Add weather widget', async () => { - mockFlags({ - weatherWidget: true, - }) - const user = userEvent.setup() const mockSetTemporaryWidget = jest.fn() const mockIsAddingWidget = jest.fn() @@ -220,10 +216,6 @@ describe('AddWidget component', () => { }) test('Add weather widget button is disabled if the user cannot add Weather', async () => { - mockFlags({ - weatherWidget: true, - }) - const user = userEvent.setup() const mockSetTemporaryWidget = jest.fn() const mockIsAddingWidget = jest.fn() diff --git a/src/components/AddWidget/AddWidget.tsx b/src/components/AddWidget/AddWidget.tsx index 66fcf87b9..758f5b147 100644 --- a/src/components/AddWidget/AddWidget.tsx +++ b/src/components/AddWidget/AddWidget.tsx @@ -89,18 +89,16 @@ const AddWidget = ({ }}> Add news widget - {flags?.weatherWidget && ( - - )} + {flags?.guardianIdealCarousel && ( - )} + ) diff --git a/src/components/MySpace/MySpace.tsx b/src/components/MySpace/MySpace.tsx index ed939d4a6..566125841 100644 --- a/src/components/MySpace/MySpace.tsx +++ b/src/components/MySpace/MySpace.tsx @@ -144,7 +144,7 @@ const MySpace = ({ bookmarks }: { bookmarks: CMSBookmark[] }) => { strategy={rectSortingStrategy}> {mySpace.map((widget: Widget) => { - if (isFeaturedShortcuts(widget) && flags?.featuredShortcuts) { + if (isFeaturedShortcuts(widget)) { return ( { ) } - if (isWeather(widget) && flags?.weatherWidget) { + if (isWeather(widget)) { const weatherWidget = widget as WeatherWidgetType return ( ({ @@ -27,19 +26,6 @@ describe('PageNav component', () => { expect(link).toHaveAttribute('href', navItem.getAttribute('href')) }) - expect(links).toHaveLength(3) - }) - - test('renders nav items behind LaunchDarkly flags', () => { - mockFlags({ - landingPageIndex: true, - guardianDirectory: true, - }) - - render() - - const links = screen.getAllByRole('link') - expect(links).toHaveLength(5) }) }) diff --git a/src/components/PageNav/PageNav.tsx b/src/components/PageNav/PageNav.tsx index 262e503af..605b20fe9 100644 --- a/src/components/PageNav/PageNav.tsx +++ b/src/components/PageNav/PageNav.tsx @@ -1,34 +1,24 @@ import React from 'react' import { SideNav } from '@trussworks/react-uswds' -import { useFlags } from 'launchdarkly-react-client-sdk' import styles from './PageNav.module.scss' import NavLink from 'components/util/NavLink/NavLink' const PageNav = () => { - const flags = useFlags() - const navItems = [ { path: '/', label: 'My Space' }, + { + path: '/guardian-directory', + label: 'Guardian Directory', + }, { path: '/sites-and-applications', label: <>All sites & applications, }, { path: '/ussf-documentation', label: 'USSF documentation' }, + { path: '/landing', label: 'Landing Pages' }, ] - if (flags.guardianDirectory) { - // TODO: we can remove this if and put the navItem in the correct slot above once fully released - navItems.splice(1, 0, { - path: '/guardian-directory', - label: 'Guardian Directory', - }) - } - - if (flags.landingPageIndex) { - navItems.push({ path: '/landing', label: 'Landing Pages' }) - } - const items = navItems.map((i) => ( { - const { - attributes, - listeners, - setNodeRef, - transform, - transition, - isDragging, - } = useSortable({ id: id }) - - const { dragAndDropCollections } = useFlags() + const { listeners, setNodeRef, transform, transition, isDragging } = + useSortable({ id: id }) const style = { transform: CSS.Translate.toString(transform), @@ -33,12 +24,11 @@ const DraggableWidget = ({ id, children }: DraggableWidgetProps) => { return (
- {disableDragAndDrop || !dragAndDropCollections ? ( + {disableDragAndDrop ? (
{children}
) : (
diff --git a/src/pages/guardian-directory.tsx b/src/pages/guardian-directory.tsx index d190b2bdc..aca4cfb21 100644 --- a/src/pages/guardian-directory.tsx +++ b/src/pages/guardian-directory.tsx @@ -1,6 +1,4 @@ import { useEffect, useState } from 'react' -import { useFlags } from 'launchdarkly-react-client-sdk' -import { useRouter } from 'next/router' import { Button, Search } from '@trussworks/react-uswds' import LoadingWidget from 'components/LoadingWidget/LoadingWidget' import { withDefaultLayout } from 'layout/DefaultLayout/DefaultLayout' @@ -12,8 +10,6 @@ import { GuardianDirectory as GuardianDirectoryType } from 'types' import { useGetGuardianDirectoryQuery } from 'operations/portal/queries/getGuardianDirectory.g' const GuardianDirectory = () => { - const flags = useFlags() - const router = useRouter() const [directory, setDirectory] = useState(Array) const { data: lastModifiedAt } = useGetLastModifiedAtQuery() const { data: guardianDirectoryData, loading: loadingGuardianData } = @@ -62,12 +58,6 @@ const GuardianDirectory = () => { setSearchQuery(' ') } - // TODO: remove once released - // If guardian directory is off return 404 - if (flags.guardianDirectory === false) { - router.replace('/404') - } - return ( <>
diff --git a/src/pages/search.tsx b/src/pages/search.tsx index a0529a63f..23bb7ca89 100644 --- a/src/pages/search.tsx +++ b/src/pages/search.tsx @@ -1,7 +1,6 @@ import { useEffect } from 'react' import { GetServerSideProps, InferGetServerSidePropsType } from 'next' import { GridContainer, Grid } from '@trussworks/react-uswds' -import { useFlags } from 'launchdarkly-react-client-sdk' import { client } from 'lib/keystoneClient' import { withArticleLayout } from 'layout/DefaultLayout/ArticleLayout' import PageHeader from 'components/PageHeader/PageHeader' @@ -27,7 +26,6 @@ const Search = ({ }: InferGetServerSidePropsType) => { const { loading } = useUser() const { setSearchQuery } = useSearchContext() - const flags = useFlags() // If a query is passed in, set the searchQuery state to that value useEffect(() => { @@ -78,7 +76,7 @@ const Search = ({ - {flags?.searchPageFilter && } + {results.length > 0 ? ( diff --git a/src/stores/launchDarklyLocal.ts b/src/stores/launchDarklyLocal.ts index 5d02e3d18..aa18d5016 100644 --- a/src/stores/launchDarklyLocal.ts +++ b/src/stores/launchDarklyLocal.ts @@ -5,10 +5,5 @@ */ export default { guardianIdealCarousel: true, - guardianDirectory: true, - featuredShortcuts: true, - searchPageFilter: true, - dragAndDropCollections: true, - weatherWidget: true, - landingPageIndex: true, + sitesAppsSortView: false, }