From 370db0827a07253dc038d7930d5e032ebb33b5ec Mon Sep 17 00:00:00 2001 From: Mohamed Bassem Date: Sat, 10 May 2025 18:59:04 +0000 Subject: feat: Allow enabling/disabling RSS feeds --- apps/web/components/settings/FeedSettings.tsx | 65 ++++++++++++++++++++------- 1 file changed, 48 insertions(+), 17 deletions(-) (limited to 'apps/web/components/settings/FeedSettings.tsx') diff --git a/apps/web/components/settings/FeedSettings.tsx b/apps/web/components/settings/FeedSettings.tsx index ff8590c9..438ec760 100644 --- a/apps/web/components/settings/FeedSettings.tsx +++ b/apps/web/components/settings/FeedSettings.tsx @@ -13,6 +13,7 @@ import { } from "@/components/ui/form"; import { FullPageSpinner } from "@/components/ui/full-page-spinner"; import { Input } from "@/components/ui/input"; +import { Switch } from "@/components/ui/switch"; import { toast } from "@/components/ui/use-toast"; import { useTranslation } from "@/lib/i18n/client"; import { api } from "@/lib/trpc"; @@ -70,6 +71,7 @@ export function FeedsEditorDialog() { defaultValues: { name: "", url: "", + enabled: true, }, }); @@ -199,12 +201,16 @@ export function EditFeedDialog({ feed }: { feed: ZFeed }) { }); return ( - - - + + + + + + + {t("actions.edit")} + Edit Feed @@ -309,6 +315,27 @@ export function FeedRow({ feed }: { feed: ZFeed }) { }, }); + const { mutate: updateFeedEnabled } = api.feeds.update.useMutation({ + onSuccess: () => { + toast({ + description: feed.enabled + ? t("settings.feeds.feed_disabled") + : t("settings.feeds.feed_enabled"), + }); + apiUtils.feeds.list.invalidate(); + }, + onError: (error) => { + toast({ + description: `Error: ${error.message}`, + variant: "destructive", + }); + }, + }); + + const handleToggle = (checked: boolean) => { + updateFeedEnabled({ feedId: feed.id, enabled: checked }); + }; + return ( @@ -337,16 +364,21 @@ export function FeedRow({ feed }: { feed: ZFeed }) { )} + - fetchNow({ feedId: feed.id })} - > - - {t("actions.fetch_now")} - + + + fetchNow({ feedId: feed.id })} + > + + + + {t("actions.fetch_now")} + -- cgit v1.2.3-70-g09d2