Files
Dani Akash 290ee91a8b Add 'packages/browseros-agent/' from commit '90bd4be3008285bf3825aad3702aff98f872671a'
git-subtree-dir: packages/browseros-agent
git-subtree-mainline: 8f148d0918
git-subtree-split: 90bd4be300
2026-03-13 21:22:09 +05:30

38 lines
896 B
TypeScript

import { storage } from '@wxt-dev/storage'
import type { Session, User } from 'better-auth/types'
import { useEffect, useState } from 'react'
interface SessionInfo {
session?: Session
user?: User
}
export const sessionStorage = storage.defineItem<SessionInfo>(
'local:sessionInfo',
{
fallback: {},
},
)
export const useSessionInfo = () => {
const [sessionInfo, setSessionInfo] = useState<SessionInfo>({})
const [isLoading, setIsLoading] = useState(true)
useEffect(() => {
sessionStorage.getValue().then((value) => {
setSessionInfo(value)
setIsLoading(false)
})
const unwatch = sessionStorage.watch((newValue) => {
setSessionInfo(newValue ?? {})
})
return unwatch
}, [])
const updateSessionInfo = async (info: SessionInfo) => {
await sessionStorage.setValue(info)
}
return { sessionInfo, isLoading, updateSessionInfo }
}