diff --git a/src/components/DashboardCard.tsx b/src/components/DashboardCard.tsx index 5135edc09..2b099b2a0 100644 --- a/src/components/DashboardCard.tsx +++ b/src/components/DashboardCard.tsx @@ -9,7 +9,7 @@ export default function DashboardCard({ }) { return (
{children}
diff --git a/src/components/DashboardLayout/InstanceViewLayout.tsx b/src/components/DashboardLayout/InstanceViewLayout.tsx index 2468b91c7..dc88e6a3f 100644 --- a/src/components/DashboardLayout/InstanceViewLayout.tsx +++ b/src/components/DashboardLayout/InstanceViewLayout.tsx @@ -28,7 +28,7 @@ export const InstanceViewLayout = () => { if (queryInstanceId && instances && queryInstanceId in instances) { setInstanceState(instances[queryInstanceId]); if (!location.pathname.startsWith('/dashboard')) - setPathname('/dashboard/overview'); + setPathname('/dashboard/console'); } else { setInstanceState(undefined); if (location.pathname.startsWith('/dashboard')) setPathname('/'); @@ -44,7 +44,7 @@ export const InstanceViewLayout = () => { } else { setInstanceState(instance); setQueryInstanceId(instance.uuid); - setPathname('/dashboard/overview'); + setPathname('/dashboard/console'); } } /* End Instances */ diff --git a/src/components/DashboardLayout/Spinner.tsx b/src/components/DashboardLayout/Spinner.tsx new file mode 100644 index 000000000..288374f80 --- /dev/null +++ b/src/components/DashboardLayout/Spinner.tsx @@ -0,0 +1,18 @@ +import React from 'react'; + +const Spinner = () => { + return ( +
+
+
+
+
+ ); +}; + +export default Spinner; diff --git a/src/pages/InstanceTabs/InstanceTabs.tsx b/src/pages/InstanceTabs/InstanceTabs.tsx index 9e49ded66..319662c1c 100644 --- a/src/pages/InstanceTabs/InstanceTabs.tsx +++ b/src/pages/InstanceTabs/InstanceTabs.tsx @@ -5,6 +5,7 @@ import { useLocation } from 'react-router-dom'; import InstanceTabListMap from '../../data/InstanceTabListMap'; import Label from 'components/Atoms/Label'; import { stateToLabelColor } from 'utils/util'; +import Spinner from 'components/DashboardLayout/Spinner'; const InstanceTabs = () => { useDocumentTitle('Dashboard - Lodestone'); const location = useLocation(); @@ -25,18 +26,7 @@ const InstanceTabs = () => { if (!instance || !uuid) { if (loading) { - return ( -
-
-
-
-
- ); + return ; } else { return (
{ (tab) => tab.path === path && (
diff --git a/src/pages/home.tsx b/src/pages/home.tsx index 1852a9c01..450f350de 100644 --- a/src/pages/home.tsx +++ b/src/pages/home.tsx @@ -1,8 +1,13 @@ import axios from 'axios'; +import { useEffect, useState } from 'react'; import DashboardCard from 'components/DashboardCard'; import PerformanceGraph from 'components/Graphs/PerformanceGraph'; import { useDocumentTitle } from 'usehooks-ts'; import { round } from 'utils/util'; +import { useUserInfo } from 'data/UserInfo'; +import { LodestoneContext } from 'data/LodestoneContext'; +import { useContext } from 'react'; +import Spinner from 'components/DashboardLayout/Spinner'; type CpuUsageReply = { cpu_speed: number; @@ -32,22 +37,45 @@ const getRamUsage = async (): Promise<[number, number]> => { }; const Home = () => { + const { token } = useContext(LodestoneContext); + const { isLoading, isError, data: user } = useUserInfo(); + useDocumentTitle('Home - Lodestone'); + + const [loading, setLoading] = useState(true); + + useEffect(() => { + //give time for user to load + setTimeout(() => { + setLoading(false); + }, 1000); + }, []); + + if (loading && isLoading) { + return ; + } + return ( // used to possibly center the content -
+
{/* main content container */}

- Home + {`Welcome, ${ + token && !isLoading && !isError && user + ? `${user.username}` + : 'Guest' + }!`}

-

Display some general information here maybe

+

+ {' '} + Select or create an instance to continue. +

-

Performance

-
+
{