"use client"; import { useMemo } from "react"; import useSWR from "swr"; import { updateChatVisibility } from "@/app/(chat)/actions"; import type { VisibilityType } from "@/components/visibility-selector"; export function useChatVisibility({ chatId, initialVisibilityType, }: { chatId: string; initialVisibilityType: VisibilityType; }) { const { data: localVisibility, mutate: setLocalVisibility } = useSWR( `${chatId}-visibility`, null, { fallbackData: initialVisibilityType, } ); const visibilityType = useMemo(() => { return localVisibility; }, [localVisibility]); const setVisibilityType = (updatedVisibilityType: VisibilityType) => { setLocalVisibility(updatedVisibilityType); updateChatVisibility({ chatId, visibility: updatedVisibilityType, }); }; return { visibilityType, setVisibilityType }; }