From 39b2cc62eba56de1c49ed2e17ad91f5f295bea7e Mon Sep 17 00:00:00 2001 From: seriousm4x Date: Wed, 26 Jul 2023 11:17:01 +0200 Subject: [PATCH] improve ts --- frontend/src/lib/types/device.ts | 20 +++++++++++++++++++- frontend/src/lib/types/settings.ts | 6 ++++-- frontend/src/routes/+layout.svelte | 10 +++------- frontend/src/routes/+page.svelte | 4 ++-- 4 files changed, 28 insertions(+), 12 deletions(-) diff --git a/frontend/src/lib/types/device.ts b/frontend/src/lib/types/device.ts index 7f9dcb2d..f2d82dca 100644 --- a/frontend/src/lib/types/device.ts +++ b/frontend/src/lib/types/device.ts @@ -1,8 +1,22 @@ import type { Record } from 'pocketbase'; export type Device = Record & { + name: string; + ip: string; + mac: string; + netmask: string; + status: string; + ports: string[]; + link: URL; + wake_cron: string; + wake_cron_enabled: boolean; + shutdown_cron: string; + shutdown_cron_enabled: boolean; + shutdown_cmd: string; + password: string; + groups: Group[]; expand: { - ports: Record[]; + ports: Port[]; }; }; @@ -10,3 +24,7 @@ export type Port = Record & { name: string; number: number; }; + +export type Group = Record & { + name: string; +}; diff --git a/frontend/src/lib/types/settings.ts b/frontend/src/lib/types/settings.ts index dc9a1876..13f47d7d 100644 --- a/frontend/src/lib/types/settings.ts +++ b/frontend/src/lib/types/settings.ts @@ -1,11 +1,13 @@ -export type SettingsPublic = { +import type { Record } from 'pocketbase'; + +export type SettingsPublic = Record & { collectionId: string; favicon: string; setup_completed: boolean; website_title: string; }; -export type SettingsPrivate = { +export type SettingsPrivate = Record & { interval: number; scan_range: string; }; diff --git a/frontend/src/routes/+layout.svelte b/frontend/src/routes/+layout.svelte index ac89d84b..1cd4d521 100644 --- a/frontend/src/routes/+layout.svelte +++ b/frontend/src/routes/+layout.svelte @@ -8,21 +8,17 @@ import Navbar from '$lib/components/Navbar.svelte'; import Transition from '$lib/components/Transition.svelte'; import type { Device } from '$lib/types/device'; + import type { SettingsPublic } from '$lib/types/settings'; onMount(async () => { // set settingsPub store on load if (!$settingsPub) { const res = await $pocketbase.collection('settings_public').getList(1, 1); - settingsPub.set({ - collectionId: res.items[0].collectionId, - favicon: res.items[0].favicon, - setup_completed: res.items[0].setup_completed, - website_title: res.items[0].website_title - }); + settingsPub.set(res.items[0] as SettingsPublic); } // redirect to welcome page if setup is not completed - if (!$settingsPub?.setup_completed && $page.url.pathname !== '/welcome') { + if (!$settingsPub.setup_completed && $page.url.pathname !== '/welcome') { goto('/welcome'); return; } diff --git a/frontend/src/routes/+page.svelte b/frontend/src/routes/+page.svelte index a2df04b0..7f51ff15 100644 --- a/frontend/src/routes/+page.svelte +++ b/frontend/src/routes/+page.svelte @@ -1,8 +1,8 @@