diff --git a/packages/web/lib/networking/queries/useGetSubscriptionsQuery.tsx b/packages/web/lib/networking/queries/useGetSubscriptionsQuery.tsx index d4afc71aa..d24275dd6 100644 --- a/packages/web/lib/networking/queries/useGetSubscriptionsQuery.tsx +++ b/packages/web/lib/networking/queries/useGetSubscriptionsQuery.tsx @@ -33,7 +33,17 @@ export type Subscription = { failedAt?: string fetchContentType?: FetchContentType -} +} & ( + | { + type: SubscriptionType.NEWSLETTER + unsubscribeMailTo?: string + unsubscribeHttpUrl?: string + } + | { + type: SubscriptionType.RSS + url: string + } +) type SubscriptionsQueryResponse = { error: any diff --git a/packages/web/pages/settings/feeds/index.tsx b/packages/web/pages/settings/feeds/index.tsx index ebdcb860f..e8b4bd58c 100644 --- a/packages/web/pages/settings/feeds/index.tsx +++ b/packages/web/pages/settings/feeds/index.tsx @@ -1,5 +1,5 @@ -import { useRouter } from 'next/router' import { FloppyDisk, Pencil, XCircle } from '@phosphor-icons/react' +import { useRouter } from 'next/router' import { useMemo, useState } from 'react' import { FormInput } from '../../../components/elements/FormElements' import { @@ -22,6 +22,7 @@ import { } from '../../../lib/networking/mutations/updateSubscriptionMutation' import { FetchContentType, + Subscription, SubscriptionStatus, SubscriptionType, useGetSubscriptionsQuery, @@ -32,9 +33,13 @@ import { formatMessage } from '../../../locales/en/messages' export default function Rss(): JSX.Element { const router = useRouter() - const { subscriptions, revalidate, isValidating } = useGetSubscriptionsQuery( + const subscriptionsResponse = useGetSubscriptionsQuery( SubscriptionType.RSS ) + const subscriptions = subscriptionsResponse.subscriptions as Array< + Subscription & { type: SubscriptionType.RSS } + > + const { isValidating, revalidate } = subscriptionsResponse const [onDeleteId, setOnDeleteId] = useState('') const [onEditId, setOnEditId] = useState('') const [onEditName, setOnEditName] = useState('') @@ -266,7 +271,11 @@ export default function Rss(): JSX.Element { } onClick={() => { - router.push(`/home?q=in:inbox rss:"${subscription.url}"`) + router.push( + `/search?q=in:inbox rss:"${encodeURIComponent( + subscription.url + )}"` + ) }} // extraElement={ // { ? `subscription:\"${escapeQuotes( subscription.name )}\"` - : `rss:\"${subscription.url}\"`, + : `rss:\"${encodeURIComponent(subscription.url)}\"`, } if (checked) { props.dispatchList({