"use client" import { useQuery } from "@tanstack/react-query" import { createSupabaseBrowserClient } from "@/lib/supabase/client" import { queryKeys } from "./query-keys" import type { CustomFeed } from "@/lib/types/custom-feed" interface CustomFeedRow { id: string name: string query: string match_mode: string source_folder_id: string | null position: number icon_url: string | null } export function useCustomFeeds() { const supabaseClient = createSupabaseBrowserClient() return useQuery({ queryKey: queryKeys.customFeeds.all, queryFn: async () => { const { data: { user }, } = await supabaseClient.auth.getUser() if (!user) throw new Error("not authenticated") const { data, error } = await supabaseClient .from("custom_feeds") .select("id, name, query, match_mode, source_folder_id, position, icon_url") .eq("user_id", user.id) .order("position") if (error) throw error return ((data as CustomFeedRow[]) ?? []).map( (row): CustomFeed => ({ identifier: row.id, name: row.name, query: row.query, matchMode: row.match_mode as "and" | "or", sourceFolderIdentifier: row.source_folder_id, position: row.position, iconUrl: row.icon_url, }) ) }, }) }