From 65441ae06d08b86d830a25f27ec96083de914a5c Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Mon, 27 Feb 2023 09:49:49 +0800 Subject: [PATCH] Remove some unused code --- .../elements/images/PenWithColorIcon.tsx | 14 +- packages/web/components/patterns/CardMenu.tsx | 16 -- .../patterns/LibraryCards/CardTypes.tsx | 2 - .../web/components/patterns/PrimaryHeader.tsx | 5 +- .../templates/article/ArticleActionsMenu.tsx | 3 - .../article/ArticleHeaderToolbar.tsx | 70 ------ .../templates/article/HighlightNoteModal.tsx | 7 +- .../templates/article/SnoozeLinkModal.tsx | 219 ------------------ .../templates/homeFeed/HomeFeedContainer.tsx | 63 +---- .../templates/homeFeed/LibraryFilterMenu.tsx | 37 +-- .../templates/homeFeed/LibraryHeader.tsx | 22 +- .../templates/integrations/Readwise.tsx | 168 +++++++------- .../templates/landing/LandingFooter.tsx | 6 +- .../templates/library/LibraryAvatar.tsx | 63 ----- .../templates/library/LibraryContainer.tsx | 76 ------ .../templates/library/LibraryHeadline.tsx | 43 ---- .../templates/library/LibraryList.tsx | 143 ------------ .../templates/library/LibraryMenu.tsx | 24 -- .../templates/library/LibrarySearchBar.tsx | 215 ----------------- .../templates/reader/ReaderHeader.tsx | 34 +-- .../templates/settings/SettingsTable.tsx | 5 +- packages/web/pages/about.tsx | 38 --- packages/web/pages/index.tsx | 38 --- packages/web/pages/library.tsx | 5 - 24 files changed, 110 insertions(+), 1206 deletions(-) delete mode 100644 packages/web/components/templates/article/ArticleHeaderToolbar.tsx delete mode 100644 packages/web/components/templates/article/SnoozeLinkModal.tsx delete mode 100644 packages/web/components/templates/library/LibraryAvatar.tsx delete mode 100644 packages/web/components/templates/library/LibraryContainer.tsx delete mode 100644 packages/web/components/templates/library/LibraryHeadline.tsx delete mode 100644 packages/web/components/templates/library/LibraryList.tsx delete mode 100644 packages/web/components/templates/library/LibraryMenu.tsx delete mode 100644 packages/web/components/templates/library/LibrarySearchBar.tsx delete mode 100644 packages/web/pages/library.tsx diff --git a/packages/web/components/elements/images/PenWithColorIcon.tsx b/packages/web/components/elements/images/PenWithColorIcon.tsx index b3c8a75d1..6d7158908 100644 --- a/packages/web/components/elements/images/PenWithColorIcon.tsx +++ b/packages/web/components/elements/images/PenWithColorIcon.tsx @@ -1,16 +1,4 @@ -import { config } from '../../tokens/stitches.config' - -type PenWithColorProps = { - color?: string - width?: number - height?: number -} - -export function PenWithColorIcon({ - color, - height, - width, -}: PenWithColorProps): JSX.Element { +export function PenWithColorIcon(): JSX.Element { return ( props.actionHandler('editTitle')} title="Edit Metadata" /> - {isVipUser(props.viewer) && ( - { - props.actionHandler('snooze') - }} - title="Snooze" - /> - )} - {/* { - props.actionHandler('share') - }} - title="Share" - /> */} {props.item.readingProgressPercent < 98 ? ( { diff --git a/packages/web/components/patterns/LibraryCards/CardTypes.tsx b/packages/web/components/patterns/LibraryCards/CardTypes.tsx index cb45a6119..93c2a5094 100644 --- a/packages/web/components/patterns/LibraryCards/CardTypes.tsx +++ b/packages/web/components/patterns/LibraryCards/CardTypes.tsx @@ -11,8 +11,6 @@ export type LinkedItemCardAction = | 'delete' | 'mark-read' | 'mark-unread' - | 'share' - | 'snooze' | 'set-labels' | 'unsubscribe' | 'update-item' diff --git a/packages/web/components/patterns/PrimaryHeader.tsx b/packages/web/components/patterns/PrimaryHeader.tsx index ac413f622..94880db9a 100644 --- a/packages/web/components/patterns/PrimaryHeader.tsx +++ b/packages/web/components/patterns/PrimaryHeader.tsx @@ -4,12 +4,9 @@ import { DropdownMenu, HeaderDropdownAction } from './../patterns/DropdownMenu' import { updateTheme } from '../../lib/themeUpdater' import { AvatarDropdown } from './../elements/AvatarDropdown' import { ThemeId } from './../tokens/stitches.config' -import { useCallback, useEffect, useState } from 'react' +import { useState } from 'react' import { useRouter } from 'next/router' -import { useKeyboardShortcuts } from '../../lib/keyboardShortcuts/useKeyboardShortcuts' -import { primaryCommands } from '../../lib/keyboardShortcuts/navigationShortcuts' import { UserBasicData } from '../../lib/networking/queries/useGetViewerQuery' -import { setupAnalytics } from '../../lib/analytics' type HeaderProps = { user?: UserBasicData diff --git a/packages/web/components/templates/article/ArticleActionsMenu.tsx b/packages/web/components/templates/article/ArticleActionsMenu.tsx index df715a9ac..ce9a47f3b 100644 --- a/packages/web/components/templates/article/ArticleActionsMenu.tsx +++ b/packages/web/components/templates/article/ArticleActionsMenu.tsx @@ -1,10 +1,8 @@ import { Separator } from '@radix-ui/react-separator' import { ArchiveBox, - DotsThree, HighlighterCircle, TagSimple, - TextAa, Trash, Tray, } from 'phosphor-react' @@ -14,7 +12,6 @@ import { Dropdown } from '../../elements/DropdownElements' import { Box, SpanBox } from '../../elements/LayoutPrimitives' import { TooltipWrapped } from '../../elements/Tooltip' import { styled, theme } from '../../tokens/stitches.config' -import { SetLabelsControl } from './SetLabelsControl' import { DisplaySettingsModal } from './DisplaySettingsModal' import { useReaderSettings } from '../../../lib/hooks/useReaderSettings' import { useRef } from 'react' diff --git a/packages/web/components/templates/article/ArticleHeaderToolbar.tsx b/packages/web/components/templates/article/ArticleHeaderToolbar.tsx deleted file mode 100644 index ea92b6677..000000000 --- a/packages/web/components/templates/article/ArticleHeaderToolbar.tsx +++ /dev/null @@ -1,70 +0,0 @@ -import { useCallback } from 'react' -import { CommentIcon } from '../../elements/images/CommentIcon' -import { CopyLinkIcon } from '../../elements/images/CopyLinkIcon' -import { PostIcon } from '../../elements/images/PostIcon' -import { ShareIcon } from '../../elements/images/ShareIcon' -import { HStack } from './../../elements/LayoutPrimitives' -import { useCopyLink } from '../../../lib/hooks/useCopyLink' -import { Button } from '../../elements/Button' -import { theme } from './../../tokens/stitches.config' -import { StyledText } from './../../elements/StyledText' -import { useCanShareNative } from '../../../lib/hooks/useCanShareNative' - -type ArticleHeaderToolbarProps = { - articleTitle: string - articleShareURL: string - hasHighlights: boolean - setShowHighlightsModal: React.Dispatch> -} - -export function ArticleHeaderToolbar( - props: ArticleHeaderToolbarProps -): JSX.Element { - return ( - - {props.hasHighlights && ( - - )} - {/* - {enablePostAction ? ( - - ) : null} - - {isLinkCopied ? ( - - Link Copied - - ) : null} */} - - ) -} diff --git a/packages/web/components/templates/article/HighlightNoteModal.tsx b/packages/web/components/templates/article/HighlightNoteModal.tsx index 9c36fecf7..e8a8ecf83 100644 --- a/packages/web/components/templates/article/HighlightNoteModal.tsx +++ b/packages/web/components/templates/article/HighlightNoteModal.tsx @@ -5,11 +5,7 @@ import { ModalTitleBar, ModalButtonBar, } from './../../elements/ModalPrimitives' -import { Box, HStack, SpanBox, VStack } from '../../elements/LayoutPrimitives' -import { Button } from '../../elements/Button' -import { StyledText } from '../../elements/StyledText' -import { CommentIcon } from '../../elements/images/CommentIcon' -import { theme } from '../../tokens/stitches.config' +import { VStack } from '../../elements/LayoutPrimitives' import { Highlight } from '../../../lib/networking/fragments/highlightFragment' import { useCallback, useState } from 'react' import { StyledTextArea } from '../../elements/StyledTextArea' @@ -17,7 +13,6 @@ import { updateHighlightMutation } from '../../../lib/networking/mutations/updat import { readableUpdatedAtMessage } from './../../../lib/dateFormatting' import { useConfirmListener } from '../../../lib/keyboardShortcuts/useKeyboardShortcuts' import { showErrorToast } from '../../../lib/toastHelpers' -import { CrossIcon } from '../../elements/images/CrossIcon' type HighlightNoteModalProps = { author: string diff --git a/packages/web/components/templates/article/SnoozeLinkModal.tsx b/packages/web/components/templates/article/SnoozeLinkModal.tsx deleted file mode 100644 index 0ddec2e0a..000000000 --- a/packages/web/components/templates/article/SnoozeLinkModal.tsx +++ /dev/null @@ -1,219 +0,0 @@ -import { - ModalContent, - ModalOverlay, - ModalRoot, -} from '../../elements/ModalPrimitives' -import { Box, HStack, SpanBox, VStack } from '../../elements/LayoutPrimitives' -import { Button } from '../../elements/Button' -import { StyledText } from '../../elements/StyledText' -import { X, Check } from 'phosphor-react' -import { useState } from 'react' -import { showErrorToast } from '../../../lib/toastHelpers' - -enum ButtonPosition { - Top, - Middle, - Bottom, - Standalone, -} - -type SnoozeOptionButtonProps = { - title: string - position: ButtonPosition - onClick: () => void - selected?: boolean - borderRadius?: string -} - -function SnoozeOptionButton(props: SnoozeOptionButtonProps): JSX.Element { - let borderRadius = '0px' - let borderWidth = '1px' - switch (props.position) { - case ButtonPosition.Top: - borderWidth = '1px' - borderRadius = '8px 8px 0px 0px' - break - case ButtonPosition.Middle: - borderWidth = '0px 1px 0px 1px' - borderRadius = '0px' - break - case ButtonPosition.Bottom: - borderWidth = '1px' - borderRadius = '0px 0px 8px 8px' - break - case ButtonPosition.Standalone: - borderWidth = '1px' - borderRadius = '8px' - break - } - - return ( - - ) -} - -export function SnoozeLinkModal(props: ShareArticleModalProps): JSX.Element { - const [sendReminder, setSendReminder] = useState(false) - const [snoozeOption, setSnoozeOption] = useState( - undefined - ) - - const setOption = (option: string) => { - setSnoozeOption(option) - setSendReminder(true) - } - - return ( - - - { - event.preventDefault() - }} - css={{ - m: '0px', - p: '0px', - width: '375px', - height: '388px', - overflow: 'auto', - background: 'white', - }} - > - - - - Snooze - - - - - setOption('tonight')} - /> - setOption('tomorrow')} - /> - setOption('weekend')} - /> - - - - { - setSendReminder(!sendReminder) - }} - /> - - - - - - - - - - ) -} diff --git a/packages/web/components/templates/homeFeed/HomeFeedContainer.tsx b/packages/web/components/templates/homeFeed/HomeFeedContainer.tsx index e0a1fadb8..e0b9bd42d 100644 --- a/packages/web/components/templates/homeFeed/HomeFeedContainer.tsx +++ b/packages/web/components/templates/homeFeed/HomeFeedContainer.tsx @@ -27,14 +27,8 @@ import { } from '../../../lib/keyboardShortcuts/navigationShortcuts' import { useKeyboardShortcuts } from '../../../lib/keyboardShortcuts/useKeyboardShortcuts' import { Toaster } from 'react-hot-toast' -import { SnoozeLinkModal } from '../article/SnoozeLinkModal' -import { - createReminderMutation, - ReminderType, -} from '../../../lib/networking/mutations/createReminderMutation' import { useFetchMore } from '../../../lib/hooks/useFetchMoreScroll' import { usePersistedState } from '../../../lib/hooks/usePersistedState' -import { showErrorToast, showSuccessToast } from '../../../lib/toastHelpers' import { ConfirmationModal } from '../../patterns/ConfirmationModal' import { SetLabelsModal } from '../article/SetLabelsModal' import { Label } from '../../../lib/networking/fragments/labelFragment' @@ -104,10 +98,6 @@ export function HomeFeedContainer(): JSX.Element { const gridContainerRef = useRef(null) - const [snoozeTarget, setSnoozeTarget] = useState( - undefined - ) - const [labelsTarget, setLabelsTarget] = useState( undefined ) @@ -338,12 +328,6 @@ export function HomeFeedContainer(): JSX.Element { case 'mark-unread': performActionOnItem('mark-unread', item) break - case 'share': - setShareTarget(item) - break - case 'snooze': - setSnoozeTarget(item) - break case 'set-labels': setLabelsTarget(item) break @@ -356,14 +340,8 @@ export function HomeFeedContainer(): JSX.Element { } const modalTargetItem = useMemo(() => { - return ( - labelsTarget || - snoozeTarget || - linkToEdit || - linkToRemove || - linkToUnsubscribe - ) - }, [labelsTarget, snoozeTarget, linkToEdit, linkToRemove, linkToUnsubscribe]) + return labelsTarget || linkToEdit || linkToRemove || linkToUnsubscribe + }, [labelsTarget, linkToEdit, linkToRemove, linkToUnsubscribe]) useKeyboardShortcuts( libraryListCommands((action) => { @@ -589,8 +567,6 @@ export function HomeFeedContainer(): JSX.Element { hasData={!!itemsPages} totalItems={itemsPages?.[0].search.pageInfo.totalCount || 0} isValidating={isValidating} - snoozeTarget={snoozeTarget} - setSnoozeTarget={setSnoozeTarget} labelsTarget={labelsTarget} setLabelsTarget={setLabelsTarget} showAddLinkModal={showAddLinkModal} @@ -621,8 +597,6 @@ type HomeFeedContentProps = { totalItems: number isValidating: boolean loadMore: () => void - snoozeTarget: LibraryItem | undefined - setSnoozeTarget: (target: LibraryItem | undefined) => void labelsTarget: LibraryItem | undefined setLabelsTarget: (target: LibraryItem | undefined) => void showAddLinkModal: boolean @@ -1019,39 +993,6 @@ function HomeFeedGrid(props: HomeFeedContentProps): JSX.Element { item={props.linkToEdit as LibraryItem} /> )} - {props.snoozeTarget && ( - { - if (!props.snoozeTarget) return - createReminderMutation( - props.snoozeTarget?.node.id, - ReminderType.Tonight, - true, - sendReminder - ) - .then(() => { - return props.actionHandler('archive', props.snoozeTarget) - }) - .then(() => { - showSuccessToast(msg, { position: 'bottom-right' }) - }) - .catch((error) => { - showErrorToast('There was an error snoozing your link.', { - position: 'bottom-right', - }) - }) - }} - onOpenChange={() => { - if (props.snoozeTarget) { - const item = document.getElementById(props.snoozeTarget.node.id) - if (item) { - item.focus() - } - props.setSnoozeTarget(undefined) - } - }} - /> - )} {showRemoveLinkConfirmation && ( void @@ -237,8 +211,11 @@ type FilterButtonProps = { } function FilterButton(props: FilterButtonProps): JSX.Element { + const isInboxFilter = (filter: string) => { + return filter === '' || filter === 'in:inbox' + } const selected = useMemo(() => { - if (props.filterTerm === '' && !props.searchTerm) { + if (isInboxFilter(props.filterTerm) && !props.searchTerm) { return true } return props.searchTerm === props.filterTerm diff --git a/packages/web/components/templates/homeFeed/LibraryHeader.tsx b/packages/web/components/templates/homeFeed/LibraryHeader.tsx index f9162147c..b8b93935b 100644 --- a/packages/web/components/templates/homeFeed/LibraryHeader.tsx +++ b/packages/web/components/templates/homeFeed/LibraryHeader.tsx @@ -1,30 +1,16 @@ -import { - InputHTMLAttributes, - ReactNode, - useCallback, - useEffect, - useRef, - useState, -} from 'react' -import { StyledText } from '../../elements/StyledText' +import { useRef, useState } from 'react' import { Box, HStack, SpanBox, VStack } from '../../elements/LayoutPrimitives' -import { SearchIcon } from '../../elements/images/SearchIcon' -import { theme, ThemeId } from '../../tokens/stitches.config' -import { Dropdown, DropdownOption } from '../../elements/DropdownElements' +import { theme } from '../../tokens/stitches.config' import { FormInput } from '../../elements/FormElements' import { searchBarCommands } from '../../../lib/keyboardShortcuts/navigationShortcuts' import { useKeyboardShortcuts } from '../../../lib/keyboardShortcuts/useKeyboardShortcuts' import { Button, IconButton } from '../../elements/Button' -import { MagnifyingGlass, Textbox, X } from 'phosphor-react' +import { MagnifyingGlass, X } from 'phosphor-react' import { OmnivoreNameLogo } from '../../elements/images/OmnivoreNameLogo' import { OmnivoreFullLogo } from '../../elements/images/OmnivoreFullLogo' -import { AvatarDropdown } from '../../elements/AvatarDropdown' import { ListSelectorIcon } from '../../elements/images/ListSelectorIcon' import { GridSelectorIcon } from '../../elements/images/GridSelectorIcon' import { LayoutType } from './HomeFeedContainer' -import { DropdownMenu, HeaderDropdownAction } from '../../patterns/DropdownMenu' -import { updateTheme } from '../../../lib/themeUpdater' -import { useRouter } from 'next/router' import { PrimaryDropdown } from '../PrimaryDropdown' type LibraryHeaderProps = { @@ -170,7 +156,7 @@ function SearchBox(props: SearchBoxProps): JSX.Element { }} /> - {props.searchTerm ? ( + {searchTerm && searchTerm.length > 0 ? (