mirror of
https://github.com/khairul169/home-lab.git
synced 2025-04-28 16:49:36 +07:00
48 lines
1.4 KiB
TypeScript
48 lines
1.4 KiB
TypeScript
import React from "react";
|
|
import api from "@/lib/api";
|
|
import { useQuery } from "react-query";
|
|
import Text from "@ui/Text";
|
|
import Performance from "../components/pages/home/Performance";
|
|
import Summary from "../components/pages/home/Summary";
|
|
import Storage from "../components/pages/home/Storage";
|
|
import Container from "@ui/Container";
|
|
import { useAuth } from "@/stores/authStore";
|
|
import { HStack } from "@ui/Stack";
|
|
import Box from "@ui/Box";
|
|
import Apps from "../components/pages/home/Apps";
|
|
import { Stack } from "expo-router";
|
|
|
|
const HomePage = () => {
|
|
const { isLoggedIn } = useAuth();
|
|
const { data: system } = useQuery({
|
|
queryKey: ["system"],
|
|
queryFn: () => api.system.$get().then((r) => r.json()),
|
|
refetchInterval: 1000,
|
|
enabled: isLoggedIn,
|
|
});
|
|
|
|
if (!isLoggedIn) {
|
|
return null;
|
|
}
|
|
|
|
return (
|
|
<Container scrollable className="px-4 md:px-8 max-w-none py-8">
|
|
<Stack.Screen options={{ headerShown: false, title: "Home Lab" }} />
|
|
|
|
<HStack className="items-start gap-8">
|
|
<Box className="flex-1 md:max-w-lg">
|
|
<Text className="text-2xl font-medium">Home Lab</Text>
|
|
<Summary data={system} />
|
|
<Apps className="md:hidden mt-6" />
|
|
<Performance data={system} />
|
|
<Storage data={system} />
|
|
</Box>
|
|
|
|
<Apps className="hidden md:flex md:flex-col md:flex-1" />
|
|
</HStack>
|
|
</Container>
|
|
);
|
|
};
|
|
|
|
export default HomePage;
|