summaryrefslogtreecommitdiff
path: root/apps/web/lib/queries/use-subscription-mutations.ts
diff options
context:
space:
mode:
authorFuwn <[email protected]>2026-02-09 21:12:16 -0800
committerFuwn <[email protected]>2026-02-09 21:12:16 -0800
commit3c0b53ccbe40a75d6105f0e22c43a9f46975d9c1 (patch)
tree7289ba4e663ed388f0effc9462d845c9120cc785 /apps/web/lib/queries/use-subscription-mutations.ts
parentfix: elevate to AAL2 before password/email change when MFA is enabled (diff)
downloadasa.news-3c0b53ccbe40a75d6105f0e22c43a9f46975d9c1.tar.xz
asa.news-3c0b53ccbe40a75d6105f0e22c43a9f46975d9c1.zip
feat: add per-feed "hide from timeline" option
Diffstat (limited to 'apps/web/lib/queries/use-subscription-mutations.ts')
-rw-r--r--apps/web/lib/queries/use-subscription-mutations.ts30
1 files changed, 30 insertions, 0 deletions
diff --git a/apps/web/lib/queries/use-subscription-mutations.ts b/apps/web/lib/queries/use-subscription-mutations.ts
index ca52bd2..1570167 100644
--- a/apps/web/lib/queries/use-subscription-mutations.ts
+++ b/apps/web/lib/queries/use-subscription-mutations.ts
@@ -5,6 +5,36 @@ import { createSupabaseBrowserClient } from "@/lib/supabase/client"
import { queryKeys } from "./query-keys"
import { notify } from "@/lib/notify"
+export function useUpdateSubscriptionHiddenFromTimeline() {
+ const supabaseClient = createSupabaseBrowserClient()
+ const queryClient = useQueryClient()
+
+ return useMutation({
+ mutationFn: async ({
+ subscriptionIdentifier,
+ hiddenFromTimeline,
+ }: {
+ subscriptionIdentifier: string
+ hiddenFromTimeline: boolean
+ }) => {
+ const { error } = await supabaseClient
+ .from("subscriptions")
+ .update({ hidden_from_timeline: hiddenFromTimeline })
+ .eq("id", subscriptionIdentifier)
+
+ if (error) throw error
+ },
+ onSuccess: (_data, variables) => {
+ queryClient.invalidateQueries({ queryKey: queryKeys.subscriptions.all })
+ queryClient.invalidateQueries({ queryKey: queryKeys.timeline.all })
+ notify(variables.hiddenFromTimeline ? "feed hidden from timeline" : "feed visible in timeline")
+ },
+ onError: (error: Error) => {
+ notify("failed to update visibility: " + error.message)
+ },
+ })
+}
+
export function useUpdateSubscriptionTitle() {
const supabaseClient = createSupabaseBrowserClient()
const queryClient = useQueryClient()