diff --git a/dashboard_js/.gitignore b/dashboard_js/.gitignore index 9b7c041..e3a1b25 100644 --- a/dashboard_js/.gitignore +++ b/dashboard_js/.gitignore @@ -4,3 +4,4 @@ # React Router /.react-router/ /build/ +.env.local diff --git a/dashboard_js/app/app.css b/dashboard_js/app/app.css index 1ba976e..e1ef018 100644 --- a/dashboard_js/app/app.css +++ b/dashboard_js/app/app.css @@ -1,8 +1,9 @@ -@import "tailwindcss"; +@import 'tailwindcss'; @theme { - --font-sans: "Roboto", ui-sans-serif, system-ui, sans-serif, - "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --font-sans: + 'Roboto', ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', + 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; --color-yellow-primary: #ffcf82; --color-yellow-secondary: #f2ebe1; @@ -14,6 +15,7 @@ --color-green-support: #c9fcad; --color-green-pastel: #f9fff6; --color-green-light: #cad9b4; + --color-green-dark: #4e8630; } html, diff --git a/dashboard_js/app/axios.js b/dashboard_js/app/axios.js new file mode 100644 index 0000000..1cfa2dd --- /dev/null +++ b/dashboard_js/app/axios.js @@ -0,0 +1,5 @@ +import axios from 'axios' + +export default axios.create({ + baseURL: import.meta.env.VITE_API_URL, +}) diff --git a/dashboard_js/app/components/menu.jsx b/dashboard_js/app/components/menu.jsx index b154822..e78a591 100644 --- a/dashboard_js/app/components/menu.jsx +++ b/dashboard_js/app/components/menu.jsx @@ -84,5 +84,5 @@ export function MenuItems({ children, className, ...props }) { } export function MenuSeparator() { - return
+ return
} diff --git a/dashboard_js/app/hooks/use-auth.jsx b/dashboard_js/app/hooks/use-auth.jsx index bb03f70..7e9929b 100644 --- a/dashboard_js/app/hooks/use-auth.jsx +++ b/dashboard_js/app/hooks/use-auth.jsx @@ -24,9 +24,13 @@ export function AuthProvider({ children }) { const [authUser, setAuthUser] = useState(null) useEffect(() => { - Auth.fetchUserAttributes().then((user) => { - setAuthUser(user) - }) + Auth.fetchUserAttributes() + .then((user) => { + setAuthUser(user) + }) + .catch(() => { + setAuthUser(null) + }) }, []) const signIn = useCallback(async ({ username, password }) => { diff --git a/dashboard_js/app/layouts/app/layout.jsx b/dashboard_js/app/layouts/app/layout.jsx index b31c66f..f6b9522 100644 --- a/dashboard_js/app/layouts/app/layout.jsx +++ b/dashboard_js/app/layouts/app/layout.jsx @@ -1,6 +1,13 @@ import { useNavigation, redirect, useNavigate } from 'react-router' import { fetchAuthSession } from 'aws-amplify/auth' -import { Link } from 'react-router' +import { + AcademicCapIcon, + PresentationChartLineIcon, + UserGroupIcon, + ShoppingBagIcon, + Bars3BottomLeftIcon, +} from '@heroicons/react/24/outline' +import { NavLink } from 'react-router' import { Outlet } from 'react-router' import { Container } from '~/components/container' import { Smallest, Regular } from '~/components/logo' @@ -21,24 +28,41 @@ export default function Layout() { return (
-