loading on stats

This commit is contained in:
cirroskais 2024-04-29 09:57:11 -04:00
parent 046521f116
commit 4ccbd13e0b
No known key found for this signature in database
GPG key ID: 36FBC361DF481862
3 changed files with 40 additions and 32 deletions

View file

@ -8,23 +8,24 @@ generator client {
} }
model User { model User {
id Int @id @default(autoincrement()) id Int @id @default(autoincrement())
username String @unique username String @unique
email String @unique email String @unique
password String password String
createdAt DateTime @default(now()) createdAt DateTime @default(now())
lastSeen DateTime @default(now()) lastSeen DateTime @default(now())
settings UserSettings? settings UserSettings?
// STORED AS MEGABYTES !! // STORED AS MEGABYTES !!
maxUpload Int @default(100) maxUploadMB Int @default(100)
uploads Upload[] uploads Upload[]
sessions Session[] sessions Session[]
} }
model Session { model Session {
id String @id @unique id String @id @unique
user User @relation(fields: [userId], references: [id]) user User @relation(fields: [userId], references: [id])
userId Int userId Int
authorized Boolean authorized Boolean
createdAt DateTime @default(now()) createdAt DateTime @default(now())
expiresAt DateTime expiresAt DateTime
@ -45,9 +46,8 @@ model UserSettings {
} }
model Upload { model Upload {
id String @id id String @id
uploader User @relation(fields: [uploaderId], references: [id])
uploader User @relation(fields: [uploaderId], references: [id])
uploaderId Int uploaderId Int
fileName String @unique fileName String @unique

View file

@ -1,7 +1,10 @@
/** @type {import("@sveltejs/kit").Load } */ /** @type {import("@sveltejs/kit").Load } */
export async function load({ fetch }) { export function load({ fetch }) {
const response = await fetch('/api/statistics'); const statistics = fetch('/api/statistics').then((response) => response.json());
const statistics = await response.json();
return { statistics }; return {
streamed: {
statistics
}
};
} }

View file

@ -6,6 +6,7 @@
import Button from '$lib/components/Inputs/Button.svelte'; import Button from '$lib/components/Inputs/Button.svelte';
import ButtonText from '$lib/components/Inputs/ButtonText.svelte'; import ButtonText from '$lib/components/Inputs/ButtonText.svelte';
import { fade } from 'svelte/transition';
export let data; export let data;
@ -30,18 +31,22 @@
<div class="bg-crust w-full mx-auto mb-auto p-2 rounded-lg shadow-lg"> <div class="bg-crust w-full mx-auto mb-auto p-2 rounded-lg shadow-lg">
<table class="table-auto w-full mx-auto text-sm"> <table class="table-auto w-full mx-auto text-sm">
<tbody> <tbody>
<tr> {#await data?.streamed?.statistics}
<td class="font-bold">Registered Users</td> <div class="h-[66px]"></div>
<td class="text-right">{data?.statistics?.users}</td> {:then statistics}
</tr> <tr in:fade={{ delay: 60 * 1 }}>
<tr> <td class="font-bold">Registered Users</td>
<td class="font-bold">Files Hosted</td> <td class="text-right">{statistics?.users}</td>
<td class="text-right">{data?.statistics?.files}</td> </tr>
</tr> <tr in:fade={{ delay: 60 * 2 }}>
<tr> <td class="font-bold">Files Hosted</td>
<td class="font-bold">File Storage</td> <td class="text-right">{statistics?.files}</td>
<td class="text-right">{data?.statistics?.storage}</td> </tr>
</tr> <tr in:fade={{ delay: 60 * 3 }}>
<td class="font-bold">File Storage</td>
<td class="text-right">{statistics?.storage}</td>
</tr>
{/await}
</tbody> </tbody>
</table> </table>
</div> </div>