mirror of
https://github.com/DorkSquadRR/DorkNet.git
synced 2026-10-26 07:28:45 -07:00
4edf25b2d5
Targets Rec Room 2020.12.18 client.
Re-import after adding:
- DorkNet.ClientMod/dorknet-clientmod.json.template — config schema
the launcher's manifest-driven patcher renders into UserData/.
- tools/build-patcher-zip.ps1 — produces the dorknet-clientpatch-{key}.zip
Release asset the launcher fetches.
- .github/workflows/release.yml — auto-publishes both Release assets
on v1-december-* tag push.
Scrubbed via maintainer-side scrub-for-public.ps1: same drop rules as
the prior import, plus build-patcher-zip.ps1 added to the tools/
allow-list so it survives the scrub.
14 lines
651 B
TypeScript
14 lines
651 B
TypeScript
import { useSyncExternalStore } from 'react';
|
|
import { Navigate, useLocation } from 'react-router-dom';
|
|
import { getToken, subscribeAuth } from '../lib/auth';
|
|
|
|
// Gate every authenticated route. We re-render on any auth state
|
|
// change so a 401 from `api()` (which clears the token and pings
|
|
// listeners) bounces the user out of the dashboard mid-session.
|
|
export function RequireAuth({ children }: { children: React.ReactNode }) {
|
|
const token = useSyncExternalStore(subscribeAuth, getToken, () => null);
|
|
const location = useLocation();
|
|
if (!token) return <Navigate to="/login" replace state={{ from: location }} />;
|
|
return <>{children}</>;
|
|
}
|