diff --git a/packages/web/components/templates/PrimaryDropdown.tsx b/packages/web/components/templates/PrimaryDropdown.tsx
index e3f9da321..f0107f338 100644
--- a/packages/web/components/templates/PrimaryDropdown.tsx
+++ b/packages/web/components/templates/PrimaryDropdown.tsx
@@ -1,34 +1,46 @@
import { useRouter } from 'next/router'
-import { ReactNode, useCallback } from 'react'
+import { Check } from 'phosphor-react'
+import { ReactNode, useCallback, useMemo, useState } from 'react'
import { useGetViewerQuery } from '../../lib/networking/queries/useGetViewerQuery'
-import { updateTheme } from '../../lib/themeUpdater'
+import { currentThemeName, updateTheme } from '../../lib/themeUpdater'
import { AvatarDropdown } from '../elements/AvatarDropdown'
-import { DropdownMenu, HeaderDropdownAction } from '../patterns/DropdownMenu'
+import { Button } from '../elements/Button'
+import { Dropdown, DropdownOption } from '../elements/DropdownElements'
+import { HStack, VStack } from '../elements/LayoutPrimitives'
+import { StyledText } from '../elements/StyledText'
+import { DropdownMenu } from '../patterns/DropdownMenu'
import { ThemeId } from '../tokens/stitches.config'
type PrimaryDropdownProps = {
children?: ReactNode
+ showThemeSection: boolean
}
+export type HeaderDropdownAction =
+ | 'navigate-to-install'
+ | 'navigate-to-emails'
+ | 'navigate-to-labels'
+ | 'navigate-to-profile'
+ | 'navigate-to-subscriptions'
+ | 'navigate-to-api'
+ | 'navigate-to-integrations'
+ | 'increaseFontSize'
+ | 'decreaseFontSize'
+ | 'logout'
+
export function PrimaryDropdown(props: PrimaryDropdownProps): JSX.Element {
const { viewerData } = useGetViewerQuery()
const router = useRouter()
+ const [currentTheme, setCurrentTheme] = useState(currentThemeName())
+
+ const isDark = useMemo(() => {
+ return currentTheme === 'Dark' || currentTheme === 'Darker'
+ }, [currentTheme])
+
const headerDropdownActionHandler = useCallback(
(action: HeaderDropdownAction) => {
switch (action) {
- case 'apply-darker-theme':
- updateTheme(ThemeId.Darker)
- break
- case 'apply-dark-theme':
- updateTheme(ThemeId.Dark)
- break
- case 'apply-lighter-theme':
- updateTheme(ThemeId.Lighter)
- break
- case 'apply-light-theme':
- updateTheme(ThemeId.Light)
- break
case 'navigate-to-install':
router.push('/settings/installation')
break
@@ -62,14 +74,86 @@ export function PrimaryDropdown(props: PrimaryDropdownProps): JSX.Element {
}
return (
-
)
}
- actionHandler={headerDropdownActionHandler}
- />
+ >
+
+ {props.showThemeSection && }
+
+ headerDropdownActionHandler('navigate-to-install')}
+ title="Install"
+ />
+ headerDropdownActionHandler('navigate-to-emails')}
+ title="Emails"
+ />
+ headerDropdownActionHandler('navigate-to-labels')}
+ title="Labels"
+ />
+ headerDropdownActionHandler('navigate-to-api')}
+ title="API Keys"
+ />
+ headerDropdownActionHandler('navigate-to-integrations')}
+ title="Integrations"
+ />
+ window.open('https://docs.omnivore.app', '_blank')}
+ title="Documentation"
+ />
+ window.Intercom('show')}
+ title="Feedback"
+ />
+ headerDropdownActionHandler('logout')}
+ title="Logout"
+ />
+
+ )
+}
+
+function ThemeSection(): JSX.Element {
+ const [currentTheme, setCurrentTheme] = useState(currentThemeName())
+
+ const isDark = useMemo(() => {
+ return currentTheme === 'Dark' || currentTheme === 'Darker'
+ }, [currentTheme])
+
+ return (
+ <>
+ Theme
+
+
+
+
+ >
)
}
diff --git a/packages/web/components/templates/homeFeed/LibraryFilterMenu.tsx b/packages/web/components/templates/homeFeed/LibraryFilterMenu.tsx
index 3a72367fd..7ee2a7258 100644
--- a/packages/web/components/templates/homeFeed/LibraryFilterMenu.tsx
+++ b/packages/web/components/templates/homeFeed/LibraryFilterMenu.tsx
@@ -31,6 +31,9 @@ export function LibraryFilterMenu(props: LibraryFilterMenuProps): JSX.Element {
borderRight: '1px solid #E1E1E1',
overflowY: 'auto',
overflowX: 'hidden',
+ '&::-webkit-scrollbar': {
+ display: 'none',
+ },
}}
>
diff --git a/packages/web/components/templates/homeFeed/LibraryHeader.tsx b/packages/web/components/templates/homeFeed/LibraryHeader.tsx
index 078740b05..175ebce64 100644
--- a/packages/web/components/templates/homeFeed/LibraryHeader.tsx
+++ b/packages/web/components/templates/homeFeed/LibraryHeader.tsx
@@ -289,7 +289,7 @@ function ControlButtonBox(props: ControlButtonBoxProps): JSX.Element {
color={props.layout == 'LIST_LAYOUT' ? '#6A6968' : '#FFEA9F'}
/>
-
+
-
+
>
)
diff --git a/packages/web/components/templates/reader/ReaderHeader.tsx b/packages/web/components/templates/reader/ReaderHeader.tsx
index a494ab585..fe208040a 100644
--- a/packages/web/components/templates/reader/ReaderHeader.tsx
+++ b/packages/web/components/templates/reader/ReaderHeader.tsx
@@ -111,7 +111,7 @@ function ControlButtonBox(props: ReaderHeaderProps): JSX.Element {
-
+
@@ -130,7 +130,7 @@ function ControlButtonBox(props: ReaderHeaderProps): JSX.Element {
},
}}
>
-
+
>
)