From 1f7fe5a2b2d05c7a200cbeabdadfc70f355b13d9 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Wed, 14 Feb 2024 13:54:59 +0800 Subject: [PATCH 1/8] Fix issue where multiselect control would be disabled during search --- .../templates/homeFeed/LibraryHeader.tsx | 48 ++++++++----------- 1 file changed, 19 insertions(+), 29 deletions(-) diff --git a/packages/web/components/templates/homeFeed/LibraryHeader.tsx b/packages/web/components/templates/homeFeed/LibraryHeader.tsx index 3d444209f..ec6decb0e 100644 --- a/packages/web/components/templates/homeFeed/LibraryHeader.tsx +++ b/packages/web/components/templates/homeFeed/LibraryHeader.tsx @@ -36,7 +36,6 @@ import { HeaderCheckboxIcon } from '../../elements/icons/HeaderCheckboxIcon' import { HeaderSearchIcon } from '../../elements/icons/HeaderSearchIcon' import { HeaderToggleGridIcon } from '../../elements/icons/HeaderToggleGridIcon' import { HeaderToggleListIcon } from '../../elements/icons/HeaderToggleListIcon' -import useWindowDimensions from '../../../lib/hooks/useGetWindowDimensions' export type MultiSelectMode = 'off' | 'none' | 'some' | 'visible' | 'search' @@ -124,7 +123,6 @@ export function LibraryHeader(props: LibraryHeaderProps): JSX.Element { } function LargeHeaderLayout(props: LibraryHeaderProps): JSX.Element { - const dimensions = useWindowDimensions() const [showSearchBar, setShowSearchBar] = useState(false) const [pinnedSearches, setPinnedSearches] = usePersistedState< PinnedSearch[] | null @@ -134,10 +132,6 @@ function LargeHeaderLayout(props: LibraryHeaderProps): JSX.Element { isSessionStorage: false, }) - const isWideWindow = useMemo(() => { - return dimensions.width >= 480 - }, [dimensions]) - return ( ) : ( <> - {(!showSearchBar || isWideWindow) && ( - <> - - - - - - )} + + + + {showSearchBar ? ( From b4f3469210c44b7fe76b1c37692cc20919f6aff1 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Wed, 14 Feb 2024 13:58:06 +0800 Subject: [PATCH 2/8] Simplify header code --- .../templates/homeFeed/LibraryHeader.tsx | 142 +++++++++--------- 1 file changed, 70 insertions(+), 72 deletions(-) diff --git a/packages/web/components/templates/homeFeed/LibraryHeader.tsx b/packages/web/components/templates/homeFeed/LibraryHeader.tsx index ec6decb0e..c802e2bbd 100644 --- a/packages/web/components/templates/homeFeed/LibraryHeader.tsx +++ b/packages/web/components/templates/homeFeed/LibraryHeader.tsx @@ -123,15 +123,6 @@ export function LibraryHeader(props: LibraryHeaderProps): JSX.Element { } function LargeHeaderLayout(props: LibraryHeaderProps): JSX.Element { - const [showSearchBar, setShowSearchBar] = useState(false) - const [pinnedSearches, setPinnedSearches] = usePersistedState< - PinnedSearch[] | null - >({ - key: `--library-pinned-searches`, - initialValue: [], - isSessionStorage: false, - }) - return ( ) : ( - <> - - - - - - {showSearchBar ? ( - - ) : ( - - )} - - - + )} ) } +const HeaderControls = (props: LibraryHeaderProps): JSX.Element => { + const [showSearchBar, setShowSearchBar] = useState(false) + return ( + <> + + + + + + {showSearchBar ? ( + + ) : ( + + )} + + + + ) +} + type MenuHeaderButtonProps = { showFilterMenu: boolean setShowFilterMenu: (show: boolean) => void From 01e9486b7fb4a71a99b9c8a1affcad2dc269c10f Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Wed, 14 Feb 2024 14:08:00 +0800 Subject: [PATCH 3/8] Add the footer menu in settings, remove header menu in settings --- .../components/patterns/SettingsHeader.tsx | 3 -- .../web/components/templates/SettingsMenu.tsx | 2 + .../templates/homeFeed/LibraryFilterMenu.tsx | 41 +-------------- .../components/templates/navMenu/Footer.tsx | 50 +++++++++++++++++++ 4 files changed, 54 insertions(+), 42 deletions(-) create mode 100644 packages/web/components/templates/navMenu/Footer.tsx diff --git a/packages/web/components/patterns/SettingsHeader.tsx b/packages/web/components/patterns/SettingsHeader.tsx index b8c218a08..e50bfe10f 100644 --- a/packages/web/components/patterns/SettingsHeader.tsx +++ b/packages/web/components/patterns/SettingsHeader.tsx @@ -31,9 +31,6 @@ export function SettingsHeader(props: HeaderProps): JSX.Element { }} > - - - ) diff --git a/packages/web/components/templates/SettingsMenu.tsx b/packages/web/components/templates/SettingsMenu.tsx index 5663ae6d6..72ee1f099 100644 --- a/packages/web/components/templates/SettingsMenu.tsx +++ b/packages/web/components/templates/SettingsMenu.tsx @@ -7,6 +7,7 @@ import { styled, theme } from '../tokens/stitches.config' import { Button } from '../elements/Button' import { ArrowSquareUpRight } from 'phosphor-react' import { useRouter } from 'next/router' +import { NavMenuFooter } from './navMenu/Footer' const HorizontalDivider = styled(SpanBox, { width: '100%', @@ -173,6 +174,7 @@ export function SettingsMenu(): JSX.Element { destination="https://docs.omnivore.app" title="Documentation" /> + {/* This spacer pushes library content to the right of diff --git a/packages/web/components/templates/homeFeed/LibraryFilterMenu.tsx b/packages/web/components/templates/homeFeed/LibraryFilterMenu.tsx index 958b30b73..5cfa16319 100644 --- a/packages/web/components/templates/homeFeed/LibraryFilterMenu.tsx +++ b/packages/web/components/templates/homeFeed/LibraryFilterMenu.tsx @@ -22,6 +22,7 @@ import { ToggleCaretRightIcon } from '../../elements/icons/ToggleCaretRightIcon' import { SplitButton } from '../../elements/SplitButton' import { AvatarDropdown } from '../../elements/AvatarDropdown' import { PrimaryDropdown } from '../PrimaryDropdown' +import { NavMenuFooter } from '../navMenu/Footer' export const LIBRARY_LEFT_MENU_WIDTH = '275px' @@ -122,7 +123,7 @@ export function LibraryFilterMenu(props: LibraryFilterMenuProps): JSX.Element { -