"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<string>( | |
localStorageKeys.huggingFaceOAuth, | |
defaultSettings.huggingFaceOAuth | |
) | |
const oauthResult = getValidOAuth(serializedHuggingFaceOAuth) | |
const setOAuthResult = (oauthResult: OAuthResult) => { | |
setSerializedHuggingFaceOAuth(JSON.stringify(oauthResult)) | |
} | |
return [oauthResult, setOAuthResult] | |
} |