Switch session storage from sessionStorage to localStorage
sessionStorage is per-tab — new tabs had no session, so WebSocket didn't connect and real-time lock/booking sync didn't work. localStorage shares session across tabs in the same browser. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -13,7 +13,7 @@ const AuthContext = createContext<AuthContextValue | null>(null)
|
||||
|
||||
export function AuthProvider({ children }: { children: React.ReactNode }) {
|
||||
const [session, setSession] = useState<AuthSession | null>(() => {
|
||||
const stored = sessionStorage.getItem('hotelsync-session')
|
||||
const stored = localStorage.getItem('hotelsync-session')
|
||||
return stored ? JSON.parse(stored) : null
|
||||
})
|
||||
|
||||
@@ -22,7 +22,7 @@ export function AuthProvider({ children }: { children: React.ReactNode }) {
|
||||
const { access_token, user } = await api.auth.login(email, password)
|
||||
const s: AuthSession = { user, token: access_token }
|
||||
setSession(s)
|
||||
sessionStorage.setItem('hotelsync-session', JSON.stringify(s))
|
||||
localStorage.setItem('hotelsync-session', JSON.stringify(s))
|
||||
return user
|
||||
} catch (err) {
|
||||
if (err instanceof ApiError && err.status === 401) return null
|
||||
@@ -33,7 +33,7 @@ export function AuthProvider({ children }: { children: React.ReactNode }) {
|
||||
const logout = async () => {
|
||||
try { await api.auth.logout() } catch { /* ignore */ }
|
||||
setSession(null)
|
||||
sessionStorage.removeItem('hotelsync-session')
|
||||
localStorage.removeItem('hotelsync-session')
|
||||
}
|
||||
|
||||
return (
|
||||
|
||||
Reference in New Issue
Block a user