From 3a65ee3a6caf082f3b9f75f463cda899e1230594 Mon Sep 17 00:00:00 2001 From: Thomas Rogers Date: Fri, 1 Sep 2023 18:30:29 +0200 Subject: [PATCH 01/30] Fix Loading: Ensure that image is loaded when retrieving images --- .../web/components/templates/homeFeed/HomeFeedContainer.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/web/components/templates/homeFeed/HomeFeedContainer.tsx b/packages/web/components/templates/homeFeed/HomeFeedContainer.tsx index 65c1bb689..26b2b8e24 100644 --- a/packages/web/components/templates/homeFeed/HomeFeedContainer.tsx +++ b/packages/web/components/templates/homeFeed/HomeFeedContainer.tsx @@ -224,7 +224,7 @@ export function HomeFeedContainer(): JSX.Element { if (link && link.state != 'PROCESSING') { const updatedArticle = { ...item } - updatedArticle.node = { ...item.node, ...link } + updatedArticle.node = { ...item.node, ...link, image: "https://cdn.arstechnica.net/wp-content/uploads/2023/09/cpglitch-800x450.jpg" } updatedArticle.isLoading = false console.log(`Updating Metadata of ${item.node.slug}.`) performActionOnItem('update-item', updatedArticle) @@ -1229,7 +1229,7 @@ function LibraryItems(props: LibraryItemsProps): JSX.Element { data-testid="linkedItemCard" id={linkedItem.node.id} tabIndex={0} - key={linkedItem.node.id} + key={linkedItem.node.id + linkedItem.node.image} css={{ width: '100%', '&:focus-visible': { From f85ec33ec74f9d81d7b6334c67c40a3d83d8defc Mon Sep 17 00:00:00 2001 From: Thomas Rogers Date: Fri, 1 Sep 2023 18:32:30 +0200 Subject: [PATCH 02/30] Remove Placeholder Image --- .../web/components/templates/homeFeed/HomeFeedContainer.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web/components/templates/homeFeed/HomeFeedContainer.tsx b/packages/web/components/templates/homeFeed/HomeFeedContainer.tsx index 26b2b8e24..fae67ae68 100644 --- a/packages/web/components/templates/homeFeed/HomeFeedContainer.tsx +++ b/packages/web/components/templates/homeFeed/HomeFeedContainer.tsx @@ -224,7 +224,7 @@ export function HomeFeedContainer(): JSX.Element { if (link && link.state != 'PROCESSING') { const updatedArticle = { ...item } - updatedArticle.node = { ...item.node, ...link, image: "https://cdn.arstechnica.net/wp-content/uploads/2023/09/cpglitch-800x450.jpg" } + updatedArticle.node = { ...item.node, ...link } updatedArticle.isLoading = false console.log(`Updating Metadata of ${item.node.slug}.`) performActionOnItem('update-item', updatedArticle) From e8fc315301985e2aded5f71d63e5537874822570 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Thu, 31 Aug 2023 17:18:24 +0800 Subject: [PATCH 03/30] Add suggestion boxes for the major pages --- .../web/components/elements/SuggestionBox.tsx | 116 +++++++++++++++++ .../components/templates/SettingsLayout.tsx | 1 - .../templates/homeFeed/EmptyLibrary.tsx | 119 ++++++++++-------- .../templates/settings/SettingsTable.tsx | 30 +++++ packages/web/pages/settings/api.tsx | 5 + packages/web/pages/settings/emails/index.tsx | 6 + packages/web/pages/settings/emails/recent.tsx | 7 +- packages/web/pages/settings/feeds/index.tsx | 5 + packages/web/pages/settings/labels.tsx | 21 ++++ packages/web/pages/settings/subscriptions.tsx | 7 +- 10 files changed, 263 insertions(+), 54 deletions(-) create mode 100644 packages/web/components/elements/SuggestionBox.tsx diff --git a/packages/web/components/elements/SuggestionBox.tsx b/packages/web/components/elements/SuggestionBox.tsx new file mode 100644 index 000000000..595ce482a --- /dev/null +++ b/packages/web/components/elements/SuggestionBox.tsx @@ -0,0 +1,116 @@ +import Link from 'next/link' +import { HStack, SpanBox, VStack } from './LayoutPrimitives' +import { ArrowRightIcon } from './icons/ArrowRightIcon' +import { theme } from '../tokens/stitches.config' +import { ReactNode } from 'react' +import { Button } from './Button' +import { CloseIcon } from './images/CloseIcon' + +type SuggestionBoxProps = { + helpMessage: string + helpCTAText: string | undefined + helpTarget: string | undefined + + size?: 'large' | 'small' + background?: string + + dismissible?: boolean + onDismiss?: () => void +} + +type InternalOrExternalLinkProps = { + link: string + children: ReactNode +} + +const InternalOrExternalLink = (props: InternalOrExternalLinkProps) => { + const isExternal = props.link.startsWith('https') + + return ( + + {!isExternal ? ( + {props.children} + ) : ( + + {props.children} + + )} + + ) +} + +export const SuggestionBox = (props: SuggestionBoxProps) => { + return ( + + + {props.dismissible && ( + + + + )} + {props.helpMessage} + {props.helpTarget && ( + + + <>{props.helpCTAText} + + + + )} + + + ) +} diff --git a/packages/web/components/templates/SettingsLayout.tsx b/packages/web/components/templates/SettingsLayout.tsx index 7ec179af3..eb5c291a7 100644 --- a/packages/web/components/templates/SettingsLayout.tsx +++ b/packages/web/components/templates/SettingsLayout.tsx @@ -49,7 +49,6 @@ export function SettingsLayout(props: SettingsLayoutProps): JSX.Element { {props.children} diff --git a/packages/web/components/templates/homeFeed/EmptyLibrary.tsx b/packages/web/components/templates/homeFeed/EmptyLibrary.tsx index 7e342ef24..8f227a4fe 100644 --- a/packages/web/components/templates/homeFeed/EmptyLibrary.tsx +++ b/packages/web/components/templates/homeFeed/EmptyLibrary.tsx @@ -9,6 +9,7 @@ import { searchQuery } from '../../../lib/networking/queries/search' import { LIBRARY_LEFT_MENU_WIDTH } from './LibraryFilterMenu' import { LayoutType } from './HomeFeedContainer' import { ArrowRightIcon } from '../../elements/icons/ArrowRightIcon' +import { SuggestionBox } from '../../elements/SuggestionBox' type EmptyLibraryProps = { searchTerm: string | undefined @@ -17,7 +18,13 @@ type EmptyLibraryProps = { layoutType: LayoutType } -type MessageType = 'feed' | 'newsletter' | 'library' +type MessageType = + | 'inbox' + | 'files' + | 'archive' + | 'feed' + | 'newsletter' + | 'library' type HelpMessageProps = { type: MessageType @@ -83,6 +90,12 @@ const HelpMessage = (props: HelpMessageProps) => { export const ErrorBox = (props: HelpMessageProps) => { const errorTitle = useMemo(() => { switch (props.type) { + case 'inbox': + return 'Your inbox is empty.' + case 'archive': + return 'You do not have any archived items.' + case 'files': + return 'No files found.' case 'feed': return 'You do not have any feed items matching this query.' case 'newsletter': @@ -116,70 +129,70 @@ export const ErrorBox = (props: HelpMessageProps) => { ) } -export const SuggestionBox = (props: HelpMessageProps) => { +export const Suggestion = (props: HelpMessageProps) => { const helpMessage = useMemo(() => { switch (props.type) { case 'feed': - return 'Want to add an RSS or Atom Subscription?' + return ['Want to add an RSS or Atom Subscription?', 'Click Here'] + case 'archive': + return [ + 'When you are done reading something archive it and it will be saved in Omnivore forever.', + 'Read the Docs', + ] + case 'files': + return [ + 'Drag PDFs into the library to add them to your Omnivore account.', + undefined, + ] case 'newsletter': - return 'Create an Omnivore email address and subscribe to newsletters.' + return [ + 'Create an Omnivore email address and subscribe to newsletters.', + 'Click Here', + ] } - return "Add a link or read more about Omnivore's Advanced Search." + return [ + "Add a link or read more about Omnivore's Advanced Search.", + 'Read the Docs', + ] }, [props.type]) const helpTarget = useMemo(() => { switch (props.type) { case 'feed': return '/settings/feeds' + case 'archive': + case 'files': + return undefined + case 'archive': + case 'inbox': + return 'https://docs.omnivore.app/using/saving' case 'newsletter': return '/settings/emails' } return 'https://docs.omnivore.app/' }, [props.type]) + const helpTargetWindow = useMemo(() => { + switch (props.type) { + case 'archive': + case 'inbox': + return '_blank' + } + return undefined + }, [props.type]) + return ( - - {helpMessage} - - - - <>Click Here - - - - - + <> + {helpMessage[0] ? ( + + ) : ( + <> + )} + ) } @@ -187,6 +200,12 @@ export const EmptyLibrary = (props: EmptyLibraryProps) => { const type = useMemo(() => { if (props.searchTerm) { switch (props.searchTerm) { + case 'in:archive': + return 'archive' + case 'in:inbox': + return 'inbox' + case 'type:file': + return 'files' case 'label:RSS': return 'feed' case 'label:Newsletter': @@ -205,9 +224,7 @@ export const EmptyLibrary = (props: EmptyLibraryProps) => { pl: '0px', width: '100%', - '@media (max-width: 1300px)': { - flexDirection: 'column', - }, + flexDirection: 'column', '@media (max-width: 768px)': { p: '15px', @@ -232,7 +249,7 @@ export const EmptyLibrary = (props: EmptyLibraryProps) => { }} > - + ) } diff --git a/packages/web/components/templates/settings/SettingsTable.tsx b/packages/web/components/templates/settings/SettingsTable.tsx index a71e290d1..0460ab8a0 100644 --- a/packages/web/components/templates/settings/SettingsTable.tsx +++ b/packages/web/components/templates/settings/SettingsTable.tsx @@ -8,6 +8,8 @@ import { Box, HStack, SpanBox, VStack } from '../../elements/LayoutPrimitives' import { StyledText } from '../../elements/StyledText' import { theme } from '../../tokens/stitches.config' import { SettingsLayout } from '../SettingsLayout' +import { SuggestionBox } from '../../elements/SuggestionBox' +import { usePersistedState } from '../../../lib/hooks/usePersistedState' type SettingsTableProps = { pageId: string @@ -17,6 +19,8 @@ type SettingsTableProps = { createTitle?: string createAction?: () => void + suggestionInfo: SuggestionInfo + children: React.ReactNode } @@ -52,6 +56,12 @@ type MoreOptionsProps = { onEdit?: () => void } +type SuggestionInfo = { + text: string + docs: string + key: string +} + const MoreOptions = (props: MoreOptionsProps) => ( { } export const SettingsTable = (props: SettingsTableProps): JSX.Element => { + const [showSuggestion, setShowSuggestion] = usePersistedState({ + key: props.suggestionInfo.key, + initialValue: !!props.suggestionInfo, + }) + return ( { }, }} > + {props.suggestionInfo && showSuggestion && ( + + { + setShowSuggestion(false) + }} + /> + + )} {sortedApiKeys.length > 0 ? ( sortedApiKeys.map((apiKey, i) => { diff --git a/packages/web/pages/settings/emails/index.tsx b/packages/web/pages/settings/emails/index.tsx index fae30528e..fee815935 100644 --- a/packages/web/pages/settings/emails/index.tsx +++ b/packages/web/pages/settings/emails/index.tsx @@ -22,6 +22,7 @@ import { SettingsTableRow, } from '../../../components/templates/settings/SettingsTable' import { ConfirmationModal } from '../../../components/patterns/ConfirmationModal' +import { SuggestionBox } from '../../../components/elements/SuggestionBox' enum TextType { EmailAddress, @@ -121,6 +122,11 @@ export default function EmailsPage(): JSX.Element { headerTitle="Address" createTitle="Create a new email address" createAction={createEmail} + suggestionInfo={{ + text: 'Create an Omnivore email address and use it to subscribe to newsletters. The newsletters will be automatically added to your library.', + docs: 'https://docs.omnivore.app/using/inbox.html', + key: '--settings-emails-show-help', + }} > {sortedEmailAddresses.length > 0 ? ( sortedEmailAddresses.map((email, i) => { diff --git a/packages/web/pages/settings/emails/recent.tsx b/packages/web/pages/settings/emails/recent.tsx index 3dd1107b4..ce1dace90 100644 --- a/packages/web/pages/settings/emails/recent.tsx +++ b/packages/web/pages/settings/emails/recent.tsx @@ -168,9 +168,14 @@ export default function RecentEmails(): JSX.Element { return ( {sortedRecentEmails.length > 0 ? ( sortedRecentEmails.map((recentEmail: RecentEmail, i) => { diff --git a/packages/web/pages/settings/feeds/index.tsx b/packages/web/pages/settings/feeds/index.tsx index cbe310e8c..7abae14d2 100644 --- a/packages/web/pages/settings/feeds/index.tsx +++ b/packages/web/pages/settings/feeds/index.tsx @@ -96,6 +96,11 @@ export default function Rss(): JSX.Element { createAction={() => { router.push('/settings/feeds/add') }} + suggestionInfo={{ + text: 'Add RSS and Atom feeds to your Omnivore account. When you add a new feed the last 24hrs of items, or at least one item will be added to your account.', + docs: 'https://docs.omnivore.app/using/feeds.html', + key: '--settings-feeds-show-help', + }} > {subscriptions.length === 0 ? ( diff --git a/packages/web/pages/settings/labels.tsx b/packages/web/pages/settings/labels.tsx index 572002fc2..bfbd31665 100644 --- a/packages/web/pages/settings/labels.tsx +++ b/packages/web/pages/settings/labels.tsx @@ -35,6 +35,8 @@ import { import { LabelChip } from '../../components/elements/LabelChip' import { ConfirmationModal } from '../../components/patterns/ConfirmationModal' import { InfoLink } from '../../components/elements/InfoLink' +import { SuggestionBox } from '../../components/elements/SuggestionBox' +import { usePersistedState } from '../../lib/hooks/usePersistedState' const HeaderWrapper = styled(Box, { width: '100%', @@ -153,6 +155,10 @@ export default function LabelsPage(): JSX.Element { const [confirmRemoveLabelId, setConfirmRemoveLabelId] = useState< string | null >(null) + const [showLabelPageHelp, setShowLabelPageHelp] = usePersistedState({ + key: `--settings-labels-show-help`, + initialValue: true, + }) const breakpoint = 768 applyStoredTheme(false) @@ -270,6 +276,21 @@ export default function LabelsPage(): JSX.Element { onOpenChange={() => setConfirmRemoveLabelId(null)} /> ) : null} + {showLabelPageHelp && ( + + { + setShowLabelPageHelp(false) + }} + /> + + )} <> {sortedSubscriptions.length > 0 ? ( From cf2c2a35873110b90bdb3cb181e7eea456b2f2fb Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Thu, 31 Aug 2023 17:23:31 +0800 Subject: [PATCH 04/30] Make settings header look better --- packages/web/components/patterns/SettingsHeader.tsx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/web/components/patterns/SettingsHeader.tsx b/packages/web/components/patterns/SettingsHeader.tsx index bd98428de..b7e89a493 100644 --- a/packages/web/components/patterns/SettingsHeader.tsx +++ b/packages/web/components/patterns/SettingsHeader.tsx @@ -3,6 +3,7 @@ import { OmnivoreNameLogo } from '../elements/images/OmnivoreNameLogo' import { UserBasicData } from '../../lib/networking/queries/useGetViewerQuery' import { PrimaryDropdown } from '../templates/PrimaryDropdown' import { HEADER_HEIGHT } from '../templates/homeFeed/HeaderSpacer' +import { LogoBox } from '../elements/LogoBox' type HeaderProps = { user?: UserBasicData @@ -21,16 +22,15 @@ export function SettingsHeader(props: HeaderProps): JSX.Element { display: 'flex', position: 'fixed', width: '100%', - px: '25px', + pr: '25px', height: HEADER_HEIGHT, - bg: '$thBackground3', - borderBottom: '1px solid $thBorderColor', '@mdDown': { - px: '15px', + pr: '15px', }, }} > - + {/* - + */} From 4c1d1fbbc2b7254de01f85b37a1b0948b0a4ec1b Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Thu, 31 Aug 2023 17:28:53 +0800 Subject: [PATCH 05/30] Fix CSP to allow apple download link --- packages/web/next.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web/next.config.js b/packages/web/next.config.js index e84e4370d..edac9f067 100644 --- a/packages/web/next.config.js +++ b/packages/web/next.config.js @@ -2,7 +2,7 @@ const ContentSecurityPolicy = ` default-src 'self'; base-uri 'self'; block-all-mixed-content; - connect-src 'self' ${process.env.NEXT_PUBLIC_SERVER_BASE_URL} https://proxy-prod.omnivore-image-cache.app https://accounts.google.com https://proxy-demo.omnivore-image-cache.app https://storage.googleapis.com https://api.segment.io https://cdn.segment.com https://widget.intercom.io https://api-iam.intercom.io https://static.intercomassets.com https://downloads.intercomcdn.com https://platform.twitter.com wss://nexus-websocket-a.intercom.io wss://nexus-websocket-b.intercom.io wss://nexus-europe-websocket.intercom.io wss://nexus-australia-websocket.intercom.io; + connect-src 'self' ${process.env.NEXT_PUBLIC_SERVER_BASE_URL} https://proxy-prod.omnivore-image-cache.app https://accounts.google.com https://proxy-demo.omnivore-image-cache.app https://storage.googleapis.com https://api.segment.io https://cdn.segment.com https://widget.intercom.io https://api-iam.intercom.io https://static.intercomassets.com https://downloads.intercomcdn.com https://platform.twitter.com wss://nexus-websocket-a.intercom.io wss://nexus-websocket-b.intercom.io wss://nexus-europe-websocket.intercom.io wss://nexus-australia-websocket.intercom.io https://tools.applemediaservices.com; font-src 'self' data: https://cdn.jsdelivr.net https://js.intercomcdn.com https://fonts.intercomcdn.com; form-action 'self' ${process.env.NEXT_PUBLIC_SERVER_BASE_URL} https://getpocket.com/auth/authorize https://intercom.help https://api-iam.intercom.io https://api-iam.eu.intercom.io https://api-iam.au.intercom.io; frame-ancestors 'none'; From 8a5a523b15fe80eab2468614bbda3f33219f19ee Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Thu, 31 Aug 2023 17:34:06 +0800 Subject: [PATCH 06/30] Update box shadow for dropdowns --- packages/web/components/elements/DropdownElements.tsx | 2 +- packages/web/components/tokens/stitches.config.ts | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/web/components/elements/DropdownElements.tsx b/packages/web/components/elements/DropdownElements.tsx index b601b7f6b..1e42d61ba 100644 --- a/packages/web/components/elements/DropdownElements.tsx +++ b/packages/web/components/elements/DropdownElements.tsx @@ -53,7 +53,7 @@ export const DropdownContent = styled(Content, { borderRadius: '6px', outline: '1px solid #323232', border: '1px solid $grayBorder', - boxShadow: '$cardBoxShadow', + boxShadow: '0px 1px 2px 0px rgba(0, 0, 0, 0.05);', '--arrow-visibility': '', '&[data-side="top"]': { '--arrow-visibility': 'collapse', diff --git a/packages/web/components/tokens/stitches.config.ts b/packages/web/components/tokens/stitches.config.ts index f17a02085..dbd792a7f 100644 --- a/packages/web/components/tokens/stitches.config.ts +++ b/packages/web/components/tokens/stitches.config.ts @@ -103,8 +103,7 @@ export const { styled, css, theme, getCssText, globalCss, keyframes, config } = borderWidths: {}, borderStyles: {}, shadows: { - panelShadow: '0px 4px 18px rgba(120, 123, 134, 0.12)', - cardBoxShadow: '0px 16px 25px 16px rgba(32, 31, 29, 0.1)', + cardBoxShadow: '0px 1px 2px 0px rgba(0, 0, 0, 0.05);', }, zIndices: {}, transitions: {}, From 420e418be364a9ee54fa3bd8ea4b71f9c32f63e3 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Thu, 31 Aug 2023 17:50:09 +0800 Subject: [PATCH 07/30] Remove old code --- packages/web/components/patterns/SettingsHeader.tsx | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/packages/web/components/patterns/SettingsHeader.tsx b/packages/web/components/patterns/SettingsHeader.tsx index b7e89a493..2d33a3a58 100644 --- a/packages/web/components/patterns/SettingsHeader.tsx +++ b/packages/web/components/patterns/SettingsHeader.tsx @@ -30,16 +30,6 @@ export function SettingsHeader(props: HeaderProps): JSX.Element { }} > - {/* - - */} - From a329ae4cd3983114bb056bce17140275b5f884a3 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Mon, 4 Sep 2023 11:25:45 +0800 Subject: [PATCH 08/30] Improve sizing --- packages/web/components/elements/SuggestionBox.tsx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/web/components/elements/SuggestionBox.tsx b/packages/web/components/elements/SuggestionBox.tsx index 595ce482a..95dc32660 100644 --- a/packages/web/components/elements/SuggestionBox.tsx +++ b/packages/web/components/elements/SuggestionBox.tsx @@ -4,7 +4,7 @@ import { ArrowRightIcon } from './icons/ArrowRightIcon' import { theme } from '../tokens/stitches.config' import { ReactNode } from 'react' import { Button } from './Button' -import { CloseIcon } from './images/CloseIcon' +import { CloseIcon } from './icons/CloseIcon' type SuggestionBoxProps = { helpMessage: string @@ -60,8 +60,8 @@ export const SuggestionBox = (props: SuggestionBoxProps) => { fontFamily: '$inter', fontWeight: '500', color: '$thTextContrast', - py: '10px', px: '15px', + py: props.size == 'large' ? '15px' : '10px', justifyContent: 'flex-start', '@smDown': { flexDirection: 'column', @@ -75,6 +75,7 @@ export const SuggestionBox = (props: SuggestionBoxProps) => { )} @@ -96,6 +97,7 @@ export const SuggestionBox = (props: SuggestionBoxProps) => { display: 'flex', alignItems: 'center', color: '$omnivoreCtaYellow', + pt: '15px', gap: '2px', '&:hover': { textDecoration: 'underline', From 45b990b77dfeef6dc3fe0f16fab8b9e5c85041b7 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Mon, 4 Sep 2023 13:47:24 +0800 Subject: [PATCH 09/30] Improve the help box --- packages/web/components/elements/Button.tsx | 4 +- .../components/elements/FeatureHelpBox.tsx | 118 ++++++++++++++++++ .../web/components/elements/SuggestionBox.tsx | 2 +- .../components/elements/icons/CloseIcon.tsx | 39 ++++++ .../elements/images/HelpfulOwlImage.tsx | 17 +++ .../templates/settings/SettingsTable.tsx | 31 ++--- packages/web/pages/settings/api.tsx | 16 ++- packages/web/pages/settings/emails/index.tsx | 8 +- packages/web/pages/settings/emails/recent.tsx | 5 +- packages/web/pages/settings/feeds/index.tsx | 10 +- packages/web/pages/settings/labels.tsx | 46 +++---- packages/web/pages/settings/subscriptions.tsx | 4 +- 12 files changed, 247 insertions(+), 53 deletions(-) create mode 100644 packages/web/components/elements/FeatureHelpBox.tsx create mode 100644 packages/web/components/elements/icons/CloseIcon.tsx create mode 100644 packages/web/components/elements/images/HelpfulOwlImage.tsx diff --git a/packages/web/components/elements/Button.tsx b/packages/web/components/elements/Button.tsx index 6a407e770..831fc58cc 100644 --- a/packages/web/components/elements/Button.tsx +++ b/packages/web/components/elements/Button.tsx @@ -20,7 +20,7 @@ export const Button = styled('button', { }, ctaDarkYellow: { border: '1px solid transparent', - fontSize: '13px', + fontSize: '14px', fontWeight: 500, fontFamily: 'Inter', borderRadius: '5px', @@ -77,8 +77,8 @@ export const Button = styled('button', { fontFamily: 'Inter', borderRadius: '8px', cursor: 'pointer', - color: 'white', p: '10px 12px', + color: '$thTextContrast2', bg: 'rgb(125, 125, 125, 0.3)', '&:hover': { bg: 'rgb(47, 47, 47, 0.1)', diff --git a/packages/web/components/elements/FeatureHelpBox.tsx b/packages/web/components/elements/FeatureHelpBox.tsx new file mode 100644 index 000000000..603c829e5 --- /dev/null +++ b/packages/web/components/elements/FeatureHelpBox.tsx @@ -0,0 +1,118 @@ +import { HStack, SpanBox, VStack } from './LayoutPrimitives' +import { ArrowRightIcon } from './icons/ArrowRightIcon' +import { theme } from '../tokens/stitches.config' +import { Button } from './Button' +import { CloseIcon } from './icons/CloseIcon' +import { HelpfulOwlImage } from './images/HelpfulOwlImage' +import { ArrowSquareOut } from 'phosphor-react' + +type FeatureHelpBoxProps = { + helpTitle: string + helpMessage: string + + helpCTAText?: string + onClickCTA?: () => void + + docsMessage: string + docsDestination: string + + onDismiss: () => void +} + +export const FeatureHelpBox = (props: FeatureHelpBoxProps) => { + return ( + + + + + + + + + ) +} + +const HelpSection = (props: FeatureHelpBoxProps) => { + return ( + + + + {props.helpTitle} + + + + {props.helpMessage} + + {props.helpCTAText && props.onClickCTA && ( + + )} + + + + ) +} diff --git a/packages/web/components/elements/SuggestionBox.tsx b/packages/web/components/elements/SuggestionBox.tsx index 95dc32660..ae6cafcee 100644 --- a/packages/web/components/elements/SuggestionBox.tsx +++ b/packages/web/components/elements/SuggestionBox.tsx @@ -85,7 +85,7 @@ export const SuggestionBox = (props: SuggestionBoxProps) => { fontWeight: '600', }} > - + )} diff --git a/packages/web/components/elements/icons/CloseIcon.tsx b/packages/web/components/elements/icons/CloseIcon.tsx new file mode 100644 index 000000000..384f28150 --- /dev/null +++ b/packages/web/components/elements/icons/CloseIcon.tsx @@ -0,0 +1,39 @@ +/* eslint-disable functional/no-class */ +/* eslint-disable functional/no-this-expression */ +import { IconProps } from './IconProps' + +import React from 'react' + +export class CloseIcon extends React.Component { + render() { + const size = (this.props.size || 26).toString() + const color = (this.props.color || '#2A2A2A').toString() + + return ( + + + + + + + ) + } +} diff --git a/packages/web/components/elements/images/HelpfulOwlImage.tsx b/packages/web/components/elements/images/HelpfulOwlImage.tsx new file mode 100644 index 000000000..3268d3a29 --- /dev/null +++ b/packages/web/components/elements/images/HelpfulOwlImage.tsx @@ -0,0 +1,17 @@ +import Image from 'next/image' + +type HelpfulOwlImageProps = { + width: number + height: number +} + +export const HelpfulOwlImage = (props: HelpfulOwlImageProps) => { + return ( + Picture of an owl reading + ) +} diff --git a/packages/web/components/templates/settings/SettingsTable.tsx b/packages/web/components/templates/settings/SettingsTable.tsx index 0460ab8a0..dda8dd4fa 100644 --- a/packages/web/components/templates/settings/SettingsTable.tsx +++ b/packages/web/components/templates/settings/SettingsTable.tsx @@ -10,6 +10,7 @@ import { theme } from '../../tokens/stitches.config' import { SettingsLayout } from '../SettingsLayout' import { SuggestionBox } from '../../elements/SuggestionBox' import { usePersistedState } from '../../../lib/hooks/usePersistedState' +import { FeatureHelpBox } from '../../elements/FeatureHelpBox' type SettingsTableProps = { pageId: string @@ -57,9 +58,13 @@ type MoreOptionsProps = { } type SuggestionInfo = { - text: string + title: string + message: string docs: string key: string + + CTAText?: string + onClickCTA?: () => void } const MoreOptions = (props: MoreOptionsProps) => ( @@ -315,19 +320,17 @@ export const SettingsTable = (props: SettingsTableProps): JSX.Element => { }} > {props.suggestionInfo && showSuggestion && ( - - { - setShowSuggestion(false) - }} - /> - + { + setShowSuggestion(false) + }} + helpCTAText={props.suggestionInfo.CTAText} + onClickCTA={props.suggestionInfo.onClickCTA} + /> )} { onAdd() setName('') @@ -122,9 +122,19 @@ export default function Api(): JSX.Element { setAddModalOpen(true) }} suggestionInfo={{ - text: 'Create API keys to connect Omnivore to other apps such as Logseq and Obsidian or to query the API. Check out the integrations page for more info on connecting to Omnivore via the API.', + title: + 'Use API keys to Integrate Omnivore with other apps and services', + message: + 'Create API keys to connect Omnivore to other apps such as Logseq and Obsidian or to query the API. Check out the integrations page for more info on connecting to Omnivore via the API.', docs: 'https://docs.omnivore.app/integrations/api.html', key: '--settings-apikeys-show-help', + CTAText: 'Create an API Key', + onClickCTA: () => { + onAdd() + setName('') + setExpiresAt(neverExpiresDate) + setAddModalOpen(true) + }, }} > {sortedApiKeys.length > 0 ? ( @@ -168,7 +178,7 @@ export default function Api(): JSX.Element { {addModalOpen && ( { + createEmail() + }, }} > {sortedEmailAddresses.length > 0 ? ( diff --git a/packages/web/pages/settings/emails/recent.tsx b/packages/web/pages/settings/emails/recent.tsx index ce1dace90..3a77c106e 100644 --- a/packages/web/pages/settings/emails/recent.tsx +++ b/packages/web/pages/settings/emails/recent.tsx @@ -172,7 +172,10 @@ export default function RecentEmails(): JSX.Element { pageInfoLink="https://docs.omnivore.app/using/inbox.html" headerTitle="Recently Received Emails" suggestionInfo={{ - text: 'View all the original content of emails that have been recently received in your Omnivore inbox. If an email was not correctly classified as an article you can mark it as an article.', + title: + 'View original emails that have been recently received in your Omnivore inbox.', + message: + "Your 30 most recent emails are stored below. You can click on each email to view its original content or it's text content. If an email was not correctly classified as an article you can mark it as an article and it will be added to your library.", docs: 'https://docs.omnivore.app/using/inbox.html', key: '--settings-recent-emails-show-help', }} diff --git a/packages/web/pages/settings/feeds/index.tsx b/packages/web/pages/settings/feeds/index.tsx index 7abae14d2..48f1d73cd 100644 --- a/packages/web/pages/settings/feeds/index.tsx +++ b/packages/web/pages/settings/feeds/index.tsx @@ -92,14 +92,20 @@ export default function Rss(): JSX.Element { pageId={'feeds'} pageInfoLink="https://docs.omnivore.app/using/feeds.html" headerTitle="Subscribed feeds" - createTitle="Add feed" + createTitle="Add a feed" createAction={() => { router.push('/settings/feeds/add') }} suggestionInfo={{ - text: 'Add RSS and Atom feeds to your Omnivore account. When you add a new feed the last 24hrs of items, or at least one item will be added to your account.', + title: 'Add RSS and Atom feeds to your Omnivore account', + message: + 'When you add a new feed the last 24hrs of items, or at least one item will be added to your account. Feeds will be checked for updates every hour, and new items will be added to your library.', docs: 'https://docs.omnivore.app/using/feeds.html', key: '--settings-feeds-show-help', + CTAText: 'Add a feed', + onClickCTA: () => { + router.push('/settings/feeds/add') + }, }} > {subscriptions.length === 0 ? ( diff --git a/packages/web/pages/settings/labels.tsx b/packages/web/pages/settings/labels.tsx index bfbd31665..03579e8bb 100644 --- a/packages/web/pages/settings/labels.tsx +++ b/packages/web/pages/settings/labels.tsx @@ -37,6 +37,7 @@ import { ConfirmationModal } from '../../components/patterns/ConfirmationModal' import { InfoLink } from '../../components/elements/InfoLink' import { SuggestionBox } from '../../components/elements/SuggestionBox' import { usePersistedState } from '../../lib/hooks/usePersistedState' +import { FeatureHelpBox } from '../../components/elements/FeatureHelpBox' const HeaderWrapper = styled(Box, { width: '100%', @@ -277,19 +278,21 @@ export default function LabelsPage(): JSX.Element { /> ) : null} {showLabelPageHelp && ( - - { - setShowLabelPageHelp(false) - }} - /> - + { + setShowLabelPageHelp(false) + }} + helpCTAText="Create a label" + onClickCTA={() => { + resetLabelState() + handleGenerateRandomColor() + setIsCreateMode(true) + }} + /> )} - Add Label - - - + Create a label diff --git a/packages/web/pages/settings/subscriptions.tsx b/packages/web/pages/settings/subscriptions.tsx index e38924e07..b6921e563 100644 --- a/packages/web/pages/settings/subscriptions.tsx +++ b/packages/web/pages/settings/subscriptions.tsx @@ -47,7 +47,9 @@ export default function SubscriptionsPage(): JSX.Element { pageInfoLink="https://docs.omnivore.app/using/feeds.html" headerTitle="Subscriptions" suggestionInfo={{ - text: 'View and manage all your Feed and Newsletter subscriptions. You can add RSS or Atom subscriptions on the Feeds page and create emails to subscribe to newsletters', + title: 'View and manage all your Feed and Newsletter subscriptions', + message: + 'Use this page to view and manage all the Feeds (RSS & Atom) and Newsletters you have subscribed to.', docs: 'https://docs.omnivore.app/using/inbox.html', key: '--settings-recent-subscriptions-show-help', }} From bdaa07d6c231ed2429656db9eea9c5da64b0f668 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Mon, 4 Sep 2023 14:52:27 +0800 Subject: [PATCH 10/30] Add missing image --- .../public/static/images/helpful-owl@1x.png | Bin 0 -> 38016 bytes .../public/static/images/helpful-owl@2x.png | Bin 0 -> 124074 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 packages/web/public/static/images/helpful-owl@1x.png create mode 100644 packages/web/public/static/images/helpful-owl@2x.png diff --git a/packages/web/public/static/images/helpful-owl@1x.png b/packages/web/public/static/images/helpful-owl@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..70fcb792690e42dbeac5a82dd97396f1c426e4e8 GIT binary patch literal 38016 zcmV)8K*qm`P)-{=XLk0!5i$IN85$!2(2a8jy@WIvPo%N>Xg^6`3ArC^9ZxTxc9yaeCb^Dfu&|js8MW zFenyN@+3+6sCtEYX2of8FC_HQkw~79Z%LKp=u*U#K?+F^l`Pey=zK#K?L&BKp)qH9 zt*?>xQ*eqBeaAeF%GY5~LvegQxi(ccwL%?L(fk__eI z_3IIqWNG@Md_&%RK!sC}q<2|*O47Id&P zPI2l3NOzK6qg9cB@LSfMhUePICI!qoHB9u9C7i>ckY(5;Naqhd1y!sHx(Bix{Q>=I z3R(R|MUgHw>ou?$G$bnMKLSa=bR*paS|%XF19~tlkZ;oqW?+hupkNgvM97e!TrRO{ zrASl973oVVPN92PK`*t+_+9#bS+pp4Wl8#3B&x{#-IJn{1c>-O$D*SzE-7kRxneUoiT_PCX<^i=Nw1K;P5YQgnyA%^^y7+CN6nHJ zrKOSajXOws$Rs%|^wkFErWjz*st)>m6ZeGmOtVhKQg!(FJVSm(A3#odQk1Z2dQ^dw zZPrO*N$m2-`S*SqW>PDZEMf`^z0VN({@7w;PQ@v3ALq07WD5L>e74z0e4lVMCJoC^ zAy4xQbKM<=qF61Xb_~C@YgF7$#Zu>cgKlZ79#CMU|l{+{5i5zIr1?xaj{^aozr}^A#Vb!YkfbmZHbzFu;C(|MUz6ZG}CfM{^ zI#5@DDBS>)Ky!>km0FpiC}uSopHdPaw2DG?_`*DMKsFX`sfRld#)yIx zd3(L1P^F4ILvLM(_)2;teO&7L-n+&6;)zk!)Y_HGj44GJ!y24MidrPZRsJZcaSE$( zu>?{(4H4MgI7O)sAYDl6R1=sD6+{Rix+CnT zC98Dy;2f;0>cE^KIV??7%})Qk_X~^MZTC8=yS-{8N>`2 zCYy(uog6~YX=UhDvWhe}=x8Smy?8~JC1Lk~KEon}-Ocn;qyR;@6EB6f+33CT^w9|_ zDfR$D4AUu24k0T=mWSlq1hY;oO~;a5 z%_@>8*G(!k>QZ&S8z+*w!~4Bopev+e#8Lf(D?i`^eVhd&~@LlHR?QAUuhG?Li&j>Uz> zof9SL`G}-EbwRbSd0~kuOB2N+y8cX36-A!amRdV#<+IcQ2*rkrath(o@!rGX@4HuM_R z5w9XZ(#7i!iQoD7txi97cKGSIcw|+r@5eX=UA=u0qzlEASS|6C6yZDzl_Z{aFdRWL z<>W{tb@_#DlT9^t)&5rZ81ezXr_*atkgiu1rWwiOrIBPgp|%`FD#h9B_<2nDn`I7Q zsG-rQp-&t)N&tz_b*qV?DdvgN6ulH6HLBSYLai&P3xt(#r5e=oXePBaQ%wB1#QWVyIY|p`;Fz#a8_=z1h#WVHZ^id8yc-^A6UL$8gc13Mp%Mhpl$EdatiqJLP`+SBe+JS;{O zasW!wm}pd4xVFJxi&KbB#d?MlqRjb_J@uL=$pbWzp8P0w8bvvs*Ln~jQT7^8PUF8b;qVAY zP|3%>V*aj?=s^kMqrV$TW#d~y2fvIyeF-@qMqTF&Keyx*k|KR77Ly`{D1a`f7&KD5 zF9bI|eD>IM+_Mq><19bKW81rxc(Q*eq=A3(rQmW=Z# zq=A`c>~Hs?(H%rPd4Dp^+Qar0xgF$^wUX38#7m57AVv-2q{xgT;e)^tcDs>QScu$y z{g69gBnryPk(QYuKq0(X9CD}C-eI@X^{E7q{uiZ><3X%qB|jY|b<7!x3MT;{wI4YF zDjfleYDz6Q#ptvL$btokO(?)>didXR1;WyxEVIzjYn=fyXm#BTY(J}6t>{QJcM4`D^4*Zy-$KL3n;P06u?GA9PgAHLvE3W_Ry=ZG{L1T3_d@d)sS3_v8*^8Q8+Y$1GG4`BG zv2NiD z4t)P#kHcUzA|B(AI=wvMNCYciU4*FOL++44SoqMNA*+v1l5mW8qG6JFD3xPu%QePlCir8aozhZHsXO0c6OeqEymAWNdHt z2#?k|!}E~H7bK4n1=MDpjkCUWW&DH3!L$*QCTfiaFWh@4+Ui@5x@xoCp@Rn3{PEAw z8}#DXQQDW)zb~5@#KB+)Pv7=)1j$x9(lt3ffo{P;HrDN)ph%$Pug!^*JKKFR`qi$B zss=4-aChJo14v)NRGgIc>-qW1Kc#qpw7tcxRN4J#A!e99AgdD`F;X=qoPP<(0A<$4n{;06QuD9*-F*~r z)PL@=MP!_Uf_{X4)Zqrt*UbhiDcI`uJheI&CiR>cI&*Dre{_jY~bIu~_doPJmMmETHCZv&8B2(jRcp+FI>AEk=N_gBC4*Ar{qgf zaogeo7N;Qf0i+9Yr^I(7!K-Nr)sHAlk>t2b3bC-4RFOYGtJ5Cwb6wS$V=_3siU*X# zkY0$nS6&Hw?QV3mbf9?HaP%KCSTO5RKP#fw5&Zg|f8nLq-^X{an1V&G{1hcc888yl zN{NP5L9%yR+C5mdWCz|{xDl6r<0lw1egJ-Y({-3LbMoN;=iC}%{ORAg0*jyh7gSm+ zL=L@j@T$!Q9qeJB_{*SG3s06oq{MSyEKx=ITbyF<-6Zv?Slvk#vuU4INpi}B(hO0^ z7xRa3)_1>;{zHd%+cEB`lAuz@-Mh>g?9Jj8{%BH$x3RGvf?mWa?Cq_n-nbGM-F&xj z6(0>;d@ctC`p&%MN6;xAyz#bx_J$VBvNhod$N7vBA}2{ zBfH3^dG|V3xN%7zKu%q%py$3bUq6GG;ilpYvnoH;APncCVIwf>n^zq6=s6#0)%wl& z!{469qfftr$Dey0ue|*smaX25oUAnD4{_=FgYe*=t^oJSWlF|ej`WIu7|2L9;gXBSBd;I>3*TFX=U@K-BZmz{UQXs= z=St7XL3%+ccCT3i`4EtBftNodiX??y!s#Y-ZIY8~ec=zv_DfBsm!yLb~`dF&-*mz82*SyM7M4sh^@lkW64Ot1g%|BO#Q@S5 z2SHrD8Y{Y*DCs3_rYj8mTg=cy__UBQrH^(~v#FS-3}fpU)W}mFCw3$VVUiHnfLC!@mge=eZl= ztIz!ySpy64^E>ZDLreQ%F%$mI^RBs;fNK&`uFEAuuhn$^&6So}22Jww*Hq;h@+wX- zp6UY#;$0PWI(;TRXEQe}kclY@$cVPuYzgL(?AJkF!RT%fQ zy8iN}bMWG;Z;8CDBL(iHV=z5~?S2-uJ{`+{N@ClIc4Bs zu?nSYCz3=;N|IQLd~5zR{P`arVdm6v@p_Hpr0UuR3jRe=Mm9~?WJ2L6AYjxsI`PQA zKgQAzwxGr36UMwY;f4*V;-JW~8Zl$eaQxu9Gf|wIDz2yNNQe0sjK!-9R^sV@zl19; zo-5R+u0Z1b&%E*)JaOy)gUX;!#77iSMad<|ysK6t`g)O6lBGa2W(sR!H_=CbjZ=jB zRICJXwg(b!)6|?in7Fuz4AfQYwqVWXow)6m3xrXcB%zXUUJ|{yO%T8Mciz@jT`3~Q zY-?%cmO{sWEd7l@z!MB2yDXI)bpMBe3xA zazt$7_db1R70#abJKXi>H|ev{?y3|4_LslB2#o~BS6+Rub6`;C`z%G$Qc*r(GP()` ztx!V`0*zIzY?FplQh28y%*xC(;uPVnJ_(W_F7J+K&nn0%DiPawrT*7{UL^(_fx_$* zk#Lw?!S__Q;;CnsVg2?x_!>Ke^f2eAW76mneD~_aoxiRx7m?qh{s}L6eE!&6`G@Fm=J+k7wwcdk%Y%7mEwXQ zzP1v}KHY^EpZo!G)2;E2jr7l`Aq5yVvLD`B_%W`z>Y_yKrt5u)V$y||V)x3ApfPb< zp!k~%l4P9-cYU#NaT)ov>6%glIxhu|@FY$F>XRS|k`*~f+$e>Ee&h}uDb%43rwgBa zv=l%1&WuiQaKq{wZh8vme&arTx@a|`9d3~oE7NN2uW!N!3qHl1dB4YRA6$rVBEp@O zX@iR*;h&dbn=gkmlf|*#UE>GcjJ<4{t3zDq?JF6q%x<{=wQz3hh=Lv;1BDdAH!9 zPN(VA{L~2#Ub;ao%9ZKYAK(h6w0i%W%3g&L^ z@Zh}5|B7Afwj)a$BM?c@Te6T@G7^5jf^Z}jop}}_0dMEFWG~?)X(_0f z79TvMB6yCORBRm0?Of5zsSh9til`zUG9qFDVg{4dBGjml$gMkNVt*L*TDT};eEIc{ zA><09Ic$PjXGC*IgZmzP8V^176znlg=gQ4Yrip~m-qL}aZ+ihLIyJ(HG>zjSpD%#S z468_oXD7k^|9T(6HaF~w6@zA+i@`I`hfhcG6KD{N1n~abuj9qXAI7i#?@-z>=J2bm5U__8SC*4 zG39D3K(D7hfFM3RCmgW2RFdrHY*>vpUQW8Zwh6<^bA>zgC%=3iZ~`~~q5}VU?nPwe z4@5RC@Hby`6>j*}m1G!)yG5OaJrfOM<&v#fx_s+lWw}Qs&d4Q6!BU5vy^U=yy!PK! zFy!{bk`=4)*y9v9eC#nSUAYEndF3LpP#^dcF39u8EnF^SJ)~{HO4^BY5bs{~#qbRRE1&W{U;? zdhx$#^sylwh5O#1tk{C0d+`;9HPXqSl562gghQ8?Y+sE+Gt z!lZAz>_KQ~b=|UjCroMuufFoC*q525zP1*X zo7R(F9y;c6SsG>2N^3TojyspiWH6weJWZ|S6sRH>a)Voey~BPOz}#*(9G*71h5$~K z=)0n_zC$=3T;3pR?M{^EWgZp8ygj?9hyW7noGit5h+5q>nK7QZY}Kj6_!4?&PDP&t zIdw=;xVAx-+KE~CL9^1ducj3tT3K}wFaCMYFLCX6uEA|Ty$Ki0JB##vuTXD}MKXDn zQp(Fk^!a#WAY7Lo_9>{Z?-1KE4de{?!|%H1SJBT0@Ba(5@(D_guIHjxW1}4hs#@T3 z023#VIi{4e*sM^CvCvZIHK|ePUdm~{22ZRy+dBm6~DJ@F$u{}O* zgR2sAX|>*4)fyips`lZNcV5BeHMO|mhd&Sv8y+QNeb2g2VK`2^Wr!5k<7^&HLO%H`4=TMMY%QP9U3!oXgAe`fA?^ITv;~OD~9=6~9)}?3)sJ<{rNF&D? zXH0_G7*AK1RdS-S1L^1ljyK+0dRQ%n_#Ew61lmO1Jm81(E#a2>w)x*1z%8 z2N*tb0H#kGb6g4_$B4S^m*^(n`Dda~M$f7j3n^LYk6uitwTe|ikMi9@;{~KnjTxG5 zmM6|Uvs3lq*8s8|Mvfhc_C4Dv-r+m3gA=2)xk9+~0=I3Y4M z#fq}h65M?IpYZoT-i|}Pp$yQwes(?PU9=q8dIi!+v2)1=p#|X2ci)nb0-t{l9_7}x zzfS@W2i?OWej`E0-YsEtNqIbC0=={?&}m&TwS-=UDcXm8VRiAX*UgdpkD1zyMHnnI zri{hEU-8Y4DTmy?| zGpfj4+!3^5=)lr$#}H}v6npVSV%V{BKjdiWe=fPjA>S>mG2=?Q#&4c?=5c+7&%a~& zXXIXX91Ivr@$t}I0m6+PcyysX5LQTyR3T3BUl6J5N2(3~`46r_ZdNwgGg?6Ta`=m{F|09S!t^Ql z+4rwJp+c@0xBKa~rF+@1l<365?YelV4xP&E%+A)Mm(uAB5OT4EuW$sT^1KP9Qb0L6 z1CAOx5U)M|AoR9ucq1w@ybX{=#;hWkO{m)RH*fcbG{_n>9QWLNEB^G?f8nFY=Ay(I zM6}ioB~gXPFVP`A6eD-B6$OeDyY^NccHU%M;koDk4qHY(0xHA*C`A;g2xtLGkGU6~ zhrj;z=Qz*-(<7 zgEwD)9C!cv=dczJgwqp6Ta+T+Bw6?;|D9So7=QWOZ}H+2f5M;t{xm9nFahaq@_G6r z-867!$d}jEI}&|w$J1}{bT7c6)LmtOfzbdV{e(HTxqn#40jb9(cFbLZfq^XC#Eyl88)!|M;gM3L`|j8xdnCXu4j zVRvBj+SPdCmP-)b(Q#Nu5?-~>9+CyMI&OLoD#^fqR_zg@h3y<3HNCI07K6+CB_s~} z!xa4D$JgMpi_XG5_dkh^pDhzQOsdr&_F)%oEEY}l;F3kmf?M{)D5%-yjzXJa!D=}^zt77V-MgVsAYcK*|4(?QUX1c?RxQm<`neOdy9yei7XLTOyYACc!y z%$7VZCvpvj&s~(048=OTnV8I67;n19Y|b_3JXMw%bMxly7&9sd#y}L2qfD2zB#NQ< zkR}Atv1>o|Mb}Y)v#=jrD3vG5MKK^7m7A;+e+R7Su zsw&~+q0A&HcyMU8Q3q>jDF*i|#3dJ>MX{J6qPbl(_QiOW&&{1oLc!=^Ztt%5O?*=& z4w=L^kEqQ$5~FVPMmjA4QbDgp3P!dEV;E4J1z&3otmzpiw5oP?2O);6IZ%b-{{67% zsmC$ytn=~YAODGQGcpmg2XMIfKqBrJ7grtvMKt8c%mF4m_2OIj>5bo_Afg`|mwkxV z#%sigH>MEj{<=g>I|DS;YQ{G&o`=gXJy$f94g`b3o5aN!vRWQhYS@|K63c^E)3>0~J#a_v^)yU0&i=h+_#!k&0fL_I~;T zL{=;&gDh&Pxs)Ol2#68M+y(J?4dAV-mSXv<&!N6@E4D3NM8{D>Z8VExq}ud|@iZn* zY9yP&O?F9pLjyV*>fvr{Ly*A8>JvWz7A8imjQh_ozz=?M8&-d|4thm~%k9Iz@4OkG zEqogd2Ug(eJAMwA!zqLk+d9bv!J~C}|FS?4cLPhJ48ZGfiRoC~-s@(w$E8OoDmIFQ z;ra1+TdxGjX&p(IMCWxtXG+EP6-&{uaVN^gPK1H%k)u<5$!w(6|AYTL29@DZkCG%- zRWY}NR(BUk2(Qb9eQg1Je87uZdr&Zto`6}BszIhnEo!+v5+I{`^_X6}) zxn8C#MMN{Yt{;ehCK%sNVUbuZ2qC?-KK-->NKBDDk#Jbzv=1FI`Q9z7$hZx{-qM29 z^fX%aBjlg#etUS;W?Mi_F^|{&^n0juro*Pg#$y1yFGZ4@ny_TA9sgY30yn8~TJm{b zFgyzejVwkf*EmDi*c1?{C!E~ZKiz;8m2J5DtZdx#VRPKj<&kJ2_ezPMORXiT^)h&t zx}vCvd24X-4}L0gyiOKKoE;r-2Wp{~Qqj%fARQcskff**_h1Dg3E(L5R<8N)t^FHL zTNR7U$2wO~Qn-VcUVJFmA*BsW+dCRKRFdB_m_~b*}1?7mNlSLyQ z+Sk?GfWLlRhrcXs#7n#$v0zIfmX0ynvo@o zUS#^lLv4p$xLCy{0*b6rp>Ee!JbTYC2)N@%n5=9^FQ(HHAQcd5z)lJmDD5skF}*%MPK}tLdh!p^-)?jrtIX14^;^&3 zwSWB))tfdR!%k6SyYW%o#Oaao&In-wJmU9uPZ%$(?!aB+rUSkd z%&?5cYunm!>lt})1R`Ott*!!=<=d&53Qy;%~6ld{5g`OL#j@PbBE`~=ZYuZi;oph!550+zZ;wI@Z2+C z(r9th*fCgE-++-6JRDbSMrC`5BuPA#<#>o!c7HfXAh}hjfd4BCT+xds;GUKM;q+^7ig%}8uWnwkw^gKg zSjk12WGiy|qJ@HQ!k?dTlWth_HW}pR!`gZtiOf1R#ulf=4fQU>jBC`Y(BcjuMNUPg z!H7(w0iQM1;l<`X`0G`J5eG~7OCSi~Sq9MHa$2&U#5~SG3iJB$+*;?UG4cNhz}Mjm zqlQ$XImJ9LM8Ze)RruAam3ZmSGoWs=gQt`qX!Rr8YB*ueVkUOBwPNAFpAgb&_lAww z{K>MAQ0m%sc7%vl*I9Wvy|*GS*BYR_JwP8OB*M?-BLYIkjc+K@tE z<@Em85$&zO5n8Eo4q1y&G}h)1e0Y9?dv8TART2N8*jC4S-y5r6cB_4T;_7n5P6;Nilh)u`(TKu50L^CuVJ%z+tD)p=;; zZ$rrI!%yF;MY`F5vMdY!7h;#SkO*2M84F>2@4mmoY&IWe_%kqGy1#;=`$5e8?oaUM zUw?;S_{bi*uEgC?y4pHyoIAWh>}>aooJ&PgW}H*wUs2J^0diVb6kb~e>@ll@Ee`+r zgZgDjg}G^{uWLSpiH_)OJt0ansPQ@h<7Z>?amK(*TresJ=MpeVd1j9zhyVeDQ%<%v z`SHR=J7x~Z?AEdHix9_7xF?rLbtg&EbYKUDPd%ek8gQJ4zh`qpBR+fiDTIPCY<%ZU zC|b?u+F5~MgfMr|CgDr<1xR&t1=+nDBRRZiUakMn6}=oBOs93zh6-W@gWC5@hE==w znfErv%q9cUGg1yuF#I3w%={E1{G@t3_!b$wEp~+3yohoU6|L-UyB#i)9&O$TZhN;L z=M2phHQiq(akuxH&0EpZ*d$hcwl{Wd+9WcM7ytVo&{#5fFKAONp9>DY6TU!qTP#8` zk9L2U+|yA-mKASU7Gu~>2|DeEcvd+O%{6NFxB{W8H5!dHc1RKGYnuS+%VSbzs^WAb z7Hn=oYr7l$j3Gq4Zund-_$hX=ywZbP-l@lw(o__tn{hHorBw@8cE2GbuyNT3SpCXd zsIA(8hCRDaC<5;%aD)#D4!Q~adphE(75(?i;z@xI9@^3Sr3ce#ZG$AKf+XqUV$vzkAm*J>mX36b9#Bq_SCoPh z2BQ(<&bnQ9-mNbN zM2FkoZICI`mPQvG{s_1E+8NU5rmjC==l1WX3_$wkq{m5VvQ}NH`jTruXB=$$ORwR6je!cR@eC( zaSDQisV4(Oo>pWlk!0lqjav8pjvA@D-WAz_lS~Z4oU(AO+N1usy487&+Z&N54lkD4 z+8jq5aCs^dr?R^|@!>rD%{fhG3uhz81Mp5l#1$nqzWu$mYvS?HR|1dxqk7#}; zN0kxH?x4JBe;Z~`Du=Vfb=pXhP#18pO0|b#H~ZSXV*Ip5t(96Ge!WGny1{AHjNWgR z*G_gtohNB`MgYrB11!nJj^gnJMedoM)}l=f?5PSP%cRA;(M7m& z-dM~UTPoGGddQLCDl-^0H#kh{*yMTP6(oUsWs~Zo(aBy8<%wl!W+@ohu0WG3A)ILD zCpAfuvN{%vehNii9*(7MEp2EBasuI!S&)5ujn}C)>WA_MjhCN&`Vr9(jpu1R{mk=t z>fuLYsU|6`L_&A0sP#XPIM0`%|H@PPn=@je*dl*a8aZxAk?QK%!?1YqDlRRDCltlX z{T-M*rVM3PZhaHPsU}RAt370Ia2g56Z1%Kz(MrJ~9;r4k%M6=AEh-?n*+gk+9!8BQ zLtUE-|9XA3;`Ia+tsGmeis6df27mnm^v;P=htf%Z#8Zk4_bNfv&jZ=RRl1h-P&9fd zk|rjFB*>9~qUaTg6dE@%+eRfCTtUn84z*7Ac-WGwf9H)CC6it!7}4SOqNBY7?Jdo? z^^SWKbTlcl6#7st| z1A1!)jCwVOStH1>nP_|Tln5sA*lRC=A;`l$JAA08U?z`sF1G4m(#WtFwPM^_k}M`Y z^m+{j3@AosW-4Au zKjRltIISGk+O5R!I;nm7O;X38vt?*)lH`}QQlPb1ipHi(YUvwx4>V6b`-GI6m66c- zDQ=+CqN=t52AvvL&i{r~)9#e^?yu~pm2vexi)LG$D|`T7fGP+a!4k^=NXjR!pi*-2 z%n|ar<4du2%{G!+2dnd%+#wuj3*x5lUy5&EHWzk9i+y_=pbomAGw4OT&)&!jTomRH zM&TfPV|R;J*cxVv?5jlMY#_%RpYP5kz+H31Oh(==p{2PUZjTRVjvs*X!gT4=ZH)%K z3Rkz3be@F(idP^!dWs-<~&4o-v{T>(*`;5#z4D|6Q#@GJdB?*7M7y^h=}r_5CU#)J*p8sag*Ju893r^rKfm7rNs3BZkG$SRTR%q z^k{JUkYmxJJkx|svNc*fK_NZU4e|0~4rnGNh{yoYX#{|H0Sl12Szq6RvXUIknb2SQ zWJ^7*H<397R!#Qgv%~N8X1nC10;Jvq?8TBA1i((^xQ)|MqK$eZ1_<8{*U)#+LVbX?pKU+=FO3o zuh>W{pnoEw(uI30`j4i}3pqY7X2Rg8U1^+4;8^JM!}jCLr^+Krvq*Am7wS}4wDXJz z_0AcHpsFo^>2oGy+=z0-Tkyp5n7CB8sI(X*Lxv!Kzz~u1nU`#c` zPaZIpo>M$nHBWvo1;;yQkekvSFUSttH{O2-(V!a|wR;_G_lgMVYp^ZlTpsKZ_{r79&m8v$DJ<*tKtq_{K?a|`KD z20$zvMhY>1(C6c^w1@=UP!Tf^n=%_CW}k;qXU@gwY17ev@L;5-n1$-f_c=8y3)@z# z5q*8d_YX(W<_!}-v_eww8FiXCyClaZXtmv|9(h|wy8|Ht)&*ybM4jC$*S5M#qiW6U zeksORYn;IldKpN*sz9Ms>k2O^vPl$e3!j}yAZaU|B(;=JMJ9p7RQDmG=>yR+>;j~; z?!oT$%MgGX6UU7@!jXXT@=`qX?-wwre=)7#@yfd~BZpz^qzTgd%Qt8=k>L3hGZ~U+ zHGF)7I}}`kZX@+%tJ`!l@!vyUXyxC3Z)Arp_mq7J-rOj&`*s{2aQHUjIR+zN?d25(Q05an?zq-rYr);nAvktI&Lb| zWb|qX1mn*=2h%S57TRm~!r9h{kjsszpX{C(sdGjHvhoTr`s{Du?C<^n6VE;$_7(@) z8}}mY@*qm~5jVZ&GzxIcC?6J6~ zH#r_47z*KczxxxmY}^<%tD|*_68_fN)qc^#rh-#R3XQ)bBjQ&yjlxtK{yo;z-T z%HT>ippJJ}SBbVhZjYA$5GA0gVI&}Fwc2jS>)M;Q>$W3Z3scq3jfj%uX>aYon~yv! z8t8F{#N}0Xq>;z2(5e&rnn{|lY8C%1kZLm?v$)Ghp02TD2IKV=d$4%buBcIk9pRYj z%=HcK4)l`Ll&>_^q^b(B$#cV--1VwPs6ywb@7;vf^68SJWHi|%Yhd2D2HyUYVJE{q zbI%$qdG~dUn>H1>Ia%F~!w=g+t8-OT3wG|_gOS4qcW!4Unlt+h7*o>aRjW2z>G^(l zuUUmMS9n>l!1xI9{QuKw4e}qZpDoFxr?cdUB^os_v2o6st4tp9?i{cOFk;j&Tzc_b zWEcML6OFqzqf7p+BQTHItWX_M|~%9;)PBwe1-?IX15(#rRThQMbMp7hGJD7=9ds?t!S1 zj_vb)CD|PHC|-F#Vp1L|FTMwAQXfhe{sw-V7H_}$EYeb}hdq3^*N1r*Tu#Bmzrt!Y zA7ZZnjRc@uZn;B=bTr3EwQC}F$jQq{QT_DFX`)r%obsionIsvQB?{+xF+NWi9Z%^VMkH3U>-~SXDt z+KHgsi8M00i%7j2K57)cG5?$R{*BjT+kslRni|p2+=76jqU#)r|Alw}sjIz3*fV># zZsn*4vFszRqM={_%a?tIzdrI5)IJBwb4(ahXzMl{jcpKz z%h&mtHROJCMU8mpttUv=wtnH&IjR3A0l~q}k3U+DWgE7mYU?g|X&(!%+%C0N*a7+3 zxhNbo5aWgp#MBv6P*hkT)JZiLI!W<myx#w3nd+v1n zFH}QPBUoq~xoSCgNucluH70j~Z2w=rYV7@R024RLhA5Y`HKl~lf zzVaUSZrp^rRtHqk2#N*`#;mz#;b%Ah7(f5{O}PI0@8BC3%)_{Gqmh}BPAjzbVALdO zQ_yi=dGRHD@7ix8t)Kv#Hf_R(%huwov!)@%Vm>CAlYl*veWFrpge{^sTd;4-CVEc= zAGv!S0dgJdHKNb3l8_on;)TVa*BsAnA=NdC4vGhzH+>lP)U?VjkAGyLO`}Y9g+JTT zLjlqg(g5VKd6qP-D!M8bQTo+Py+wA~@-gh)d&Lals*8UQITj^*J0Ig+vLmXt?cm5AeH98kk_W1I$S{l}qyOA< z&&I&={;)7ZBi3Gh?``mW>uko{={!mDiho5)`ix)10mR#O%zw}QLtUKCqLIJ;! z60G)wIS`nW+j&fJFSl=i0INV$ztir(hNYjPdiQQI$7Efd1KCCm^2}Pn#cYQpYhxH^ zRP5UGECFpodY9s3=@Q&wcXTklkLb zu9MZ_i)>B%q{^Y^!x&U3h`52GyJoZwJOj3dZCJH@38@lukd|ue#!%ck=i!I`jc?As znBoUVUiF1blLC7@MAK%q;G8+LP}63|?#f!>(o~bgs&$1>GJGVy|LselHyXN0D*jwB z5TIk|g!;tZuGQ?#RK;}jFl_bp^e;{TB8wTrq9G(zxo+|`OBZ-@=Gto0Fo94 zy{_|EA}8vL*fk>76BeW0@^W%ISN>UZX5y7apTJ9uf1q+drcD|PwKje}?xI+;dkcX( z?tu9Bf)DZJW3OS&wn|JGStdYZvZjjYJkg=OTIt-9Ox^P}9X%_M*kej=Id|#?cX;bQ zo2o$V^N!TUv~u;ZvyfG@8piq!@b#MpZ_!v3SAB#PYd2&5<(CL%Nis-2>Ecg3`XA)y zreOeie2zvUNJp;_MUVOS$rHyQD=iDFHtnLgM+i=D5D!0CL9qc%=Zx|Ifx_!{i*W*0 zGT1waX&!y%Rorp=pYY~eABjj z_1ln8rIJp7S>(xE@Xm**-oGE}SQrBb^n=!5grl_)eveZ~$o~*HK3Te&qUQkwyj<@Q z#HhjjXrE?ibViW{;I_Am-n`cIEbQB~8fNlv)j0#;xtwVRjkw=ky;)4G>gi6P;Wl5h z-A;C3P8xDEQ>C?gnk*_s8CmBFKaU=i0o ze*$Ck0kjO62TdRf*Z$>XYvf|^kb&ZJe6x9s+PZDKD1yEf=bu0CnCDTG`Vk3+#PCaA zs|t$?$W1&2Yu0ZeDG|WNZTm5E8m+*@bPSGIqL1x9k~9?$JcS4U{0~w;cA<^bz4GBB za5LEgcURnj%f4|Q3iEQiwetC2L2;xk0-oC;CqR)r2fs`txrPlY$H(t1#)hr?F}Qyg zQd4a3c}NQQeeie#c;F%8KeEFrZa51cZmdFeWevuS9!$;-9Z8=Km~5#89FLGX2BRL$ z_4SC6t=J9SV9T+#Vl#U;kTUuPD1y*fniaWfb zrx@)$t!aZ&-{BACThwbLjpn=7hMiK)(DNiifK;veb&yP{Xdg5ic?VYDQ}Wzgb>%lj zuqr7<*yZ@QM;^x|7oI1W<*3Z5K+HvFl_|Lo$5iIbITOB^L>{x1c$7-TeCFdRh#vHRhM2@xg@o8Y3bOubqhXPy%jS?mqH;GiPKoN?yAI^ zRa;P;s=?$D{g9tw#^%aa+I~RfnTgq_5*b;R)Jz=Mx}GGe4$WkXuqVr;Q5~jc z@pZDwsn;F9Et32oN88VxJ{(K8))4q&Gh7z+qFPtD5j}uFQY%-&u>N^m`_mucN7r2~9;|q{9xrB1osP?{x(46-&XxGQ zQDn~cwodO+lEmPd-Fxx(hn^G@Z!@zq;BtDz%)R`)d|dVID{&!73KO}P`Lmw~hC>H| zcIIIb!*kZFmq2PKuTe{DD;nw=P_<_ts@ff5yN8(C$DQBF0T3h4lSIEq{iNzdoW#80 zc;`@+2^U`T9b9+K72RC75B&2nEco#Fnt_8zOb1-G{ zFg)Dwy5wdh$!yeha|0h2 zaq5u8h=S5W-1+F@m{}_w&{<8Rmuzq4Fwxg4NqX!69i7Ge+ko5m&5WJz6t|U(lN-i; z3kAy`K<@fiP&bKI?cMLUb;EjqyhWdPZ;$jYugDE` zWK)Dg$VfGkN6UjjWVGLM)Auoc>?o1?om{z(l>nHGgYbTAGqkj}Vc-5rtXj1imG!M? zY#_U!_5d2WIYP_}g}`E?g2q@;Pep z+KbPjAE|a{%%0Kt9e(nS3>9W4#jc=-86xPJa@0$f}=mrlej zkA8%88@9o0GUBpxrgQ@d|2}lmRIGgGO=MF*vX){*JcE!U>jAoEtwz^v5#U5m^&!=V zpG)+4UW7ay4qSZZ2>Hz=+e+c`-9zvE9A7g)da49rlExR9&Q{5)h5nSG^44iT!iZ1* z0e$mM)Li&i7#uY)fA%+A^`rlXn|^R@r>peAhn~Q{|MC~S^6r~rV9e2U;xNS|T=tH* zdPe`T0lRM920ZiJbE0v9(;vpz$y0F0E&mUL2A0L$yTZsChzM;W|j#NC?B;yBA)?gNGk^00sHEohoO5)UfZ|a1+9=He7V>4764^Va=A! z7@lK62E~5TQj8coZiuKU`Q?+JAV#j&v15kg+Dp%j*K&0^(fcpFOs;H}A{{VlWR!Dc zozBrUCXyunJH=weiJD&w>`|i!;lbC}DqgpTOuy)~)%E^0_!{%IdNM#nz4&{D#@C6v z&a0aF3ssO-)q#tDjZnsL960M%40`u&_~^eSAG}Wba6H{%&%OhgJ@Xv=;~#&&ogHEPDSV ztl6*y2R3biD`1D2Jzg29h^6Ggr_Y4T(jVTGA_Pt82x^T8s?>t{WjdBR7J-IbuX@vV03lQVp{_3IJA*Ca`LDnP`tSwa82U8w7)kxiS!>Kxe2mosO zNkGt(1R)(?Q8A+uD5HKztR)3v1fqxl6DYQ}ea8PoZvA=`Zg>_MMg8%&hwkrmfitaL zwF-CNaSu#t0wJkJW}OOS@@>LZYbGYMe5v>j{*45gPZcwAhs*l&Ra5HW)&b4Z}+dWHuPE>-@dwOz=98bhOjUw&4oe?Zu zy*s9sWB*q;+5fMvE6Uyz0m8tL7UdfzD3Uxwl9Xb4f)^m9DrlJW1Idw5h9Qe95HS^^ z@|@c-;LV>yLs9TWi{BEf4|{a3xbixP3`- zhBn;&yWe2Sr19Nsi>`@=Z5?(jdiy=R@xdq9w|*n!kb@%7nFx}4)Sfy7&Ya=!n$i%a z72ZUEF*zDwtyxDu?Gz%3lB-yUkR=6y+;Rj+l0=ND1PC(p84Ps%&XPw~Z4!S;M_DwJ zN>+@nEobXu#DZ=d7&Zr`Ti%Cp{|A_T!P&TpY>>_yO8dR^>RWj6>8GKKdc={Z_DdC= zOVVtn#NtkI482yg@v#RY_}6ReVR!p5c1S6%`}PGQs8@HO8f)KQg!N5+1Sp_5INc}` z89B?Bd-ihe2$z}h%R?$^3yI@UqC%6a67$SzjL5elJH>cR=LRoMgNF3SZ(m*$vq<3% zS|J8}R^xQyYf!a%l$)1%F|{qp{d*y7?36-rFRtS~9iQp?=^T7|D}k ztY3j(?kHMiQ{db4DTa+1gW{qBapT!jvvu8CTy)8Wv|?$*ws1HM4>49mg{h!H3 zSO<{4fBlbtgg^iJcPJ{%6W5SbO&Dk#v0l1tIqv-3U+}>1evh>)mmwDLlPWU=9pkS? z_0UUEQ#2J3a}Lb*8srm$79LoJwA!6QBKi7Hg=5HUw3p99$AGDD7mY?BmB3-Jl7!Hb zip3rvo(Zc6Rf}Izg8h%RawXsA{e9W}k-6s+V$>+==zLl2dvIXeYGQUH22o5T$%w;; z3_^8%3+l-xQb=MM)M{9C@$`~pz8Slbn;J>=Bq@C9?BUQ5U{-J3gT-rhVbq`!k}!Fw z+_euOas#(}L-6tFwO|yD?hvXv$o6ta#Idv~DHu&&vh$}6#QBrTFneSX#!*bhK(@=a zIy;&jKI9Tej+Q3R!AeJmlLDAU(yE>Hq{%6fdUyB}d=1o-B#1Pv$d(dCcn1ZYGKG!@N)Bdr(_vL9@ocBJiJ30r#=H^PHAe=yu76NHTsp<}3&cnNP( z3MeP(R*U14lLX@6enrLZ~pLW3>z^*l

7;XnA^4=EtnLf03> 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 Ye}7TbccFe{&j0`b07*qoM6N<$f`MdbUH||9 literal 0 HcmV?d00001 diff --git a/packages/web/public/static/images/helpful-owl@2x.png b/packages/web/public/static/images/helpful-owl@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..98692a53ae33a52b42267c33882ea858befbcfd5 GIT binary patch literal 124074 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

=`P#rngjq-{TT)MCg`}Q8j^PORo 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 Z@_+aLpD;hb-(>&*002ovPDHLkV1gOd(lr18 literal 0 HcmV?d00001 From a886876b4e25468a196300e0ad0edd77d7b34364 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Mon, 4 Sep 2023 14:57:57 +0800 Subject: [PATCH 11/30] Make the help boxes nicer on small screens --- .../web/components/elements/FeatureHelpBox.tsx | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/packages/web/components/elements/FeatureHelpBox.tsx b/packages/web/components/elements/FeatureHelpBox.tsx index 603c829e5..b9df39da2 100644 --- a/packages/web/components/elements/FeatureHelpBox.tsx +++ b/packages/web/components/elements/FeatureHelpBox.tsx @@ -35,16 +35,18 @@ export const FeatureHelpBox = (props: FeatureHelpBoxProps) => { color: '$grayText', px: '20px', py: '20px', - justifyContent: 'flex-start', - '@smDown': { - flexDirection: 'column', - alignItems: 'center', - width: '100%', - }, }} + alignment="start" + distribution="start" > - + @@ -92,6 +94,7 @@ const HelpSection = (props: FeatureHelpBoxProps) => { event.preventDefault() } }} + css={{ '@smDown': { display: 'none' } }} > {props.helpCTAText} From 38891567f325f793339e8db5fcb610474e61ec68 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Mon, 4 Sep 2023 15:11:54 +0800 Subject: [PATCH 12/30] Make help boxes client side so they dont flicker because they are disabled client side --- packages/web/components/elements/FeatureHelpBox.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/web/components/elements/FeatureHelpBox.tsx b/packages/web/components/elements/FeatureHelpBox.tsx index b9df39da2..bb292aeac 100644 --- a/packages/web/components/elements/FeatureHelpBox.tsx +++ b/packages/web/components/elements/FeatureHelpBox.tsx @@ -1,5 +1,6 @@ +'use client' + import { HStack, SpanBox, VStack } from './LayoutPrimitives' -import { ArrowRightIcon } from './icons/ArrowRightIcon' import { theme } from '../tokens/stitches.config' import { Button } from './Button' import { CloseIcon } from './icons/CloseIcon' From afaf6f29455ba50e003bb68ff792ce9774c56b69 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Mon, 4 Sep 2023 15:18:23 +0800 Subject: [PATCH 13/30] Remove some debug lines --- packages/web/components/patterns/ArticleNotes.tsx | 1 - packages/web/components/templates/ErrorLayout.tsx | 1 - packages/web/lib/hooks/useReaderSettings.tsx | 1 - .../networking/mutations/addPopularReadMutation.ts | 3 --- .../lib/networking/mutations/bulkActionMutation.ts | 3 --- .../mutations/createNewsletterEmailMutation.ts | 11 +++++++---- .../networking/mutations/createReminderMutation.ts | 8 ++++---- .../lib/networking/mutations/deleteAccountMutation.ts | 2 -- .../lib/networking/mutations/deleteRuleMutation.ts | 1 - .../mutations/importFromIntegrationMutation.ts | 1 - .../web/lib/networking/mutations/joinGroupMutation.ts | 3 --- .../networking/mutations/markEmailAsItemMutation.ts | 1 - .../lib/networking/mutations/setLabelsForHighlight.ts | 8 -------- .../lib/networking/mutations/updateLabelMutation.ts | 6 ++---- .../networking/mutations/uploadImportFileMutation.ts | 2 -- .../queries/useGetArticleOriginalHtmlQuery.tsx | 2 -- .../networking/queries/useGetIntegrationsQuery.tsx | 2 -- .../lib/networking/queries/useGetWebhooksQuery.tsx | 2 -- packages/web/pages/settings/api.tsx | 1 - 19 files changed, 13 insertions(+), 46 deletions(-) diff --git a/packages/web/components/patterns/ArticleNotes.tsx b/packages/web/components/patterns/ArticleNotes.tsx index 438e834ff..a4a786b99 100644 --- a/packages/web/components/patterns/ArticleNotes.tsx +++ b/packages/web/components/patterns/ArticleNotes.tsx @@ -25,7 +25,6 @@ MdEditor.use(Plugins.TabInsert, { tabMapValue: 1, // note that 1 means a '\t' instead of ' '. }) -console.log() MdEditor.use(Counter) type NoteSectionProps = { diff --git a/packages/web/components/templates/ErrorLayout.tsx b/packages/web/components/templates/ErrorLayout.tsx index b0837c883..b3370b928 100644 --- a/packages/web/components/templates/ErrorLayout.tsx +++ b/packages/web/components/templates/ErrorLayout.tsx @@ -13,7 +13,6 @@ type ErrorLayoutProps = { export function ErrorLayout(props: ErrorLayoutProps): JSX.Element { const { viewerData } = useGetViewerQuery() - console.log(viewerData?.me) return ( diff --git a/packages/web/lib/hooks/useReaderSettings.tsx b/packages/web/lib/hooks/useReaderSettings.tsx index 6c7c278d3..9a77c4042 100644 --- a/packages/web/lib/hooks/useReaderSettings.tsx +++ b/packages/web/lib/hooks/useReaderSettings.tsx @@ -99,7 +99,6 @@ export const useReaderSettings = (): ReaderSettings => { break case 'setMarginWidth': { const value = Number(arg) - console.log('setMarginWidth: ', value) if (value >= 200 && value <= 560) { setMarginWidth(value) } diff --git a/packages/web/lib/networking/mutations/addPopularReadMutation.ts b/packages/web/lib/networking/mutations/addPopularReadMutation.ts index 2ab326d3b..c8914e7b5 100644 --- a/packages/web/lib/networking/mutations/addPopularReadMutation.ts +++ b/packages/web/lib/networking/mutations/addPopularReadMutation.ts @@ -26,11 +26,8 @@ export async function addPopularReadMutation( } ` - console.log('addPopularReadMutation', mutation) - try { const response = await gqlFetcher(mutation, { readName }) - console.log('response', response) const data = response as AddPopularReadResponse | undefined return data?.addPopularRead?.pageId } catch (error) { diff --git a/packages/web/lib/networking/mutations/bulkActionMutation.ts b/packages/web/lib/networking/mutations/bulkActionMutation.ts index c1070ccec..71d02a281 100644 --- a/packages/web/lib/networking/mutations/bulkActionMutation.ts +++ b/packages/web/lib/networking/mutations/bulkActionMutation.ts @@ -45,8 +45,6 @@ export async function bulkActionMutation( } ` - console.log('bulkActionbulkActionMutation', mutation) - try { const response = await gqlFetcher(mutation, { action, @@ -54,7 +52,6 @@ export async function bulkActionMutation( labelIds, expectedCount, }) - console.log('response', response) const data = response as BulkActionResponse | undefined return data?.bulkAction?.success ?? false } catch (error) { diff --git a/packages/web/lib/networking/mutations/createNewsletterEmailMutation.ts b/packages/web/lib/networking/mutations/createNewsletterEmailMutation.ts index e56d58427..ba7d46ab6 100644 --- a/packages/web/lib/networking/mutations/createNewsletterEmailMutation.ts +++ b/packages/web/lib/networking/mutations/createNewsletterEmailMutation.ts @@ -11,7 +11,9 @@ type CreateNewsletterEmail = { newsletterEmail: NewsletterEmail } -export async function createNewsletterEmailMutation(): Promise { +export async function createNewsletterEmailMutation(): Promise< + string | undefined +> { const mutation = gql` mutation createNewsletterEmailMutation { createNewsletterEmail { @@ -29,9 +31,10 @@ export async function createNewsletterEmailMutation(): Promise { + sendNotification: boolean +): Promise { const mutation = gql` mutation createReminderMutation($input: CreateReminderInput!) { createReminder(input: $input) { @@ -35,13 +36,12 @@ export async function createReminderMutation( reminderType, archiveUntil, sendNotification, - scheduledAt: new Date() + scheduledAt: new Date(), } const data = await gqlFetcher(mutation, { input }) - console.log('created reminder', data) return 'data' } catch (error) { console.log('createReminder error', error) return undefined } -} \ No newline at end of file +} diff --git a/packages/web/lib/networking/mutations/deleteAccountMutation.ts b/packages/web/lib/networking/mutations/deleteAccountMutation.ts index 15c6a6f6e..d65c3f4f7 100644 --- a/packages/web/lib/networking/mutations/deleteAccountMutation.ts +++ b/packages/web/lib/networking/mutations/deleteAccountMutation.ts @@ -26,8 +26,6 @@ export async function deleteAccountMutation( } ` - console.log('deleteAccountMutation', mutation) - try { const response = await gqlFetcher(mutation, { userId }) console.log('response', response) diff --git a/packages/web/lib/networking/mutations/deleteRuleMutation.ts b/packages/web/lib/networking/mutations/deleteRuleMutation.ts index 0e36bad2a..b41e4cc5b 100644 --- a/packages/web/lib/networking/mutations/deleteRuleMutation.ts +++ b/packages/web/lib/networking/mutations/deleteRuleMutation.ts @@ -35,7 +35,6 @@ export async function deleteRuleMutation(id: string): Promise { const data = (await gqlFetcher(mutation, { id })) as DeleteRuleResult const output = data as any const error = data.deleteRule?.errorCodes?.find(() => true) - console.log('DATA: ', output.deleteRule) if (error) { throw error } diff --git a/packages/web/lib/networking/mutations/importFromIntegrationMutation.ts b/packages/web/lib/networking/mutations/importFromIntegrationMutation.ts index e74b5429b..0d14dba25 100644 --- a/packages/web/lib/networking/mutations/importFromIntegrationMutation.ts +++ b/packages/web/lib/networking/mutations/importFromIntegrationMutation.ts @@ -25,7 +25,6 @@ export async function importFromIntegrationMutation( }` const data = await gqlFetcher(mutation, { integrationId }) - console.log('integrationId: ', data) const output = data as ImportFromIntegrationDataResponseData | undefined const error = output?.importFromIntegration?.errorCodes?.find(() => true) console.log('error: ', error) diff --git a/packages/web/lib/networking/mutations/joinGroupMutation.ts b/packages/web/lib/networking/mutations/joinGroupMutation.ts index 86c7b9000..30d18be36 100644 --- a/packages/web/lib/networking/mutations/joinGroupMutation.ts +++ b/packages/web/lib/networking/mutations/joinGroupMutation.ts @@ -38,10 +38,7 @@ export async function joinGroupMutation( } ` - console.log('JoinGroupMutation', mutation) - const response = await gqlFetcher(mutation, { inviteCode }) - console.log(' -- response', response) const data = response as JoinGroupResponse | undefined const error = data?.errorCodes?.find(() => true) if (error) { diff --git a/packages/web/lib/networking/mutations/markEmailAsItemMutation.ts b/packages/web/lib/networking/mutations/markEmailAsItemMutation.ts index fc6e60690..c54a12726 100644 --- a/packages/web/lib/networking/mutations/markEmailAsItemMutation.ts +++ b/packages/web/lib/networking/mutations/markEmailAsItemMutation.ts @@ -25,7 +25,6 @@ export async function markEmailAsItemMutation( }` const data = await gqlFetcher(mutation, { recentEmailId }) - console.log('recentEmailId: ', data) const output = data as MarkEmailAsItemDataResponseData | undefined const error = output?.markEmailAsItem?.errorCodes?.find(() => true) console.log('error: ', error) diff --git a/packages/web/lib/networking/mutations/setLabelsForHighlight.ts b/packages/web/lib/networking/mutations/setLabelsForHighlight.ts index a2c4521eb..b1f25f76a 100644 --- a/packages/web/lib/networking/mutations/setLabelsForHighlight.ts +++ b/packages/web/lib/networking/mutations/setLabelsForHighlight.ts @@ -31,18 +31,10 @@ export async function setLabelsForHighlight( ${labelFragment} ` - console.log( - 'setting label for highlight id: ', - highlightId, - 'labelIds', - labelIds - ) - try { const data = (await gqlFetcher(mutation, { input: { highlightId, labelIds }, })) as SetLabelsForHighlightResult - console.log(' -- errorCodes', data.setLabelsForHighlight.errorCodes) return data.setLabelsForHighlight.errorCodes ? undefined diff --git a/packages/web/lib/networking/mutations/updateLabelMutation.ts b/packages/web/lib/networking/mutations/updateLabelMutation.ts index d05f11b35..07e6cdbc8 100644 --- a/packages/web/lib/networking/mutations/updateLabelMutation.ts +++ b/packages/web/lib/networking/mutations/updateLabelMutation.ts @@ -3,8 +3,8 @@ import { gqlFetcher } from '../networkHelpers' export type UpdateLabelInput = { labelId: string - name: string, - color: string, + name: string + color: string description?: string } @@ -39,9 +39,7 @@ export async function updateLabelMutation( try { const data = await gqlFetcher(mutation) - console.log(input, data); const output = data as any - console.log(output) return output?.updatedLabel } catch (err) { return undefined diff --git a/packages/web/lib/networking/mutations/uploadImportFileMutation.ts b/packages/web/lib/networking/mutations/uploadImportFileMutation.ts index 055fe9078..aac8e9675 100644 --- a/packages/web/lib/networking/mutations/uploadImportFileMutation.ts +++ b/packages/web/lib/networking/mutations/uploadImportFileMutation.ts @@ -32,10 +32,8 @@ export async function uploadImportFileRequestMutation( }` const data = await gqlFetcher(mutation, { type, contentType }) - console.log('UploadImportFile: ', data) const output = data as UploadImportFileResponseData | undefined const error = output?.uploadImportFile?.errorCodes?.find(() => true) - console.log('error: ', error) if (error) { throw error } diff --git a/packages/web/lib/networking/queries/useGetArticleOriginalHtmlQuery.tsx b/packages/web/lib/networking/queries/useGetArticleOriginalHtmlQuery.tsx index c12443eec..edee9e662 100644 --- a/packages/web/lib/networking/queries/useGetArticleOriginalHtmlQuery.tsx +++ b/packages/web/lib/networking/queries/useGetArticleOriginalHtmlQuery.tsx @@ -53,8 +53,6 @@ export function useGetArticleOriginalHtmlQuery({ ) const resultData: ArticleData | undefined = data as ArticleData - console.log('RESULT', JSON.stringify(data)) - return resultData?.article.article.originalHtml } diff --git a/packages/web/lib/networking/queries/useGetIntegrationsQuery.tsx b/packages/web/lib/networking/queries/useGetIntegrationsQuery.tsx index 711079bae..9c28e2505 100644 --- a/packages/web/lib/networking/queries/useGetIntegrationsQuery.tsx +++ b/packages/web/lib/networking/queries/useGetIntegrationsQuery.tsx @@ -53,8 +53,6 @@ export function useGetIntegrationsQuery(): IntegrationsQueryResponse { ` const { data, mutate, isValidating } = useSWR(query, publicGqlFetcher) - console.log('integrations data', data) - try { if (data) { const result = data as IntegrationsQueryResponseData diff --git a/packages/web/lib/networking/queries/useGetWebhooksQuery.tsx b/packages/web/lib/networking/queries/useGetWebhooksQuery.tsx index 2fa16675b..ea97cd71d 100644 --- a/packages/web/lib/networking/queries/useGetWebhooksQuery.tsx +++ b/packages/web/lib/networking/queries/useGetWebhooksQuery.tsx @@ -62,8 +62,6 @@ export function useGetWebhooksQuery(): WebhooksQueryResponse { ` const { data, mutate, isValidating } = useSWR(query, publicGqlFetcher) - console.log('webhooks data', data) - try { if (data) { const result = data as WebhooksQueryResponseData diff --git a/packages/web/pages/settings/api.tsx b/packages/web/pages/settings/api.tsx index 0fc32d02e..d728bf74f 100644 --- a/packages/web/pages/settings/api.tsx +++ b/packages/web/pages/settings/api.tsx @@ -65,7 +65,6 @@ export default function Api(): JSX.Element { name: 'expiredAt', required: true, onChange: (e) => { - console.log('onChange: ', e) let additionalDays = 0 switch (e.target.value) { case 'in 7 days': From e63626be72b52b8ba561f6a5b561434befdacb30 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Mon, 4 Sep 2023 15:34:54 +0800 Subject: [PATCH 14/30] Force help boxes to only render client side --- packages/web/components/elements/FeatureHelpBox.tsx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/web/components/elements/FeatureHelpBox.tsx b/packages/web/components/elements/FeatureHelpBox.tsx index bb292aeac..d8cb67ef0 100644 --- a/packages/web/components/elements/FeatureHelpBox.tsx +++ b/packages/web/components/elements/FeatureHelpBox.tsx @@ -1,11 +1,10 @@ -'use client' - import { HStack, SpanBox, VStack } from './LayoutPrimitives' import { theme } from '../tokens/stitches.config' import { Button } from './Button' import { CloseIcon } from './icons/CloseIcon' import { HelpfulOwlImage } from './images/HelpfulOwlImage' import { ArrowSquareOut } from 'phosphor-react' +import { useEffect, useState } from 'react' type FeatureHelpBoxProps = { helpTitle: string @@ -21,6 +20,12 @@ type FeatureHelpBoxProps = { } export const FeatureHelpBox = (props: FeatureHelpBoxProps) => { + const [display, setDisplay] = useState(false) + + useEffect(() => { + setDisplay(true) + }, []) + return ( Date: Mon, 4 Sep 2023 15:56:21 +0800 Subject: [PATCH 15/30] Dont SSR help boxes --- packages/web/components/elements/FeatureHelpBox.tsx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/web/components/elements/FeatureHelpBox.tsx b/packages/web/components/elements/FeatureHelpBox.tsx index d8cb67ef0..82cba8919 100644 --- a/packages/web/components/elements/FeatureHelpBox.tsx +++ b/packages/web/components/elements/FeatureHelpBox.tsx @@ -26,6 +26,10 @@ export const FeatureHelpBox = (props: FeatureHelpBoxProps) => { setDisplay(true) }, []) + if (!display) { + return <> + } + return ( Date: Mon, 4 Sep 2023 16:50:28 +0800 Subject: [PATCH 16/30] Improve docs --- packages/web/pages/settings/api.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web/pages/settings/api.tsx b/packages/web/pages/settings/api.tsx index d728bf74f..69b51531a 100644 --- a/packages/web/pages/settings/api.tsx +++ b/packages/web/pages/settings/api.tsx @@ -124,7 +124,7 @@ export default function Api(): JSX.Element { title: 'Use API keys to Integrate Omnivore with other apps and services', message: - 'Create API keys to connect Omnivore to other apps such as Logseq and Obsidian or to query the API. Check out the integrations page for more info on connecting to Omnivore via the API.', + 'Create API keys to connect Omnivore to other apps such as Logseq and Obsidian or to query the API. Check out the integrations documentation for more info on connecting to Omnivore via the API.', docs: 'https://docs.omnivore.app/integrations/api.html', key: '--settings-apikeys-show-help', CTAText: 'Create an API Key', From 23727c3d7da2671cbbf5e70f2dcf0f5645051f37 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Mon, 4 Sep 2023 17:48:00 +0800 Subject: [PATCH 17/30] Better actions for empty saved searches --- .../web/components/elements/SuggestionBox.tsx | 55 +++-- .../templates/homeFeed/EmptyLibrary.tsx | 207 ++++++++---------- .../templates/homeFeed/LibraryFilterMenu.tsx | 1 + 3 files changed, 124 insertions(+), 139 deletions(-) diff --git a/packages/web/components/elements/SuggestionBox.tsx b/packages/web/components/elements/SuggestionBox.tsx index ae6cafcee..fd01bf44d 100644 --- a/packages/web/components/elements/SuggestionBox.tsx +++ b/packages/web/components/elements/SuggestionBox.tsx @@ -6,10 +6,14 @@ import { ReactNode } from 'react' import { Button } from './Button' import { CloseIcon } from './icons/CloseIcon' +export type SuggestionAction = { + url: string + text: string +} + type SuggestionBoxProps = { helpMessage: string - helpCTAText: string | undefined - helpTarget: string | undefined + suggestions: SuggestionAction[] size?: 'large' | 'small' background?: string @@ -90,28 +94,33 @@ export const SuggestionBox = (props: SuggestionBoxProps) => { )} {props.helpMessage} - {props.helpTarget && ( - - { + return ( + - <>{props.helpCTAText} - - - - )} + + <>{suggestion.text} + + + + ) + })} ) diff --git a/packages/web/components/templates/homeFeed/EmptyLibrary.tsx b/packages/web/components/templates/homeFeed/EmptyLibrary.tsx index 8f227a4fe..04b6df2e0 100644 --- a/packages/web/components/templates/homeFeed/EmptyLibrary.tsx +++ b/packages/web/components/templates/homeFeed/EmptyLibrary.tsx @@ -1,15 +1,8 @@ -import Link from 'next/link' -import { Book } from 'phosphor-react' -import { Button } from '../../elements/Button' -import { Box, HStack, SpanBox, VStack } from '../../elements/LayoutPrimitives' -import { StyledText } from '../../elements/StyledText' -import { theme } from '../../tokens/stitches.config' +import { Box } from '../../elements/LayoutPrimitives' import { useMemo } from 'react' -import { searchQuery } from '../../../lib/networking/queries/search' import { LIBRARY_LEFT_MENU_WIDTH } from './LibraryFilterMenu' import { LayoutType } from './HomeFeedContainer' -import { ArrowRightIcon } from '../../elements/icons/ArrowRightIcon' -import { SuggestionBox } from '../../elements/SuggestionBox' +import { SuggestionBox, SuggestionAction } from '../../elements/SuggestionBox' type EmptyLibraryProps = { searchTerm: string | undefined @@ -20,9 +13,14 @@ type EmptyLibraryProps = { type MessageType = | 'inbox' + | 'continue' + | 'non-feed' + | 'highlight' + | 'unlabeled' | 'files' | 'archive' | 'feed' + | 'subscription' | 'newsletter' | 'library' @@ -30,76 +28,29 @@ type HelpMessageProps = { type: MessageType } -const HelpMessage = (props: HelpMessageProps) => { - switch (props.type) { - case 'library': - return ( - <> - You can add a link or read more about Omnivore's{' '} - - advanced search - - . - - ) - case 'feed': - return ( - <> - You can subscribe to RSS feeds using the{' '} - - feeds page - - . Learn more about feeds at 's{' '} - - docs.omnivore.app/using/feeds.html - - . - - ) - case 'newsletter': - return ( - <> - Create email addresses that can be used to subscribe to newsletters on - the{' '} - - emails page - - . Learn more about reading newsletters in Omnivore at 's{' '} - - docs.omnivore.app/using/inbox.html - - . - - ) - } - return <> -} - export const ErrorBox = (props: HelpMessageProps) => { const errorTitle = useMemo(() => { switch (props.type) { case 'inbox': - return 'Your inbox is empty.' + return 'Your inbox is empty. The inbox will contain all your non-archived saved items.' + case 'continue': + return "No continue reading items. Continue Reading items are items you have started but haven't finished reading." + case 'non-feed': + return "No non-feed items found. Non-feed items are items you've add to the library using the mobile apps, browser extensions, or Add Link button. Not newsletter or feed items." + case 'highlight': + return 'No highlights found. Add highlights to your library by highlighting text in the reader view.' + case 'unlabeled': + return 'No unlabeled items found. Items without labels can be found here. Use this query to easily triage your library.' case 'archive': return 'You do not have any archived items.' case 'files': return 'No files found.' case 'feed': return 'You do not have any feed items matching this query.' + case 'subscription': + return 'You do not have any subscriptions.' case 'newsletter': - return 'You do not have any newsletter item matching this query.' + return 'You do not have any newsletter items matching this query.' } return 'No results found for this query.' }, [props.type]) @@ -129,65 +80,79 @@ export const ErrorBox = (props: HelpMessageProps) => { ) } +type SuggestionMessage = { + message: string + actions: SuggestionAction[] +} + export const Suggestion = (props: HelpMessageProps) => { - const helpMessage = useMemo(() => { + const helpMessage = useMemo(() => { switch (props.type) { case 'feed': - return ['Want to add an RSS or Atom Subscription?', 'Click Here'] + return { + message: 'Want to add an RSS or Atom Subscription?', + actions: [ + { text: 'Add an RSS or Atom feed', url: '/settings/feeds' }, + ], + } case 'archive': - return [ - 'When you are done reading something archive it and it will be saved in Omnivore forever.', - 'Read the Docs', - ] + return { + message: + 'When you are done reading something archive it and it will be saved in Omnivore forever.', + actions: [ + { + text: 'Read the docs', + url: 'https://docs.omnivore.app/using/saving', + }, + ], + } case 'files': - return [ - 'Drag PDFs into the library to add them to your Omnivore account.', - undefined, - ] + return { + message: + 'Drag PDFs into the library to add them to your Omnivore account.', + actions: [], + } case 'newsletter': - return [ - 'Create an Omnivore email address and subscribe to newsletters.', - 'Click Here', - ] + return { + message: + 'Create an Omnivore email address and subscribe to newsletters.', + actions: [ + { + text: 'Create an email address for newsletters', + url: '/settings/emails', + }, + ], + } + case 'subscription': + return { + message: + 'Create an Omnivore email address and subscribe to newsletters or add a feed from the Feeds page.', + actions: [ + { text: 'Add an RSS or Atom feed', url: '/settings/feeds' }, + { + text: 'Create an email address for newsletters', + url: '/settings/emails', + }, + ], + } } - return [ - "Add a link or read more about Omnivore's Advanced Search.", - 'Read the Docs', - ] - }, [props.type]) - - const helpTarget = useMemo(() => { - switch (props.type) { - case 'feed': - return '/settings/feeds' - case 'archive': - case 'files': - return undefined - case 'archive': - case 'inbox': - return 'https://docs.omnivore.app/using/saving' - case 'newsletter': - return '/settings/emails' + return { + message: "Add a link or read more about Omnivore's Advanced Search.", + actions: [ + { + text: 'Read the Docs', + url: 'https://docs.omnivore.app/using/search.html', + }, + ], } - return 'https://docs.omnivore.app/' - }, [props.type]) - - const helpTargetWindow = useMemo(() => { - switch (props.type) { - case 'archive': - case 'inbox': - return '_blank' - } - return undefined }, [props.type]) return ( <> - {helpMessage[0] ? ( + {helpMessage ? ( ) : ( <> @@ -200,14 +165,24 @@ export const EmptyLibrary = (props: EmptyLibraryProps) => { const type = useMemo(() => { if (props.searchTerm) { switch (props.searchTerm) { - case 'in:archive': - return 'archive' case 'in:inbox': return 'inbox' + case 'in:inbox sort:read-desc is:unread': + return 'continue' + case 'in:library': + return 'non-feed' + case 'has:highlights mode:highlights': + return 'highlight' + case 'no:label': + return 'unlabeled' case 'type:file': return 'files' + case 'in:archive': + return 'archive' case 'label:RSS': return 'feed' + case 'in:subscription': + return 'subscription' case 'label:Newsletter': return 'newsletter' } diff --git a/packages/web/components/templates/homeFeed/LibraryFilterMenu.tsx b/packages/web/components/templates/homeFeed/LibraryFilterMenu.tsx index 666f2741e..9c056182a 100644 --- a/packages/web/components/templates/homeFeed/LibraryFilterMenu.tsx +++ b/packages/web/components/templates/homeFeed/LibraryFilterMenu.tsx @@ -194,6 +194,7 @@ function Subscriptions(props: LibraryFilterMenuProps): JSX.Element { > {!collapsed ? ( <> + Date: Mon, 4 Sep 2023 18:27:56 +0800 Subject: [PATCH 18/30] Better preview URLs for onboarding articles --- packages/api/src/services/popular_reads.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/api/src/services/popular_reads.ts b/packages/api/src/services/popular_reads.ts index 7f79406d5..89d067c1b 100644 --- a/packages/api/src/services/popular_reads.ts +++ b/packages/api/src/services/popular_reads.ts @@ -153,7 +153,7 @@ const popularReads = [ author: 'The Omnivore Team', description: 'Get the most out of Omnivore by learning how to use it.', previewImage: - 'https://proxy-prod.omnivore-image-cache.app/88x88,sBp_gMyIp8Y4Mje8lzL39vzrBQg5m9KbprssrGjCbbHw/https://substackcdn.com/image/fetch/w_1200,h_600,c_limit,f_jpg,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F658efff4-341a-4720-8cf6-9b2bdbedfaa7_800x668.gif', + 'https://proxy-prod.omnivore-image-cache.app/320x320,sxQnqya1QNApB7ZAGPj9K20AU6sw0UAnjmAIy2ub8hUU/https://substackcdn.com/image/fetch/w_1200,h_600,c_fill,f_jpg,q_auto:good,fl_progressive:steep,g_auto/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F658efff4-341a-4720-8cf6-9b2bdbedfaa7_800x668.gif', publishedAt: new Date('2021-10-13'), siteName: 'Omnivore Blog', }, @@ -164,7 +164,7 @@ const popularReads = [ author: 'Omnivore', description: 'Learn how to save articles on iOS.', previewImage: - 'https://proxy-prod.omnivore-image-cache.app/260x260,suM2fz_-6_1PDsQDursGPD2bQqnpgGH9Ymj-IVb5dUR4/https://substackcdn.com/image/youtube/w_728,c_limit/k6RkIqepAig', + 'https://proxy-prod.omnivore-image-cache.app/320x320,sWDfv7sARTIdAlx6Rw_6t-QwL3T9aniEJRa1-jVaglNg/https://substackcdn.com/image/youtube/w_728,c_limit/k6RkIqepAig', publishedAt: new Date('2021-10-19'), siteName: 'Omnivore Blog', }, @@ -175,7 +175,7 @@ const popularReads = [ author: 'The Omnivore Team', description: 'Use labels to organize your Omnivore library.', previewImage: - 'https://proxy-prod.omnivore-image-cache.app/88x88,sSLRtT7zJbaNFEUbqDe9jbr3nloPsdjaqQXUqISk_x7E/https://substackcdn.com/image/fetch/w_1200,h_600,c_limit,f_jpg,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4ec9f3c-baef-464b-8d3a-0b8a384874d3_960x711.gif', + 'https://proxy-prod.omnivore-image-cache.app/320x320,sTgJ5Q0XIg_EHdmPWcxtXFmkjn8T6hkJt7S9ziClagYo/https://substackcdn.com/image/fetch/w_1200,h_600,c_fill,f_jpg,q_auto:good,fl_progressive:steep,g_auto/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaf07af7-5cdb-4ecc-aace-1a46de3e9c58_1827x1090.png', publishedAt: new Date('2022-04-18'), siteName: 'Omnivore Blog', }, @@ -199,7 +199,7 @@ const popularReads = [ description: 'At the end of 2014 I received an email informing me that I had read over a million words in the ‘read it later’ app Pocket', previewImage: - 'https://proxy-prod.omnivore-image-cache.app/88x88,sVITWrJo3Wdi5LY3qSXX9aGytwKKteF8bth4z1MNz-PI/https://i0.wp.com/fortelabs.co/wp-content/uploads/2015/11/1rPXwIczUJRCE54v8FfAHGw.jpeg?fit=2000%2C844&ssl=1', + 'https://proxy-prod.omnivore-image-cache.app/320x320,sGN5R34M5z068QMXDZD32CQD6mCbxc47hWXm__JVUePE/https://fortelabs.com/wp-content/uploads/2015/11/1rPXwIczUJRCE54v8FfAHGw.jpeg', publishedAt: new Date('2022-01-24'), siteName: 'Forte Labs', }, From 9e78976bf0062271cb57b391f44752ef7034262e Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Tue, 5 Sep 2023 09:58:38 +0800 Subject: [PATCH 19/30] Add sloth image --- .../elements/images/HelpfulSlothImage.tsx | 12 ++++++++++++ .../public/static/images/helpful-sloth@2x.png | Bin 0 -> 70005 bytes 2 files changed, 12 insertions(+) create mode 100644 packages/web/components/elements/images/HelpfulSlothImage.tsx create mode 100644 packages/web/public/static/images/helpful-sloth@2x.png diff --git a/packages/web/components/elements/images/HelpfulSlothImage.tsx b/packages/web/components/elements/images/HelpfulSlothImage.tsx new file mode 100644 index 000000000..95c152a43 --- /dev/null +++ b/packages/web/components/elements/images/HelpfulSlothImage.tsx @@ -0,0 +1,12 @@ +import Image from 'next/image' + +export const HelpfulSlothImage = () => { + return ( + Picture of a sloth reading + ) +} diff --git a/packages/web/public/static/images/helpful-sloth@2x.png b/packages/web/public/static/images/helpful-sloth@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..13859597d1fa8e7ea13d45cef6c71842aac6f208 GIT binary patch literal 70005 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

cPx_74k@MC~|Lg8cs@y%Vvolf;IGB#>1= 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 Date: Tue, 5 Sep 2023 09:59:13 +0800 Subject: [PATCH 20/30] Use sloth instead of owl --- packages/web/components/elements/FeatureHelpBox.tsx | 4 ++-- .../web/components/elements/images/HelpfulOwlImage.tsx | 7 +------ 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/packages/web/components/elements/FeatureHelpBox.tsx b/packages/web/components/elements/FeatureHelpBox.tsx index 82cba8919..9390dddb3 100644 --- a/packages/web/components/elements/FeatureHelpBox.tsx +++ b/packages/web/components/elements/FeatureHelpBox.tsx @@ -2,7 +2,7 @@ import { HStack, SpanBox, VStack } from './LayoutPrimitives' import { theme } from '../tokens/stitches.config' import { Button } from './Button' import { CloseIcon } from './icons/CloseIcon' -import { HelpfulOwlImage } from './images/HelpfulOwlImage' +import { HelpfulSlothImage } from './images/HelpfulSlothImage' import { ArrowSquareOut } from 'phosphor-react' import { useEffect, useState } from 'react' @@ -57,7 +57,7 @@ export const FeatureHelpBox = (props: FeatureHelpBoxProps) => { '@smDown': { display: 'none' }, }} > - + diff --git a/packages/web/components/elements/images/HelpfulOwlImage.tsx b/packages/web/components/elements/images/HelpfulOwlImage.tsx index 3268d3a29..140877c2e 100644 --- a/packages/web/components/elements/images/HelpfulOwlImage.tsx +++ b/packages/web/components/elements/images/HelpfulOwlImage.tsx @@ -1,11 +1,6 @@ import Image from 'next/image' -type HelpfulOwlImageProps = { - width: number - height: number -} - -export const HelpfulOwlImage = (props: HelpfulOwlImageProps) => { +export const HelpfulOwlImage = () => { return ( Date: Tue, 5 Sep 2023 10:03:01 +0800 Subject: [PATCH 21/30] Set background colour on settings header --- packages/web/components/patterns/SettingsHeader.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/web/components/patterns/SettingsHeader.tsx b/packages/web/components/patterns/SettingsHeader.tsx index 2d33a3a58..e359126ec 100644 --- a/packages/web/components/patterns/SettingsHeader.tsx +++ b/packages/web/components/patterns/SettingsHeader.tsx @@ -27,6 +27,7 @@ export function SettingsHeader(props: HeaderProps): JSX.Element { '@mdDown': { pr: '15px', }, + bg: '$thBackground', }} > From 672e0069c4b000aafad3c2d32775f7336597e18d Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Tue, 5 Sep 2023 10:11:19 +0800 Subject: [PATCH 22/30] Add feeds to dropdown menu --- .../elements/LabelColorDropdown.tsx | 3 - .../web/components/patterns/DropdownMenu.tsx | 99 ------------------- .../components/templates/PrimaryDropdown.tsx | 22 ++--- .../templates/homeFeed/LibraryHeader.tsx | 58 ++++++----- 4 files changed, 39 insertions(+), 143 deletions(-) delete mode 100644 packages/web/components/patterns/DropdownMenu.tsx diff --git a/packages/web/components/elements/LabelColorDropdown.tsx b/packages/web/components/elements/LabelColorDropdown.tsx index 26e015bff..69d7a79e9 100644 --- a/packages/web/components/elements/LabelColorDropdown.tsx +++ b/packages/web/components/elements/LabelColorDropdown.tsx @@ -4,11 +4,8 @@ import { Box, HStack } from './LayoutPrimitives' import { StyledText } from './StyledText' import { LabelColorDropdownProps, - LabelColorObject, LabelOptionProps, } from '../../utils/settings-page/labels/types' -import { labelColorObjects } from '../../utils/settings-page/labels/labelColorObjects' -import { LabelColor } from '../../lib/networking/fragments/labelFragment' import { TwitterPicker } from 'react-color' import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu' diff --git a/packages/web/components/patterns/DropdownMenu.tsx b/packages/web/components/patterns/DropdownMenu.tsx deleted file mode 100644 index de09ce225..000000000 --- a/packages/web/components/patterns/DropdownMenu.tsx +++ /dev/null @@ -1,99 +0,0 @@ -import { ReactNode, useMemo, useState } from 'react' -import { HStack, VStack } from './../elements/LayoutPrimitives' -import { Dropdown, DropdownOption } from '../elements/DropdownElements' -import { StyledText } from '../elements/StyledText' -import { Button } from '../elements/Button' -import { currentThemeName } from '../../lib/themeUpdater' -import { Check } from 'phosphor-react' - -export type HeaderDropdownAction = - | 'apply-dark-theme' - | 'apply-light-theme' - | 'navigate-to-install' - | 'navigate-to-emails' - | 'navigate-to-labels' - | 'navigate-to-profile' - | 'navigate-to-subscriptions' - | 'navigate-to-api' - | 'navigate-to-integrations' - | 'increaseFontSize' - | 'decreaseFontSize' - | 'logout' - -type DropdownMenuProps = { - username?: string - triggerElement: ReactNode - actionHandler: (action: HeaderDropdownAction) => void -} - -export function DropdownMenu(props: DropdownMenuProps): JSX.Element { - const [currentTheme, setCurrentTheme] = useState(currentThemeName()) - - const isDark = useMemo(() => { - return currentTheme === 'Dark' || currentTheme === 'Darker' - }, [currentTheme]) - - return ( - - - Theme - - - - - - props.actionHandler('navigate-to-install')} - title="Install" - /> - props.actionHandler('navigate-to-emails')} - title="Emails" - /> - props.actionHandler('navigate-to-labels')} - title="Labels" - /> - props.actionHandler('navigate-to-api')} - title="API Keys" - /> - props.actionHandler('navigate-to-integrations')} - title="Integrations" - /> - window.open('https://docs.omnivore.app', '_blank')} - title="Documentation" - /> - window.Intercom('show')} - title="Feedback" - /> - props.actionHandler('logout')} - title="Logout" - /> - - ) -} diff --git a/packages/web/components/templates/PrimaryDropdown.tsx b/packages/web/components/templates/PrimaryDropdown.tsx index 19e25d159..b24f1a832 100644 --- a/packages/web/components/templates/PrimaryDropdown.tsx +++ b/packages/web/components/templates/PrimaryDropdown.tsx @@ -26,19 +26,17 @@ type PrimaryDropdownProps = { updateLayout?: (layout: LayoutType) => void showAddLinkModal?: () => void - startSelectMultiple?: () => void } export type HeaderDropdownAction = | 'navigate-to-install' + | 'navigate-to-feeds' | '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 { @@ -51,6 +49,9 @@ export function PrimaryDropdown(props: PrimaryDropdownProps): JSX.Element { case 'navigate-to-install': router.push('/settings/installation') break + case 'navigate-to-feeds': + router.push('/settings/feeds') + break case 'navigate-to-emails': router.push('/settings/emails') break @@ -149,6 +150,10 @@ export function PrimaryDropdown(props: PrimaryDropdownProps): JSX.Element { onSelect={() => headerDropdownActionHandler('navigate-to-install')} title="Install" /> + headerDropdownActionHandler('navigate-to-feeds')} + title="Feeds" + /> headerDropdownActionHandler('navigate-to-emails')} title="Emails" @@ -167,17 +172,6 @@ export function PrimaryDropdown(props: PrimaryDropdownProps): JSX.Element { /> )} - {props.startSelectMultiple && ( - <> - - props.startSelectMultiple && props.startSelectMultiple() - } - title="Select Multiple" - /> - - - )} headerDropdownActionHandler('navigate-to-api')} title="API Keys" diff --git a/packages/web/components/templates/homeFeed/LibraryHeader.tsx b/packages/web/components/templates/homeFeed/LibraryHeader.tsx index f33d0c9f1..2a32acee4 100644 --- a/packages/web/components/templates/homeFeed/LibraryHeader.tsx +++ b/packages/web/components/templates/homeFeed/LibraryHeader.tsx @@ -1,4 +1,4 @@ -import { useCallback, useEffect, useRef, useState } from "react" +import { useCallback, useEffect, useRef, useState } from 'react' import { Box, HStack, SpanBox, VStack } from '../../elements/LayoutPrimitives' import { theme } from '../../tokens/stitches.config' import { FormInput } from '../../elements/FormElements' @@ -54,7 +54,11 @@ type LibraryHeaderProps = { performMultiSelectAction: (action: BulkAction, labelIds?: string[]) => void - handleLinkSubmission: (link: string, timezone: string, locale:string) => Promise, + handleLinkSubmission: ( + link: string, + timezone: string, + locale: string + ) => Promise } export function LibraryHeader(props: LibraryHeaderProps): JSX.Element { @@ -220,15 +224,20 @@ export type SearchBoxProps = { compact?: boolean onClose?: () => void - handleLinkSubmission: (link: string, timezone: string, locale:string) => Promise, + handleLinkSubmission: ( + link: string, + timezone: string, + locale: string + ) => Promise } export function SearchBox(props: SearchBoxProps): JSX.Element { const inputRef = useRef(null) const [focused, setFocused] = useState(false) const [searchTerm, setSearchTerm] = useState(props.searchTerm ?? '') - const [isAddAction, setIsAddAction] = useState(false); - const IS_URL_REGEX = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)/; + const [isAddAction, setIsAddAction] = useState(false) + const IS_URL_REGEX = + /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)/ useEffect(() => { setSearchTerm(props.searchTerm ?? '') @@ -284,22 +293,23 @@ export function SearchBox(props: SearchBoxProps): JSX.Element { e.preventDefault() }} > - { - (() => { - if (isAddAction) { - return { + if (isAddAction) { + return ( + + ) } - return - })() - } - + ) + })()}

{ @@ -308,9 +318,9 @@ export function SearchBox(props: SearchBoxProps): JSX.Element { if (!isAddAction) { props.applySearchQuery(searchTerm || '') } else { - await props.handleLinkSubmission(searchTerm, timeZone, locale) - setSearchTerm(props.searchTerm ?? "") - props.applySearchQuery(props.searchTerm ?? "") + await props.handleLinkSubmission(searchTerm, timeZone, locale) + setSearchTerm(props.searchTerm ?? '') + props.applySearchQuery(props.searchTerm ?? '') } inputRef.current?.blur() if (props.onClose) { @@ -408,7 +418,11 @@ type ControlButtonBoxProps = { searchTerm: string | undefined applySearchQuery: (searchQuery: string) => void - handleLinkSubmission: (link: string, timezone: string, locale:string) => Promise, + handleLinkSubmission: ( + link: string, + timezone: string, + locale: string + ) => Promise } function MultiSelectControls(props: ControlButtonBoxProps): JSX.Element { @@ -517,13 +531,6 @@ function SearchControlButtonBox( { - props.setMultiSelectMode('none') - } - : undefined - } showAddLinkModal={props.showAddLinkModal} /> @@ -702,9 +709,6 @@ function ControlButtonBox(props: ControlButtonBoxProps): JSX.Element { layout={props.layout} updateLayout={props.updateLayout} showAddLinkModal={props.showAddLinkModal} - startSelectMultiple={() => { - props.setMultiSelectMode('none') - }} /> )} From a6df9047d7882e926423d1c348fb9d6b130acbdf Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Tue, 5 Sep 2023 11:25:30 +0800 Subject: [PATCH 23/30] Use the correct list icon in the dropdown --- packages/web/components/templates/PrimaryDropdown.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/web/components/templates/PrimaryDropdown.tsx b/packages/web/components/templates/PrimaryDropdown.tsx index b24f1a832..3d31202c7 100644 --- a/packages/web/components/templates/PrimaryDropdown.tsx +++ b/packages/web/components/templates/PrimaryDropdown.tsx @@ -311,8 +311,7 @@ function ThemeSection(props: PrimaryDropdownProps): JSX.Element { props.updateLayout && props.updateLayout('LIST_LAYOUT') }} > - From dfdfb9ef280d2bf26eb2e42128a5655497a5b798 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Tue, 5 Sep 2023 14:05:23 +0800 Subject: [PATCH 24/30] Add blurb to web about onboarding emails --- .../web/components/templates/auth/EmailSignup.tsx | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/packages/web/components/templates/auth/EmailSignup.tsx b/packages/web/components/templates/auth/EmailSignup.tsx index e81531926..106487265 100644 --- a/packages/web/components/templates/auth/EmailSignup.tsx +++ b/packages/web/components/templates/auth/EmailSignup.tsx @@ -186,6 +186,17 @@ export function EmailSignup(): JSX.Element { + + During our beta period Omnivore will send you daily tips for your + first week as a new user. If you don't like them you can unsubscribe. + + Date: Tue, 5 Sep 2023 14:07:27 +0800 Subject: [PATCH 25/30] Improve styling --- .../components/templates/auth/EmailSignup.tsx | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/packages/web/components/templates/auth/EmailSignup.tsx b/packages/web/components/templates/auth/EmailSignup.tsx index 106487265..5cfdd399c 100644 --- a/packages/web/components/templates/auth/EmailSignup.tsx +++ b/packages/web/components/templates/auth/EmailSignup.tsx @@ -155,6 +155,17 @@ export function EmailSignup(): JSX.Element { {errorMessage && {errorMessage}} + + Omnivore will send you daily tips for your first week as a new user. + If you don't like them you can unsubscribe. + + - - During our beta period Omnivore will send you daily tips for your - first week as a new user. If you don't like them you can unsubscribe. - - Date: Tue, 5 Sep 2023 15:04:03 +0800 Subject: [PATCH 26/30] escaping --- packages/web/components/templates/auth/EmailSignup.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web/components/templates/auth/EmailSignup.tsx b/packages/web/components/templates/auth/EmailSignup.tsx index 5cfdd399c..090c9f7ac 100644 --- a/packages/web/components/templates/auth/EmailSignup.tsx +++ b/packages/web/components/templates/auth/EmailSignup.tsx @@ -163,7 +163,7 @@ export function EmailSignup(): JSX.Element { }} > Omnivore will send you daily tips for your first week as a new user. - If you don't like them you can unsubscribe. + If you don't like them you can unsubscribe. Date: Tue, 5 Sep 2023 16:11:13 -0300 Subject: [PATCH 27/30] Update README.md Added a badge to the Mastodon profile @ https://pkm.social/@omnivore --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 826146bcb..e8bda6e55 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,7 @@ [![GitHub Workflow Status](https://img.shields.io/github/workflow/status/omnivore-app/omnivore/Run%20tests)](https://github.com/omnivore-app/omnivore/actions/workflows/run-tests.yaml) [![Discord](https://img.shields.io/discord/844965259462311966?label=Join%20our%20Discord)](https://discord.gg/h2z5rppzz9) +![Mastodon Follow](https://img.shields.io/mastodon/follow/109458738600914558?domain=https%3A%2F%2Fpkm.social) [![Twitter Follow](https://img.shields.io/twitter/follow/omnivoreapp)](https://twitter.com/OmnivoreApp) ![GitHub](https://img.shields.io/github/license/omnivore-app/omnivore) From a6240e822371f518c363eccbe8cdad84babb7128 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Wed, 6 Sep 2023 14:49:18 +0800 Subject: [PATCH 28/30] Return of the bulk tool --- packages/web/pages/tools/bulk.tsx | 221 ++++++++++++++++++++++++++++++ 1 file changed, 221 insertions(+) create mode 100644 packages/web/pages/tools/bulk.tsx diff --git a/packages/web/pages/tools/bulk.tsx b/packages/web/pages/tools/bulk.tsx new file mode 100644 index 000000000..78dbc9cd0 --- /dev/null +++ b/packages/web/pages/tools/bulk.tsx @@ -0,0 +1,221 @@ +import { useCallback, useEffect, useState } from 'react' +import { applyStoredTheme } from '../../lib/themeUpdater' + +import { + Box, + SpanBox, + VStack, +} from '../../components/elements/LayoutPrimitives' + +import { StyledText } from '../../components/elements/StyledText' +import { ProfileLayout } from '../../components/templates/ProfileLayout' +import { + BulkAction, + bulkActionMutation, +} from '../../lib/networking/mutations/bulkActionMutation' +import { Button } from '../../components/elements/Button' +import { theme } from '../../components/tokens/stitches.config' +import { ConfirmationModal } from '../../components/patterns/ConfirmationModal' +import * as Select from '@radix-ui/react-select' + +import { showErrorToast, showSuccessToast } from '../../lib/toastHelpers' +import { useRouter } from 'next/router' +import { useGetLibraryItemsQuery } from '../../lib/networking/queries/useGetLibraryItemsQuery' +import { + BorderedFormInput, + FormInput, + FormLabel, +} from '../../components/elements/FormElements' + +type RunningState = 'none' | 'confirming' | 'running' | 'completed' + +export default function BulkPerformer(): JSX.Element { + const router = useRouter() + + applyStoredTheme(false) + + const [action, setAction] = useState() + const [query, setQuery] = useState('in:all') + const [expectedCount, setExpectedCount] = useState() + const [errorMessage, setErrorMessage] = useState() + const [runningState, setRunningState] = useState('none') + + const { itemsPages, isValidating } = useGetLibraryItemsQuery({ + searchQuery: query, + limit: 1, + sortDescending: false, + }) + + useEffect(() => { + console.log('itemsPages: ', itemsPages) + setExpectedCount(itemsPages?.find(() => true)?.search.pageInfo.totalCount) + }, [itemsPages]) + + const performAction = useCallback(() => { + ;(async () => { + console.log('performing action: ', action) + if (!action) { + showErrorToast('Unable to run action, no action set.') + return + } + try { + // action: BulkAction, + // query: string, + // expectedCount: number, + // labelIds?: string[] + const success = await bulkActionMutation(action, query, size) + if (!success) { + throw 'Success not returned' + } + showSuccessToast('Bulk action is being performed.') + setRunningState('completed') + } catch (err) { + showErrorToast('Error performing bulk action.') + } + })() + }, [action]) + + return ( + + + + Perform a Bulk Action + + + Use this tool to perform a bulk operation on all the items in your + library.

+
+ + Note: This operation can not be undone. + + + {runningState == 'completed' ? ( + + Your bulk action has started. Please note that it can take some + time for these actions to complete. During this time, we recommend + not modifying your library as new items could be updated by the + action. + + ) : ( + <> + + Search Query + setQuery(e.target.value)} + required + /> + + Matches {expectedCount} items. + + + Action + + + + + + )} + + {runningState == 'confirming' && ( + setRunningState('none')} + /> + )} + {runningState == 'completed' && ( + + + + )} + + {errorMessage && ( + {errorMessage} + )} + +
+
+ ) +} From 9e99a9a3d81f7315522c082c734fc26305c55eb9 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Wed, 6 Sep 2023 15:27:56 +0800 Subject: [PATCH 29/30] Fix imports --- packages/web/pages/tools/bulk.tsx | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/packages/web/pages/tools/bulk.tsx b/packages/web/pages/tools/bulk.tsx index 78dbc9cd0..9779f0cda 100644 --- a/packages/web/pages/tools/bulk.tsx +++ b/packages/web/pages/tools/bulk.tsx @@ -1,11 +1,7 @@ import { useCallback, useEffect, useState } from 'react' import { applyStoredTheme } from '../../lib/themeUpdater' -import { - Box, - SpanBox, - VStack, -} from '../../components/elements/LayoutPrimitives' +import { VStack } from '../../components/elements/LayoutPrimitives' import { StyledText } from '../../components/elements/StyledText' import { ProfileLayout } from '../../components/templates/ProfileLayout' @@ -16,14 +12,11 @@ import { import { Button } from '../../components/elements/Button' import { theme } from '../../components/tokens/stitches.config' import { ConfirmationModal } from '../../components/patterns/ConfirmationModal' -import * as Select from '@radix-ui/react-select' - import { showErrorToast, showSuccessToast } from '../../lib/toastHelpers' import { useRouter } from 'next/router' import { useGetLibraryItemsQuery } from '../../lib/networking/queries/useGetLibraryItemsQuery' import { BorderedFormInput, - FormInput, FormLabel, } from '../../components/elements/FormElements' From f0fcc90bb299f9a1454b09078d2829f94df65793 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Wed, 6 Sep 2023 15:50:21 +0800 Subject: [PATCH 30/30] Add validation check to bulk action --- packages/web/pages/tools/bulk.tsx | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/packages/web/pages/tools/bulk.tsx b/packages/web/pages/tools/bulk.tsx index 9779f0cda..ab74aed27 100644 --- a/packages/web/pages/tools/bulk.tsx +++ b/packages/web/pages/tools/bulk.tsx @@ -47,16 +47,24 @@ export default function BulkPerformer(): JSX.Element { const performAction = useCallback(() => { ;(async () => { console.log('performing action: ', action) + if (isValidating) { + showErrorToast('Query still being validated.') + return + } if (!action) { showErrorToast('Unable to run action, no action set.') return } + if (!expectedCount) { + showErrorToast('No items matching this query or query still running.') + return + } + if (!action) { + showErrorToast('No action selected') + return + } try { - // action: BulkAction, - // query: string, - // expectedCount: number, - // labelIds?: string[] - const success = await bulkActionMutation(action, query, size) + const success = await bulkActionMutation(action, query, expectedCount) if (!success) { throw 'Success not returned' } @@ -66,7 +74,7 @@ export default function BulkPerformer(): JSX.Element { showErrorToast('Error performing bulk action.') } })() - }, [action]) + }, [action, query, expectedCount]) return (