diff --git a/packages/web/components/patterns/LoadingView.tsx b/packages/web/components/patterns/LoadingView.tsx index b2a496fe7..2f71e8c60 100644 --- a/packages/web/components/patterns/LoadingView.tsx +++ b/packages/web/components/patterns/LoadingView.tsx @@ -6,7 +6,7 @@ type LoadingViewProps = { } export function LoadingView(props: LoadingViewProps): JSX.Element { - applyStoredTheme(false) + applyStoredTheme() return ( { setShowLogoutConfirmation(true) diff --git a/packages/web/lib/hooks/useReaderSettings.tsx b/packages/web/lib/hooks/useReaderSettings.tsx index cbd7c134b..66e1fdefa 100644 --- a/packages/web/lib/hooks/useReaderSettings.tsx +++ b/packages/web/lib/hooks/useReaderSettings.tsx @@ -37,7 +37,7 @@ export type ReaderSettings = { } export const useReaderSettings = (): ReaderSettings => { - applyStoredTheme(false) + applyStoredTheme() const [, updateState] = useState({}) diff --git a/packages/web/lib/themeUpdater.tsx b/packages/web/lib/themeUpdater.tsx index 77f885f52..2873da351 100644 --- a/packages/web/lib/themeUpdater.tsx +++ b/packages/web/lib/themeUpdater.tsx @@ -88,7 +88,7 @@ export function currentTheme(): ThemeId | undefined { return ThemeId.Light } -export function applyStoredTheme(syncWithServer = true): ThemeId | undefined { +export function applyStoredTheme(): ThemeId | undefined { if (typeof window === 'undefined') { return undefined } diff --git a/packages/web/pages/[username]/[slug]/debug.tsx b/packages/web/pages/[username]/[slug]/debug.tsx index ae4bd375f..ab7886ace 100644 --- a/packages/web/pages/[username]/[slug]/debug.tsx +++ b/packages/web/pages/[username]/[slug]/debug.tsx @@ -30,7 +30,7 @@ export default function Debug(): JSX.Element { includeFriendsHighlights: false, }) - applyStoredTheme(false) + applyStoredTheme() const sortedAttributes = useMemo(() => { // if (!sortedAttributes) { diff --git a/packages/web/pages/[username]/links/[id].tsx b/packages/web/pages/[username]/links/[id].tsx index f3ac5b7dd..ae933aee3 100644 --- a/packages/web/pages/[username]/links/[id].tsx +++ b/packages/web/pages/[username]/links/[id].tsx @@ -20,7 +20,7 @@ export default function ArticleSavingRequestPage(): JSX.Element { const readerSettings = useReaderSettings() const [articleId, setArticleId] = useState(undefined) - applyStoredTheme(false) + applyStoredTheme() useEffect(() => { if (!router.isReady) return diff --git a/packages/web/pages/app/[username]/[slug]/index.tsx b/packages/web/pages/app/[username]/[slug]/index.tsx index fbecdb63a..c704d620c 100644 --- a/packages/web/pages/app/[username]/[slug]/index.tsx +++ b/packages/web/pages/app/[username]/[slug]/index.tsx @@ -25,13 +25,12 @@ type AppArticleEmbedContentProps = { } export default function AppArticleEmbed(): JSX.Element { - applyStoredTheme(false) // false to skip server sync + applyStoredTheme() const router = useRouter() - const [contentProps, setContentProps] = useState< - AppArticleEmbedContentProps | undefined - >(undefined) + const [contentProps, setContentProps] = + useState(undefined) useEffect(() => { if (!router.isReady) return diff --git a/packages/web/pages/app/[username]/link-request/[id].tsx b/packages/web/pages/app/[username]/link-request/[id].tsx index 74ba9279c..a1d96f8ff 100644 --- a/packages/web/pages/app/[username]/link-request/[id].tsx +++ b/packages/web/pages/app/[username]/link-request/[id].tsx @@ -9,7 +9,7 @@ import { PrimaryLayout } from '../../../../components/templates/PrimaryLayout' import { applyStoredTheme } from '../../../../lib/themeUpdater' export default function LinkRequestPage(): JSX.Element { - applyStoredTheme(false) // false to skip server sync + applyStoredTheme() const router = useRouter() const [requestID, setRequestID] = useState(undefined) diff --git a/packages/web/pages/app/privacy.tsx b/packages/web/pages/app/privacy.tsx index 3e59a439e..0352dd5c2 100644 --- a/packages/web/pages/app/privacy.tsx +++ b/packages/web/pages/app/privacy.tsx @@ -2,6 +2,6 @@ import { PrivacyPolicy } from '../../components/templates/PrivacyPolicy' import { applyStoredTheme } from '../../lib/themeUpdater' export default function Privacy(): JSX.Element { - applyStoredTheme(false) // false to skip server sync + applyStoredTheme() return } diff --git a/packages/web/pages/app/terms.tsx b/packages/web/pages/app/terms.tsx index fd4325ab7..5e87fe202 100644 --- a/packages/web/pages/app/terms.tsx +++ b/packages/web/pages/app/terms.tsx @@ -2,6 +2,6 @@ import { TermsAndConditions } from '../../components/templates/TermsAndCondition import { applyStoredTheme } from '../../lib/themeUpdater' export default function Terms(): JSX.Element { - applyStoredTheme(false) // false to skip server sync + applyStoredTheme() return } diff --git a/packages/web/pages/article/index.tsx b/packages/web/pages/article/index.tsx index 1b09414ed..dca4cde0f 100644 --- a/packages/web/pages/article/index.tsx +++ b/packages/web/pages/article/index.tsx @@ -16,7 +16,7 @@ export default function ArticleSavingRequestPage(): JSX.Element { const readerSettings = useReaderSettings() const [url, setUrl] = useState(undefined) - applyStoredTheme(false) + applyStoredTheme() useEffect(() => { if (!router.isReady) return diff --git a/packages/web/pages/article/sr/[id].tsx b/packages/web/pages/article/sr/[id].tsx index 6213a6759..ed5d1016b 100644 --- a/packages/web/pages/article/sr/[id].tsx +++ b/packages/web/pages/article/sr/[id].tsx @@ -20,7 +20,7 @@ export default function ArticleSavingRequestPage(): JSX.Element { const readerSettings = useReaderSettings() const [articleId, setArticleId] = useState(undefined) - applyStoredTheme(false) + applyStoredTheme() useEffect(() => { if (!router.isReady) return diff --git a/packages/web/pages/settings/account.tsx b/packages/web/pages/settings/account.tsx index d4cc1252a..3d57d36e0 100644 --- a/packages/web/pages/settings/account.tsx +++ b/packages/web/pages/settings/account.tsx @@ -198,7 +198,7 @@ export default function Account(): JSX.Element { })() }, [email]) - applyStoredTheme(false) + applyStoredTheme() return ( diff --git a/packages/web/pages/settings/api.tsx b/packages/web/pages/settings/api.tsx index 69b51531a..721546900 100644 --- a/packages/web/pages/settings/api.tsx +++ b/packages/web/pages/settings/api.tsx @@ -28,7 +28,7 @@ export default function Api(): JSX.Element { const neverExpiresDate = new Date(8640000000000000) const defaultExpiresAt = 'Never' - applyStoredTheme(false) + applyStoredTheme() async function onDelete(id: string): Promise { const result = await revokeApiKeyMutation(id) diff --git a/packages/web/pages/settings/delete-my-account.tsx b/packages/web/pages/settings/delete-my-account.tsx index 250c76cc0..44682b4f4 100644 --- a/packages/web/pages/settings/delete-my-account.tsx +++ b/packages/web/pages/settings/delete-my-account.tsx @@ -20,7 +20,7 @@ export default function DeleteMyAccount(): JSX.Element { const viewer = useGetViewerQuery() const [showConfirm, setShowConfirm] = useState(false) - applyStoredTheme(false) + applyStoredTheme() async function deleteAccount(): Promise { const viewerId = viewer.viewerData?.me?.id diff --git a/packages/web/pages/settings/emails/index.tsx b/packages/web/pages/settings/emails/index.tsx index 266a33a6b..bb00659c3 100644 --- a/packages/web/pages/settings/emails/index.tsx +++ b/packages/web/pages/settings/emails/index.tsx @@ -81,11 +81,10 @@ function CopyTextButton(props: CopyTextButtonProps): JSX.Element { export default function EmailsPage(): JSX.Element { const { emailAddresses, revalidate, isValidating } = useGetNewsletterEmailsQuery() - const [confirmDeleteEmailId, setConfirmDeleteEmailId] = useState< - undefined | string - >(undefined) + const [confirmDeleteEmailId, setConfirmDeleteEmailId] = + useState(undefined) - applyStoredTheme(false) + applyStoredTheme() async function createEmail(): Promise { const email = await createNewsletterEmailMutation() @@ -114,143 +113,148 @@ export default function EmailsPage(): JSX.Element { return emailAddresses.sort((a, b) => a.createdAt.localeCompare(b.createdAt)) }, [emailAddresses]) - return <> - { - createEmail() - }, - }} - > - {sortedEmailAddresses.length > 0 ? ( - sortedEmailAddresses.map((email, i) => { - return ( - setConfirmDeleteEmailId(email.id)} - deleteTitle="Delete" - sublineElement={ - - {`created ${formattedShortDate(email.createdAt)}, `} - {`${email.subscriptionCount} subscriptions`} - - } - titleElement={ - - - - } - extraElement={ - email.confirmationCode ? ( - - <> - - {`Gmail: ${email.confirmationCode}`} - - - - - - - - - ) : ( - <> - ) - } - /> - ); - }) - ) : ( - - )} - + { + createEmail() }, }} > - - View recently received emails - - - + {sortedEmailAddresses.length > 0 ? ( + sortedEmailAddresses.map((email, i) => { + return ( + setConfirmDeleteEmailId(email.id)} + deleteTitle="Delete" + sublineElement={ + + {`created ${formattedShortDate(email.createdAt)}, `} + {`${email.subscriptionCount} subscriptions`} + + } + titleElement={ + + + + } + extraElement={ + email.confirmationCode ? ( + + <> + + {`Gmail: ${email.confirmationCode}`} + + + + + + + + + ) : ( + <> + ) + } + /> + ) + }) + ) : ( + + )} + + + View recently received emails + + + - {confirmDeleteEmailId ? ( - { - await deleteEmail(confirmDeleteEmailId) - setConfirmDeleteEmailId(undefined) - }} - onOpenChange={() => setConfirmDeleteEmailId(undefined)} - /> - ) : null} - ; + {confirmDeleteEmailId ? ( + { + await deleteEmail(confirmDeleteEmailId) + setConfirmDeleteEmailId(undefined) + }} + onOpenChange={() => setConfirmDeleteEmailId(undefined)} + /> + ) : null} + + ) } diff --git a/packages/web/pages/settings/emails/recent.tsx b/packages/web/pages/settings/emails/recent.tsx index 3a77c106e..4a4b119d6 100644 --- a/packages/web/pages/settings/emails/recent.tsx +++ b/packages/web/pages/settings/emails/recent.tsx @@ -152,15 +152,13 @@ const ViewRecentEmailModal = ( export default function RecentEmails(): JSX.Element { const { recentEmails, revalidate, isValidating } = useGetRecentEmailsQuery() - const [viewingEmailText, setViewingEmailText] = useState< - RecentEmail | undefined - >(undefined) + const [viewingEmailText, setViewingEmailText] = + useState(undefined) - const [viewingEmailHtml, setViewingEmailHtml] = useState< - RecentEmail | undefined - >(undefined) + const [viewingEmailHtml, setViewingEmailHtml] = + useState(undefined) - applyStoredTheme(false) + applyStoredTheme() const sortedRecentEmails = useMemo(() => { return recentEmails.sort((a, b) => b.createdAt.localeCompare(a.createdAt)) diff --git a/packages/web/pages/settings/feeds/index.tsx b/packages/web/pages/settings/feeds/index.tsx index 0935eda1d..540735174 100644 --- a/packages/web/pages/settings/feeds/index.tsx +++ b/packages/web/pages/settings/feeds/index.tsx @@ -99,7 +99,7 @@ export default function Rss(): JSX.Element { revalidate() } - applyStoredTheme(false) + applyStoredTheme() return ( ('') const [isCreateMode, setIsCreateMode] = useState(false) const [windowWidth, setWindowWidth] = useState(0) - const [confirmRemoveLabelId, setConfirmRemoveLabelId] = useState< - string | null - >(null) + const [confirmRemoveLabelId, setConfirmRemoveLabelId] = + useState(null) const [showLabelPageHelp, setShowLabelPageHelp] = usePersistedState({ key: `--settings-labels-show-help`, initialValue: true, }) const breakpoint = 768 - applyStoredTheme(false) + applyStoredTheme() const sortedLabels = useMemo(() => { return labels.sort((left: Label, right: Label) => diff --git a/packages/web/pages/settings/pinned-searches.tsx b/packages/web/pages/settings/pinned-searches.tsx index 08c50c0ad..b06f8cce9 100644 --- a/packages/web/pages/settings/pinned-searches.tsx +++ b/packages/web/pages/settings/pinned-searches.tsx @@ -139,7 +139,7 @@ export default function PinnedSearches(): JSX.Element { dispatchList({ type: 'RESET' }) }, []) - applyStoredTheme(false) + applyStoredTheme() return ( diff --git a/packages/web/pages/settings/rules.tsx b/packages/web/pages/settings/rules.tsx index 5da8d0315..dd0d52448 100644 --- a/packages/web/pages/settings/rules.tsx +++ b/packages/web/pages/settings/rules.tsx @@ -149,9 +149,8 @@ const CreateActionModal = (props: CreateActionModalProps): JSX.Element => { } } - const [actionType, setActionType] = useState( - undefined - ) + const [actionType, setActionType] = + useState(undefined) return ( ( - undefined - ) + const [createActionRule, setCreateActionRule] = + useState(undefined) const dataSource = useMemo(() => { return rules.map((rule: Rule) => { @@ -235,7 +233,7 @@ export default function Rules(): JSX.Element { }) }, [rules]) - applyStoredTheme(false) + applyStoredTheme() const deleteRule = useCallback( async (rule: Rule) => { diff --git a/packages/web/pages/settings/saved-searches.tsx b/packages/web/pages/settings/saved-searches.tsx index 0117c95cc..7c4de1e26 100644 --- a/packages/web/pages/settings/saved-searches.tsx +++ b/packages/web/pages/settings/saved-searches.tsx @@ -156,19 +156,19 @@ export default function SavedSearchesPage(): JSX.Element { const [editingId, setEditingId] = useState(null) const [isCreateMode, setIsCreateMode] = useState(false) const [windowWidth, setWindowWidth] = useState(0) - const [confirmRemoveSavedSearchId, setConfirmRemoveSavedSearchId] = useState< - string | null - >(null) + const [confirmRemoveSavedSearchId, setConfirmRemoveSavedSearchId] = + useState(null) const [draggedElementId, setDraggedElementId] = useState(null) - const [draggedElementPosition, setDraggedElementPosition] = useState<{ - x: number - y: number - } | null>(null) + const [draggedElementPosition, setDraggedElementPosition] = + useState<{ + x: number + y: number + } | null>(null) const [sortedSavedSearch, setSortedSavedSearch] = useState([]) // Some theming stuff here. const breakpoint = 768 - applyStoredTheme(false) + applyStoredTheme() useEffect(() => { setSortedSavedSearch( @@ -579,14 +579,15 @@ function GenericTableCard( editingId === savedSearch?.id || (isCreateMode && !savedSearch) const iconColor = isDarkTheme() ? '#D8D7D5' : '#5F5E58' const DEFAULT_STYLE = { position: null } - const [style, setStyle] = useState< - Partial<{ - position: string | null - top: string - left: string - maxWidth: string - }> - >(DEFAULT_STYLE) + const [style, setStyle] = + useState< + Partial<{ + position: string | null + top: string + left: string + maxWidth: string + }> + >(DEFAULT_STYLE) const handleEdit = () => { editingId && updateSavedSearch(editingId) setEditingId(null) diff --git a/packages/web/pages/settings/subscriptions.tsx b/packages/web/pages/settings/subscriptions.tsx index 95f48a7eb..d10b4453b 100644 --- a/packages/web/pages/settings/subscriptions.tsx +++ b/packages/web/pages/settings/subscriptions.tsx @@ -22,7 +22,7 @@ export default function SubscriptionsPage(): JSX.Element { const [confirmUnsubscribeSubscription, setConfirmUnsubscribeSubscription] = useState(null) - applyStoredTheme(false) + applyStoredTheme() async function onUnsubscribe(subscription: Subscription): Promise { const result = await unsubscribeMutation(subscription.name, subscription.id) @@ -86,7 +86,8 @@ export default function SubscriptionsPage(): JSX.Element { at{' '} + legacyBehavior + > {subscription.newsletterEmail} @@ -101,7 +102,7 @@ export default function SubscriptionsPage(): JSX.Element { } /> - ); + ) }) ) : ( - ); + ) } diff --git a/packages/web/pages/settings/webhooks.tsx b/packages/web/pages/settings/webhooks.tsx index 4171d5e4d..6db99dddf 100644 --- a/packages/web/pages/settings/webhooks.tsx +++ b/packages/web/pages/settings/webhooks.tsx @@ -65,7 +65,7 @@ export default function Webhooks(): JSX.Element { return rows }, [webhooks]) - applyStoredTheme(false) + applyStoredTheme() function validateEventTypes(eventTypes: WebhookEvent[]): boolean { if (eventTypes.length > 0) return true diff --git a/packages/web/pages/tools/bulk.tsx b/packages/web/pages/tools/bulk.tsx index ab74aed27..1229aa4bd 100644 --- a/packages/web/pages/tools/bulk.tsx +++ b/packages/web/pages/tools/bulk.tsx @@ -25,7 +25,7 @@ type RunningState = 'none' | 'confirming' | 'running' | 'completed' export default function BulkPerformer(): JSX.Element { const router = useRouter() - applyStoredTheme(false) + applyStoredTheme() const [action, setAction] = useState() const [query, setQuery] = useState('in:all') diff --git a/packages/web/pages/tools/import/file.tsx b/packages/web/pages/tools/import/file.tsx index 2ea4495d2..a68a5d641 100644 --- a/packages/web/pages/tools/import/file.tsx +++ b/packages/web/pages/tools/import/file.tsx @@ -17,7 +17,7 @@ import { validateCsvFile } from '../../../utils/csvValidator' type UploadState = 'none' | 'uploading' | 'completed' export default function ImportUploader(): JSX.Element { - applyStoredTheme(false) + applyStoredTheme() const [errorMessage, setErrorMessage] = useState() const [file, setFile] = useState() diff --git a/packages/web/pages/tools/import/matter-archive.tsx b/packages/web/pages/tools/import/matter-archive.tsx index 0262fc5de..fdd687cae 100644 --- a/packages/web/pages/tools/import/matter-archive.tsx +++ b/packages/web/pages/tools/import/matter-archive.tsx @@ -20,7 +20,7 @@ import { Tray } from 'phosphor-react' type UploadState = 'none' | 'uploading' | 'completed' export default function ImportUploader(): JSX.Element { - applyStoredTheme(false) + applyStoredTheme() const [errorMessage, setErrorMessage] = useState() const [uploadState, setUploadState] = useState('none')