Files
ai-solver-test/app/contexts/AuthContext.tsx
AI Agent ab88c56320
All checks were successful
Bun CI/CD / test (pull_request) Successful in 9s
Bun CI/CD / deploy-staging (pull_request) Has been skipped
Bun CI/CD / deploy-prod (pull_request) Has been skipped
fix: resolve #8 - сделай новую страницу
2026-01-03 19:14:33 +00:00

57 lines
1.4 KiB
TypeScript

'use client'
import React, { createContext, useContext, useState } from 'react'
interface User {
username: string
}
interface AuthContextType {
user: User | null
login: (username: string, password: string) => boolean
logout: () => void
isAuthenticated: boolean
}
const AuthContext = createContext<AuthContextType | undefined>(undefined)
export function AuthProvider({ children }: { children: React.ReactNode }) {
const [user, setUser] = useState<User | null>(() => {
if (typeof window !== 'undefined') {
const savedUser = localStorage.getItem('user')
return savedUser ? JSON.parse(savedUser) : null
}
return null
})
const login = (username: string, password: string): boolean => {
if (username === 'admin' && password === 'Mallory122907Fucku2u2') {
const userData = { username }
setUser(userData)
localStorage.setItem('user', JSON.stringify(userData))
return true
}
return false
}
const logout = () => {
setUser(null)
localStorage.removeItem('user')
}
const isAuthenticated = !!user
return (
<AuthContext.Provider value={{ user, login, logout, isAuthenticated }}>
{children}
</AuthContext.Provider>
)
}
export function useAuth() {
const context = useContext(AuthContext)
if (context === undefined) {
throw new Error('useAuth must be used within an AuthProvider')
}
return context
}