diff --git a/app/client/components/ui/color-mode.tsx b/app/client/components/ui/color-mode.tsx
index a34b968..b8231ef 100644
--- a/app/client/components/ui/color-mode.tsx
+++ b/app/client/components/ui/color-mode.tsx
@@ -1,67 +1,65 @@
-"use client"
+'use client';
-import type { IconButtonProps } from "@chakra-ui/react"
-import { ClientOnly, IconButton, Skeleton } from "@chakra-ui/react"
-import { ThemeProvider, useTheme } from "next-themes"
-import type { ThemeProviderProps } from "next-themes"
-import * as React from "react"
-import { LuMoon, LuSun } from "react-icons/lu"
+import type { IconButtonProps } from '@chakra-ui/react';
+import { ClientOnly, IconButton, Skeleton } from '@chakra-ui/react';
+import { ThemeProvider, useTheme } from 'next-themes';
+import type { ThemeProviderProps } from 'next-themes';
+import * as React from 'react';
+import { LuMoon, LuSun } from 'react-icons/lu';
export interface ColorModeProviderProps extends ThemeProviderProps {}
export function ColorModeProvider(props: ColorModeProviderProps) {
- return (
-
- )
+ return ;
}
export function useColorMode() {
- const { resolvedTheme, setTheme } = useTheme()
+ const { resolvedTheme, setTheme } = useTheme();
+ console.log(resolvedTheme);
const toggleColorMode = () => {
- setTheme(resolvedTheme === "light" ? "dark" : "light")
- }
+ setTheme(resolvedTheme === 'light' ? 'dark' : 'light');
+ };
return {
colorMode: resolvedTheme,
setColorMode: setTheme,
- toggleColorMode,
- }
+ toggleColorMode
+ };
}
export function useColorModeValue(light: T, dark: T) {
- const { colorMode } = useColorMode()
- return colorMode === "light" ? light : dark
+ const { colorMode } = useColorMode();
+ return colorMode === 'light' ? light : dark;
}
export function ColorModeIcon() {
- const { colorMode } = useColorMode()
- return colorMode === "light" ? :
+ const { colorMode } = useColorMode();
+ return colorMode === 'light' ? : ;
}
-interface ColorModeButtonProps extends Omit {}
+interface ColorModeButtonProps extends Omit {}
-export const ColorModeButton = React.forwardRef<
- HTMLButtonElement,
- ColorModeButtonProps
->(function ColorModeButton(props, ref) {
- const { toggleColorMode } = useColorMode()
- return (
- }>
-
-
-
-
- )
-})
+export const ColorModeButton = React.forwardRef(
+ function ColorModeButton(props, ref) {
+ const { toggleColorMode } = useColorMode();
+ return (
+ }>
+
+
+
+
+ );
+ }
+);
diff --git a/app/client/components/ui/provider.tsx b/app/client/components/ui/provider.tsx
index bd5636b..9a5fa9b 100644
--- a/app/client/components/ui/provider.tsx
+++ b/app/client/components/ui/provider.tsx
@@ -6,8 +6,9 @@ import { ColorModeProvider, type ColorModeProviderProps } from './color-mode';
export function Provider(props: ColorModeProviderProps) {
return (
-
- {props.children}
+
+ {props.children}
+
);
}
diff --git a/app/client/hooks/useIdentity.tsx b/app/client/hooks/identity.tsx
similarity index 100%
rename from app/client/hooks/useIdentity.tsx
rename to app/client/hooks/identity.tsx
diff --git a/app/client/pages/__root.tsx b/app/client/pages/__root.tsx
index c1e32de..cd1fc55 100644
--- a/app/client/pages/__root.tsx
+++ b/app/client/pages/__root.tsx
@@ -1,10 +1,12 @@
-import { Icon, Stack, Text } from '@chakra-ui/react';
+import { Separator, Icon, Menu, Stack, Text } from '@chakra-ui/react';
import { createRootRouteWithContext, Link, Outlet } from '@tanstack/react-router';
import React from 'react';
+import { Avatar } from '../components/ui/avatar';
import { Button } from '../components/ui/button';
import { Tooltip } from '../components/ui/tooltip';
import { useAuth } from '../hooks/auth';
import { appName } from '../main';
+import { ColorModeButton } from '../components/ui/color-mode';
const TanStackRouterDevtools =
process.env.NODE_ENV === 'production'
@@ -41,8 +43,47 @@ export const Route = createRootRouteWithContext()({
-
- {!isAuthenticated ? (
+
+
+
+ {isAuthenticated ? (
+
+
+
+
+
+
+ <>
+ logout()}>
+
+
+
+
+
+ Log out
+
+
+
+ >
+
+
+
+ ) : (
+ <>
+
+
+
+
+
+
+
+ >
+ )}
+
+ {/* {!isAuthenticated ? (
<>
@@ -57,10 +98,10 @@ export const Route = createRootRouteWithContext()({
- )}
+ )} */}
-
+
diff --git a/app/client/pages/login.tsx b/app/client/pages/login.tsx
index faad333..9952b53 100644
--- a/app/client/pages/login.tsx
+++ b/app/client/pages/login.tsx
@@ -1,10 +1,11 @@
-import { Heading, Input, Stack } from '@chakra-ui/react';
+import { Heading, Input, Stack, Text } from '@chakra-ui/react';
import { Button } from '@client/components/ui/button';
import { Field } from '@client/components/ui/field';
import { valibotResolver } from '@hookform/resolvers/valibot';
import { createFileRoute, redirect } from '@tanstack/react-router';
import { useForm } from 'react-hook-form';
import * as v from 'valibot';
+import { Link } from '../components/ui/link';
import { PasswordInput } from '../components/ui/password-input';
import { useAuth } from '../hooks/auth';
@@ -20,6 +21,12 @@ function LoginComponent() {
Login
+
+ Don't have an account?{' '}
+
+ Sign up
+
+
);
}
diff --git a/app/client/pages/register.tsx b/app/client/pages/register.tsx
index b137044..3e75ec2 100644
--- a/app/client/pages/register.tsx
+++ b/app/client/pages/register.tsx
@@ -1,5 +1,5 @@
import { gql } from '@apollo/client';
-import { Heading, Input, Stack } from '@chakra-ui/react';
+import { Heading, Input, Stack, Text } from '@chakra-ui/react';
import { Button } from '@client/components/ui/button';
import { Field } from '@client/components/ui/field';
import { PasswordInput } from '@client/components/ui/password-input';
@@ -8,6 +8,7 @@ import { valibotResolver } from '@hookform/resolvers/valibot';
import { createFileRoute, redirect, useNavigate } from '@tanstack/react-router';
import { useForm } from 'react-hook-form';
import * as v from 'valibot';
+import { Link } from '../components/ui/link';
import { useToastMutation } from '../hooks/useToastMutation';
export const Route = createFileRoute('/register')({
@@ -22,6 +23,12 @@ function RegisterComponent() {
Sign up
+
+ Already have an account?{' '}
+
+ Sign in
+
+
);
}