Skip to content

Commit 32c9d29

Browse files
committed
No root loader if inside ErrorBoundary
1 parent 5e6dd2c commit 32c9d29

File tree

3 files changed

+13
-3
lines changed

3 files changed

+13
-3
lines changed

app/components/AuthButton.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ import { PiUserCircle, PiUserCircleFill } from "react-icons/pi";
33
import { RootLoaderData } from "~/types/RootLoaderData";
44

55
export function AuthButton() {
6-
const { user } = useRouteLoaderData<RootLoaderData>("root") as unknown as RootLoaderData;
6+
const rootData = useRouteLoaderData<RootLoaderData>("root") as unknown as RootLoaderData;
7+
8+
const user = rootData?.user;
79

810
let authImage:JSX.Element = <PiUserCircle title={"Not logged in"} />;
911
if (user) {

app/components/ColorSchemeToggle.tsx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,14 @@ function getColorScheme(defaultTheme?: "light" | "dark") {
2626
}
2727

2828
export function ColorSchemeToggle() {
29-
const { theme } = useRouteLoaderData<RootLoaderData>("root") as unknown as RootLoaderData;
29+
const rootData = useRouteLoaderData<RootLoaderData>("root") as unknown as RootLoaderData;
30+
const theme = rootData?.theme;
31+
32+
return theme ? <ColorSchemeToggleComponent theme={theme} /> : null;
33+
}
34+
35+
function ColorSchemeToggleComponent({ theme }: { theme: "light" | "dark"}) {
36+
3037
const [ currentScheme, setColorScheme ] = React.useState(getColorScheme(theme));
3138

3239
const onClick = (scheme: 'light' | 'dark' | 'auto') => {

app/routes/links.archive.$year._index.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import { authenticator } from "~/services/auth.server";
1010
import LinksTable from "~/components/LinksTable";
1111
import { PiArrowFatUpBold, PiCaretLeftBold, PiCaretRightBold } from "react-icons/pi";
1212
import { MIN_ARCHIVE_YEAR } from "~/util/constants";
13+
import { RootLoaderData } from "~/types/RootLoaderData";
1314

1415
export const meta: MetaFunction = ({ params }) => {
1516
return [
@@ -39,7 +40,7 @@ export async function loader({ request, params }: LoaderFunctionArgs) {
3940

4041
export default function Index() {
4142
const params = useParams();
42-
const user = useRouteLoaderData<User | null>("root");
43+
const { user } = useRouteLoaderData<RootLoaderData>("root") as unknown as RootLoaderData;
4344
const data = useLoaderData<typeof loader>();
4445

4546
const currentYear = new Date().getFullYear();

0 commit comments

Comments
 (0)