"use client" import { useLocalStorage } from "usehooks-ts" import { OAuthResult } from "@huggingface/hub" import { defaultSettings } from "@/app/interface/settings-dialog/defaultSettings" import { localStorageKeys } from "@/app/interface/settings-dialog/localStorageKeys" import { getValidOAuth } from "./getValidOAuth" export function usePersistedOAuth(): [OAuthResult | undefined, (oauthResult: OAuthResult) => void] { const [serializedHuggingFaceOAuth, setSerializedHuggingFaceOAuth] = useLocalStorage( localStorageKeys.huggingFaceOAuth, defaultSettings.huggingFaceOAuth ) const oauthResult = getValidOAuth(serializedHuggingFaceOAuth) const setOAuthResult = (oauthResult: OAuthResult) => { setSerializedHuggingFaceOAuth(JSON.stringify(oauthResult)) } return [oauthResult, setOAuthResult] }