feat(frontend): useAuth /auth/me, videos list + locked flag, VITE_API_URL
This commit is contained in:
@@ -5,6 +5,7 @@ export interface User {
|
||||
id: number;
|
||||
email: string;
|
||||
nickname: string;
|
||||
subscriptionLevel?: number;
|
||||
}
|
||||
|
||||
interface AuthState {
|
||||
@@ -12,6 +13,11 @@ interface AuthState {
|
||||
loading: boolean;
|
||||
}
|
||||
|
||||
interface MeResponse {
|
||||
success: boolean;
|
||||
data: { user: User };
|
||||
}
|
||||
|
||||
export function useAuth(): AuthState {
|
||||
const [user, setUser] = useState<User | null>(null);
|
||||
const [loading, setLoading] = useState(true);
|
||||
@@ -19,8 +25,8 @@ export function useAuth(): AuthState {
|
||||
useEffect(() => {
|
||||
let cancelled = false;
|
||||
|
||||
apiFetch<User>('/profile')
|
||||
.then((u) => { if (!cancelled) setUser(u); })
|
||||
apiFetch<MeResponse>('/auth/me')
|
||||
.then((res) => { if (!cancelled) setUser(res.data.user); })
|
||||
.catch(() => { if (!cancelled) setUser(null); })
|
||||
.finally(() => { if (!cancelled) setLoading(false); });
|
||||
|
||||
|
||||
Reference in New Issue
Block a user