import { useState, useEffect } from "react" import { useNavigate } from "react-router-dom" export function requireAuthSync({ key = "username", redirectTo = "/login", replace = true } = {}) { const value = localStorage.getItem(key) if (!value) { if (replace) window.location.replace(redirectTo) else window.location.assign(redirectTo) return false } return true } // Default hook: ad vissza egy [value, setValue] párt, szinkronizálja localStorage-t és átirányít, ha nincs érték export default function useRequireAuth({ key = "username", redirectTo = "/login" } = {}) { const navigate = useNavigate() const [value, setValue] = useState(() => { try { return localStorage.getItem(key) } catch { return null } }) // Ha nincs érték, átirányítjuk (komponens mount-oláskor) useEffect(() => { if (!value) { navigate(redirectTo) } }, [navigate, value, redirectTo]) // Szinkronizáljuk a localStorage-t amikor a state változik useEffect(() => { try { if (value == null) localStorage.removeItem(key) else localStorage.setItem(key, value) } catch { // fail silently } }, [key, value]) return [value, setValue] }