forked from RiseUP/riseup-squad18
- Avatar do paciente agora persiste após reload (adiciona timestamp para evitar cache) - Agendamento usa patient_id correto ao invés de user_id - Botão de download de PDF desbloqueado com logs detalhados
50 lines
1.5 KiB
TypeScript
50 lines
1.5 KiB
TypeScript
import { StrictMode } from "react";
|
|
import { createRoot } from "react-dom/client";
|
|
import "./index.css";
|
|
import App from "./App.tsx";
|
|
import { AuthProvider } from "./context/AuthContext";
|
|
|
|
// Apply accessibility preferences before React mounts to avoid FOUC and ensure persistence across reloads.
|
|
// This also helps E2E test detect classes after reload.
|
|
(() => {
|
|
try {
|
|
const raw = localStorage.getItem("accessibility-prefs");
|
|
if (!raw) return;
|
|
const prefs = JSON.parse(raw) as Partial<{
|
|
fontSize: number;
|
|
highContrast: boolean;
|
|
darkMode: boolean;
|
|
dyslexicFont: boolean;
|
|
lineSpacing: boolean;
|
|
reducedMotion: boolean;
|
|
lowBlueLight: boolean;
|
|
focusMode: boolean;
|
|
}>;
|
|
const root = document.documentElement;
|
|
if (typeof prefs.fontSize === "number") {
|
|
root.style.fontSize = `${prefs.fontSize}%`;
|
|
}
|
|
const toggle = (flag: boolean | undefined, cls: string) => {
|
|
if (flag) root.classList.add(cls);
|
|
else root.classList.remove(cls);
|
|
};
|
|
toggle(prefs.highContrast, "high-contrast");
|
|
toggle(prefs.darkMode, "dark");
|
|
toggle(prefs.dyslexicFont, "dyslexic-font");
|
|
toggle(prefs.lineSpacing, "line-spacing");
|
|
toggle(prefs.reducedMotion, "reduced-motion");
|
|
toggle(prefs.lowBlueLight, "low-blue-light");
|
|
toggle(prefs.focusMode, "focus-mode");
|
|
} catch {
|
|
/* ignore */
|
|
}
|
|
})();
|
|
|
|
createRoot(document.getElementById("root")!).render(
|
|
<StrictMode>
|
|
<AuthProvider>
|
|
<App />
|
|
</AuthProvider>
|
|
</StrictMode>
|
|
);
|