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 }) {
|
export function AuthProvider({ children }: { children: React.ReactNode }) {
|
||||||
const [session, setSession] = useState<AuthSession | null>(() => {
|
const [session, setSession] = useState<AuthSession | null>(() => {
|
||||||
const stored = sessionStorage.getItem('hotelsync-session')
|
const stored = localStorage.getItem('hotelsync-session')
|
||||||
return stored ? JSON.parse(stored) : null
|
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 { access_token, user } = await api.auth.login(email, password)
|
||||||
const s: AuthSession = { user, token: access_token }
|
const s: AuthSession = { user, token: access_token }
|
||||||
setSession(s)
|
setSession(s)
|
||||||
sessionStorage.setItem('hotelsync-session', JSON.stringify(s))
|
localStorage.setItem('hotelsync-session', JSON.stringify(s))
|
||||||
return user
|
return user
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
if (err instanceof ApiError && err.status === 401) return null
|
if (err instanceof ApiError && err.status === 401) return null
|
||||||
@@ -33,7 +33,7 @@ export function AuthProvider({ children }: { children: React.ReactNode }) {
|
|||||||
const logout = async () => {
|
const logout = async () => {
|
||||||
try { await api.auth.logout() } catch { /* ignore */ }
|
try { await api.auth.logout() } catch { /* ignore */ }
|
||||||
setSession(null)
|
setSession(null)
|
||||||
sessionStorage.removeItem('hotelsync-session')
|
localStorage.removeItem('hotelsync-session')
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
Reference in New Issue
Block a user