"use client"; import { useMemo } from "react"; import { Button } from "@/components/ui/button"; import { CopyBtnV2 } from "@/components/ui/copy-button"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Switch } from "@/components/ui/switch"; import { useClientConfig } from "@/lib/clientConfig"; import { api } from "@/lib/trpc"; import { Loader2, RotateCcw } from "lucide-react"; import { useTranslation } from "react-i18next"; export default function RssLink({ listId }: { listId: string }) { const { t } = useTranslation(); const clientConfig = useClientConfig(); const apiUtils = api.useUtils(); const { mutate: regenRssToken, isPending: isRegenPending } = api.lists.regenRssToken.useMutation({ onSuccess: () => { apiUtils.lists.getRssToken.invalidate({ listId }); }, }); const { mutate: clearRssToken, isPending: isClearPending } = api.lists.clearRssToken.useMutation({ onSuccess: () => { apiUtils.lists.getRssToken.invalidate({ listId }); }, }); const { data: rssToken, isLoading: isTokenLoading } = api.lists.getRssToken.useQuery({ listId }); const rssUrl = useMemo(() => { if (!rssToken || !rssToken.token) { return null; } return `${clientConfig.publicApiUrl}/v1/rss/lists/${listId}?token=${rssToken.token}`; }, [rssToken]); const rssEnabled = rssUrl !== null; return ( <> {/* RSS Feed Toggle */}
{t("lists.rss.description")}