diff --git a/packages/web/components/templates/Menu.tsx b/packages/web/components/templates/Menu.tsx deleted file mode 100644 index 7ac25a9f8..000000000 --- a/packages/web/components/templates/Menu.tsx +++ /dev/null @@ -1,179 +0,0 @@ -import Link from 'next/link' -import React, { useEffect, useState } from 'react' - -import { useGetLabelsQuery } from '../../lib/networking/queries/useGetLabelsQuery' -import { useGetSubscriptionsQuery } from '../../lib/networking/queries/useGetSubscriptionsQuery' - -import { ProSidebar, Menu, MenuItem, SubMenu } from 'react-pro-sidebar' -import { Newspaper, Tag } from 'phosphor-react' - -// styles -const proSideBarStyles = { - display: 'inline-block', -} - -// Types -type MenuItems = { - label: string - query: string - active?: boolean - icon: string | JSX.Element | null - href: string -} - -type DynamicMenuItems = { - labels?: MenuItems[] - subscriptions?: MenuItems[] -} - -// Functions -const calculateTodayMenuItem = () => { - const timeZoneHourDiff = -new Date().getTimezoneOffset() / 60 - const hrefStr = `?q=in%3Ainbox+saved%3A${ - new Date(new Date().getTime() - 24 * 3600000).toISOString().split('T')[0] - }Z%${timeZoneHourDiff}B2..*` - return hrefStr -} - -const createDynamicMenuItems = ( - labels: Array, - subscriptions: Array -) => { - const labelsList: Array = [] - const subscriptionsList: Array = [] - // Create labels list - if (labels.length) { - labels.map((l) => - labelsList.push({ - label: l.name, - query: `label:"${l.name}"`, - icon: , - href: `?q=label:"${l.name}"`, - }) - ) - } - // create subscriptions list - if (subscriptions.length) { - subscriptions.map((s) => - subscriptionsList.push({ - label: s.name, - query: `subscription:"${s.subscription}"`, - icon: , - href: `?q=subscription:"${s.subscription}"`, - }) - ) - } - return { labels: [...labelsList], subscriptions: [...subscriptionsList] } -} - -// Component -export const Menubar = () => { - const { labels } = useGetLabelsQuery() - const { subscriptions } = useGetSubscriptionsQuery() - - const [menuList, setMenuList] = useState>([]) - const [dynamicMenuItems, setDynamicMenuItems] = useState({}) - const [activeItem, setActiveItem] = useState('Home') - - useEffect(() => { - if (labels || subscriptions) { - setDynamicMenuItems(createDynamicMenuItems(labels, subscriptions)) - } - setMenuList([ - { - label: 'Home', - query: 'in:inbox', - icon: null, - href: '/home', - }, - { - label: 'Today', - query: 'in:inbox-label:Newsletter', - icon: null, - href: calculateTodayMenuItem(), - }, - { - label: 'Read Later', - query: 'in:inbox-label:Newsletter', - icon: null, - href: `?q=in:inbox+-label:Newsletter`, - }, - { - label: 'HighLights', - query: 'type:highlights', - icon: null, - href: `?q=type:highlights`, - }, - { - label: 'Newsletters', - query: 'in:inbox label:Newsletter', - icon: null, - href: `?q=in:inbox+label:Newsletter`, - }, - ]) - }, [labels, subscriptions]) - - return ( - - - {menuList.length > 0 && - menuList.map((item) => { - return ( - { - setActiveItem(item.label) - }} - > - - {item.label} - - - ) - })} - {dynamicMenuItems.labels && ( - - {dynamicMenuItems.labels.map((item: MenuItems) => { - return ( - { - setActiveItem(item.label) - }} - > - - {item.label} - - - ) - })} - - )} - {dynamicMenuItems.subscriptions && ( - - {dynamicMenuItems.subscriptions.map((item: MenuItems) => { - return ( - { - setActiveItem(item.label) - }} - > - - {item.label} - - - ) - })} - - )} - - - ) -} diff --git a/packages/web/stories/Menu.stories.tsx b/packages/web/stories/Menu.stories.tsx deleted file mode 100644 index cf488b9c8..000000000 --- a/packages/web/stories/Menu.stories.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { ComponentStory, ComponentMeta } from '@storybook/react' -//import { updateThemeLocally } from '../lib/themeUpdater' -//import { ThemeId } from '../components/tokens/stitches.config' -import { Menubar } from '../components/templates/Menu' - -export default { - title: 'Components/Menu', - component: Menubar, -} as ComponentMeta - -const Template: ComponentStory = () => ( - -) - -export const MenuStory = Template.bind({}) -