diff --git a/packages/web/components/elements/CloseButton.tsx b/packages/web/components/elements/CloseButton.tsx
new file mode 100644
index 000000000..b10d0508e
--- /dev/null
+++ b/packages/web/components/elements/CloseButton.tsx
@@ -0,0 +1,56 @@
+import { X } from 'phosphor-react'
+import { useState } from 'react'
+import { Button } from './Button'
+import { Box } from './LayoutPrimitives'
+
+type CloseButtonProps = {
+ close: () => void
+}
+
+export function CloseButton(props: CloseButtonProps): JSX.Element {
+ const [hover, setHover] = useState(false)
+
+ return (
+ setHover(true)}
+ onMouseOut={() => setHover(false)}
+ >
+
+
+ )
+}
diff --git a/packages/web/components/templates/homeFeed/HomeFeedContainer.tsx b/packages/web/components/templates/homeFeed/HomeFeedContainer.tsx
index dfc91924b..12ebb8cd6 100644
--- a/packages/web/components/templates/homeFeed/HomeFeedContainer.tsx
+++ b/packages/web/components/templates/homeFeed/HomeFeedContainer.tsx
@@ -732,6 +732,8 @@ function HomeFeedGrid(props: HomeFeedContentProps): JSX.Element {
props.reloadItems()
}
+ const [showFilterMenu, setShowFilterMenu] = useState(false)
+
return (
diff --git a/packages/web/components/templates/homeFeed/LibraryFilterMenu.tsx b/packages/web/components/templates/homeFeed/LibraryFilterMenu.tsx
index 5cae94edb..2086a945f 100644
--- a/packages/web/components/templates/homeFeed/LibraryFilterMenu.tsx
+++ b/packages/web/components/templates/homeFeed/LibraryFilterMenu.tsx
@@ -7,6 +7,9 @@ import { CaretRight, Circle, DotsThree, Plus } from 'phosphor-react'
import { useGetSubscriptionsQuery } from '../../../lib/networking/queries/useGetSubscriptionsQuery'
import { useGetLabelsQuery } from '../../../lib/networking/queries/useGetLabelsQuery'
import { Label } from '../../../lib/networking/fragments/labelFragment'
+import { CloseButton } from '../../elements/CloseButton'
+import { MenuHeaderButton } from './LibraryHeader'
+import { LayoutType } from './HomeFeedContainer'
export const LIBRARY_LEFT_MENU_WIDTH = '300px'
@@ -15,6 +18,8 @@ type LibraryFilterMenuProps = {
searchTerm: string | undefined
applySearchQuery: (searchTerm: string) => void
+
+ setShowFilterMenu: (show: boolean) => void
}
export function LibraryFilterMenu(props: LibraryFilterMenuProps): JSX.Element {
@@ -34,8 +39,28 @@ export function LibraryFilterMenu(props: LibraryFilterMenuProps): JSX.Element {
'&::-webkit-scrollbar': {
display: 'none',
},
+ '@mdDown': {
+ top: '50px',
+ width: '100%',
+ zIndex: 6, // Above the header
+ },
+ transform: 'translateX(0)',
}}
>
+ {/*
+
+ props.setShowFilterMenu(false)} />
+ */}
@@ -51,6 +76,9 @@ export function LibraryFilterMenu(props: LibraryFilterMenuProps): JSX.Element {
minWidth: LIBRARY_LEFT_MENU_WIDTH,
height: '100%',
bg: '$grayBase',
+ '@mdDown': {
+ display: 'none',
+ },
}}
>
>
@@ -206,6 +234,8 @@ type FilterButtonProps = {
filterTerm: string
searchTerm: string | undefined
applySearchQuery: (searchTerm: string) => void
+
+ setShowFilterMenu: (show: boolean) => void
}
function FilterButton(props: FilterButtonProps): JSX.Element {
@@ -249,6 +279,7 @@ function FilterButton(props: FilterButtonProps): JSX.Element {
}}
onClick={(e) => {
props.applySearchQuery(props.filterTerm)
+ props.setShowFilterMenu(false)
e.preventDefault()
}}
>
diff --git a/packages/web/components/templates/homeFeed/LibraryHeader.tsx b/packages/web/components/templates/homeFeed/LibraryHeader.tsx
index 965886ee4..374ef65ad 100644
--- a/packages/web/components/templates/homeFeed/LibraryHeader.tsx
+++ b/packages/web/components/templates/homeFeed/LibraryHeader.tsx
@@ -11,11 +11,7 @@ import { GridSelectorIcon } from '../../elements/images/GridSelectorIcon'
import { LayoutType } from './HomeFeedContainer'
import { PrimaryDropdown } from '../PrimaryDropdown'
import { LogoBox } from '../../elements/LogoBox'
-import {
- OmnivoreLogoIcon,
- OmnivoreNameLogo,
- OmnivoreSmallLogo,
-} from '../../elements/images/OmnivoreNameLogo'
+import { OmnivoreSmallLogo } from '../../elements/images/OmnivoreNameLogo'
type LibraryHeaderProps = {
layout: LayoutType
@@ -23,6 +19,9 @@ type LibraryHeaderProps = {
searchTerm: string | undefined
applySearchQuery: (searchQuery: string) => void
+
+ showFilterMenu: boolean
+ setShowFilterMenu: (show: boolean) => void
}
const FOCUSED_BOXSHADOW = '0px 0px 2px 2px rgba(255, 234, 159, 0.56)'
@@ -108,7 +107,7 @@ function SmallHeaderLayout(props: LibraryHeaderProps): JSX.Element {
},
}}
>
-
+
void
+}
+
+export function MenuHeaderButton(props: MenuHeaderButtonProps): JSX.Element {
return (
{
+ props.setShowFilterMenu(!props.showFilterMenu)
+ }}
>