diff --git a/packages/web/components/templates/homeFeed/HomeFeedContainer.tsx b/packages/web/components/templates/homeFeed/HomeFeedContainer.tsx index 5385d4417..5d5841fa1 100644 --- a/packages/web/components/templates/homeFeed/HomeFeedContainer.tsx +++ b/packages/web/components/templates/homeFeed/HomeFeedContainer.tsx @@ -288,7 +288,7 @@ export function HomeFeedContainer(): JSX.Element { if (username) { setActiveCardId(item.node.id) if (item.node.state === State.PROCESSING) { - router.push(`/${username}/links/${item.node.id}`) + router.push(`/${username}/links/${item.node.url}`) } else { const dl = item.node.pageType === PageType.HIGHLIGHTS diff --git a/packages/web/lib/networking/queries/useGetArticleSavingStatus.tsx b/packages/web/lib/networking/queries/useGetArticleSavingStatus.tsx index ff170293c..da09283eb 100644 --- a/packages/web/lib/networking/queries/useGetArticleSavingStatus.tsx +++ b/packages/web/lib/networking/queries/useGetArticleSavingStatus.tsx @@ -6,7 +6,7 @@ import { makeGqlFetcher } from '../networkHelpers' import { ArticleAttributes } from './useGetArticleQuery' type ArticleSavingStatusInput = { - id: string + url: string } type ArticleSavingStatusResponse = { @@ -48,11 +48,11 @@ type ArticleSavingStatusError = | 'unauthorized' export function useGetArticleSavingStatus({ - id, + url, }: ArticleSavingStatusInput): ArticleSavingStatusResponse { const query = gql` - query ArticleSavingRequest($id: ID!) { - articleSavingRequest(id: $id) { + query ArticleSavingRequest($url: String!) { + articleSavingRequest(url: $url) { ... on ArticleSavingRequestSuccess { articleSavingRequest { id @@ -85,7 +85,7 @@ export function useGetArticleSavingStatus({ ` // poll twice a second - const { data, error } = useSWR([query, id], makeGqlFetcher({ id }), { + const { data, error } = useSWR([query, url], makeGqlFetcher({ url }), { refreshInterval: 500, }) diff --git a/packages/web/pages/[username]/links/[id].tsx b/packages/web/pages/[username]/links/[url].tsx similarity index 91% rename from packages/web/pages/[username]/links/[id].tsx rename to packages/web/pages/[username]/links/[url].tsx index 3b7ca4109..1ad0d59b9 100644 --- a/packages/web/pages/[username]/links/[id].tsx +++ b/packages/web/pages/[username]/links/[url].tsx @@ -1,30 +1,29 @@ import { useRouter } from 'next/router' import { useEffect, useState } from 'react' -import { useGetArticleSavingStatus } from '../../../lib/networking/queries/useGetArticleSavingStatus' +import TopBarProgress from 'react-topbar-progress-indicator' +import { VStack } from '../../../components/elements/LayoutPrimitives' +import { ArticleActionsMenu } from '../../../components/templates/article/ArticleActionsMenu' +import { SkeletonArticleContainer } from '../../../components/templates/article/SkeletonArticleContainer' import { PrimaryLayout } from '../../../components/templates/PrimaryLayout' import { - Loader, - ErrorComponent, + ErrorComponent, Loader } from '../../../components/templates/SavingRequest' -import { ArticleActionsMenu } from '../../../components/templates/article/ArticleActionsMenu' -import { VStack } from '../../../components/elements/LayoutPrimitives' import { theme } from '../../../components/tokens/stitches.config' -import { applyStoredTheme } from '../../../lib/themeUpdater' import { useReaderSettings } from '../../../lib/hooks/useReaderSettings' -import { SkeletonArticleContainer } from '../../../components/templates/article/SkeletonArticleContainer' -import TopBarProgress from 'react-topbar-progress-indicator' +import { useGetArticleSavingStatus } from '../../../lib/networking/queries/useGetArticleSavingStatus' +import { applyStoredTheme } from '../../../lib/themeUpdater' export default function ArticleSavingRequestPage(): JSX.Element { const router = useRouter() const readerSettings = useReaderSettings() - const [articleId, setArticleId] = useState(undefined) + const [url, setUrl] = useState(undefined) applyStoredTheme(false) useEffect(() => { if (!router.isReady) return - setArticleId(router.query.id as string) - }, [router.isReady, router.query.id]) + setUrl(router.query.url as string) + }, [router.isReady, router.query.url]) return ( - {articleId ? : } + {url ? : } @@ -89,7 +88,7 @@ export default function ArticleSavingRequestPage(): JSX.Element { } type PrimaryContentProps = { - articleId: string + url: string } function PrimaryContent(props: PrimaryContentProps): JSX.Element { @@ -97,7 +96,7 @@ function PrimaryContent(props: PrimaryContentProps): JSX.Element { const [timedOut, setTimedOut] = useState(false) const { successRedirectPath, error } = useGetArticleSavingStatus({ - id: props.articleId, + url: props.url, }) useEffect(() => { diff --git a/packages/web/pages/app/[username]/link-request/[id].tsx b/packages/web/pages/app/[username]/link-request/[url].tsx similarity index 87% rename from packages/web/pages/app/[username]/link-request/[id].tsx rename to packages/web/pages/app/[username]/link-request/[url].tsx index 74ba9279c..b116b1de8 100644 --- a/packages/web/pages/app/[username]/link-request/[id].tsx +++ b/packages/web/pages/app/[username]/link-request/[url].tsx @@ -1,25 +1,25 @@ import { useRouter } from 'next/router' import { useEffect, useState } from 'react' -import { Box } from '../../../../components/elements/LayoutPrimitives' -import { useGetArticleSavingStatus } from '../../../../lib/networking/queries/useGetArticleSavingStatus' -import { ErrorComponent } from '../../../../components/templates/SavingRequest' import { useSWRConfig } from 'swr' -import { cacheArticle } from '../../../../lib/networking/queries/useGetArticleQuery' +import { Box } from '../../../../components/elements/LayoutPrimitives' import { PrimaryLayout } from '../../../../components/templates/PrimaryLayout' +import { ErrorComponent } from '../../../../components/templates/SavingRequest' +import { cacheArticle } from '../../../../lib/networking/queries/useGetArticleQuery' +import { useGetArticleSavingStatus } from '../../../../lib/networking/queries/useGetArticleSavingStatus' import { applyStoredTheme } from '../../../../lib/themeUpdater' export default function LinkRequestPage(): JSX.Element { applyStoredTheme(false) // false to skip server sync const router = useRouter() - const [requestID, setRequestID] = useState(undefined) + const [url, setUrl] = useState(undefined) const [username, setUsername] = useState(undefined) useEffect(() => { if (!router.isReady) return - setRequestID(router.query.id as string) + setUrl(router.query.url as string) setUsername(router.query.username as string) - }, [router.isReady, router.query.id, router.query.username]) + }, [router.isReady, router.query.url, router.query.username]) return ( - {requestID && username ? ( - + {url && username ? ( + ) : ( )} @@ -48,7 +48,7 @@ function Loader(): JSX.Element { } type PrimaryContentProps = { - requestID: string + url: string username: string } @@ -58,7 +58,7 @@ function PrimaryContent(props: PrimaryContentProps): JSX.Element { const [timedOut, setTimedOut] = useState(false) const { successRedirectPath, article, error } = useGetArticleSavingStatus({ - id: props.requestID, + url: props.url, }) useEffect(() => { diff --git a/packages/web/pages/article/sr/[id].tsx b/packages/web/pages/article/sr/[url].tsx similarity index 91% rename from packages/web/pages/article/sr/[id].tsx rename to packages/web/pages/article/sr/[url].tsx index 90ef594c8..1a5484c85 100644 --- a/packages/web/pages/article/sr/[id].tsx +++ b/packages/web/pages/article/sr/[url].tsx @@ -1,30 +1,29 @@ import { useRouter } from 'next/router' import { useEffect, useState } from 'react' -import { useGetArticleSavingStatus } from '../../../lib/networking/queries/useGetArticleSavingStatus' +import TopBarProgress from 'react-topbar-progress-indicator' +import { VStack } from '../../../components/elements/LayoutPrimitives' +import { ArticleActionsMenu } from '../../../components/templates/article/ArticleActionsMenu' +import { SkeletonArticleContainer } from '../../../components/templates/article/SkeletonArticleContainer' import { PrimaryLayout } from '../../../components/templates/PrimaryLayout' import { - Loader, - ErrorComponent, + ErrorComponent, Loader } from '../../../components/templates/SavingRequest' -import { ArticleActionsMenu } from '../../../components/templates/article/ArticleActionsMenu' -import { VStack } from '../../../components/elements/LayoutPrimitives' import { theme } from '../../../components/tokens/stitches.config' -import { applyStoredTheme } from '../../../lib/themeUpdater' import { useReaderSettings } from '../../../lib/hooks/useReaderSettings' -import { SkeletonArticleContainer } from '../../../components/templates/article/SkeletonArticleContainer' -import TopBarProgress from 'react-topbar-progress-indicator' +import { useGetArticleSavingStatus } from '../../../lib/networking/queries/useGetArticleSavingStatus' +import { applyStoredTheme } from '../../../lib/themeUpdater' export default function ArticleSavingRequestPage(): JSX.Element { const router = useRouter() const readerSettings = useReaderSettings() - const [articleId, setArticleId] = useState(undefined) + const [url, setUrl] = useState(undefined) applyStoredTheme(false) useEffect(() => { if (!router.isReady) return - setArticleId(router.query.id as string) - }, [router.isReady, router.query.id]) + setUrl(router.query.url as string) + }, [router.isReady, router.query.url]) return ( - {articleId ? : } + {url ? : } @@ -86,7 +85,7 @@ export default function ArticleSavingRequestPage(): JSX.Element { } type PrimaryContentProps = { - articleId: string + url: string } function PrimaryContent(props: PrimaryContentProps): JSX.Element { @@ -94,7 +93,7 @@ function PrimaryContent(props: PrimaryContentProps): JSX.Element { const [timedOut, setTimedOut] = useState(false) const { successRedirectPath, error } = useGetArticleSavingStatus({ - id: props.articleId, + url: props.url, }) useEffect(() => {