diff --git a/frontend/README.md b/frontend/README.md
deleted file mode 100644
index bd0780d..0000000
--- a/frontend/README.md
+++ /dev/null
@@ -1,65 +0,0 @@
-# Svelte + TS + Vite
-
-This template should help get you started developing with Svelte and TypeScript in Vite.
-
-## Recommended IDE Setup
-
-[VS Code](https://code.visualstudio.com/)
-
-+ [Svelte](https://marketplace.visualstudio.com/items?itemName=svelte.svelte-vscode).
-
-## Need an official Svelte framework?
-
-Check out [SvelteKit](https://github.com/sveltejs/kit#readme), which is also powered by Vite. Deploy anywhere with its
-serverless-first approach and adapt to various platforms, with out of the box support for TypeScript, SCSS, and Less,
-and easily-added support for mdsvex, GraphQL, PostCSS, Tailwind CSS, and more.
-
-## Technical considerations
-
-**Why use this over SvelteKit?**
-
-- It brings its own routing solution which might not be preferable for some users.
-- It is first and foremost a framework that just happens to use Vite under the hood, not a Vite app.
- `vite dev` and `vite build` wouldn't work in a SvelteKit environment, for example.
-
-This template contains as little as possible to get started with Vite + TypeScript + Svelte, while taking into account
-the developer experience with regards to HMR and intellisense. It demonstrates capabilities on par with the
-other `create-vite` templates and is a good starting point for beginners dipping their toes into a Vite + Svelte
-project.
-
-Should you later need the extended capabilities and extensibility provided by SvelteKit, the template has been
-structured similarly to SvelteKit so that it is easy to migrate.
-
-**Why `global.d.ts` instead of `compilerOptions.types` inside `jsconfig.json` or `tsconfig.json`?**
-
-Setting `compilerOptions.types` shuts out all other types not explicitly listed in the configuration. Using triple-slash
-references keeps the default TypeScript setting of accepting type information from the entire workspace, while also
-adding `svelte` and `vite/client` type information.
-
-**Why include `.vscode/extensions.json`?**
-
-Other templates indirectly recommend extensions via the README, but this file allows VS Code to prompt the user to
-install the recommended extension upon opening the project.
-
-**Why enable `allowJs` in the TS template?**
-
-While `allowJs: false` would indeed prevent the use of `.js` files in the project, it does not prevent the use of
-JavaScript syntax in `.svelte` files. In addition, it would force `checkJs: false`, bringing the worst of both worlds:
-not being able to guarantee the entire codebase is TypeScript, and also having worse typechecking for the existing
-JavaScript. In addition, there are valid use cases in which a mixed codebase may be relevant.
-
-**Why is HMR not preserving my local component state?**
-
-HMR state preservation comes with a number of gotchas! It has been disabled by default in both `svelte-hmr`
-and `@sveltejs/vite-plugin-svelte` due to its often surprising behavior. You can read the
-details [here](https://github.com/rixo/svelte-hmr#svelte-hmr).
-
-If you have state that's important to retain within a component, consider creating an external store which would not be
-replaced by HMR.
-
-```ts
-// store.ts
-// An extremely simple external store
-import { writable } from 'svelte/store'
-export default writable(0)
-```
diff --git a/frontend/src/App.svelte b/frontend/src/App.svelte
index 1c16cd4..9d4dc9e 100644
--- a/frontend/src/App.svelte
+++ b/frontend/src/App.svelte
@@ -1,18 +1,23 @@
-
-
- HOME
-
+
+
diff --git a/frontend/src/routes/Home.svelte b/frontend/src/routes/Home.svelte
index 620d7b5..e0c3d9d 100644
--- a/frontend/src/routes/Home.svelte
+++ b/frontend/src/routes/Home.svelte
@@ -5,7 +5,7 @@
DeleteThing,
NewThing,
} from "../../wailsjs/go/things/Service";
- import { things } from "../../wailsjs/go/models";
+ import { model } from "../../wailsjs/go/models";
import {
Label,
Input,
@@ -19,7 +19,7 @@
} from "flowbite-svelte";
let name: string = $state();
- let thingsList: things.Thing[] = $state([]);
+ let thingsList: model.Thing[] = $state([]);
function update() {
GetThings().then((ts) => {
@@ -53,7 +53,6 @@
IDName
-
Delete
diff --git a/frontend/tailwind.config.ts b/frontend/tailwind.config.ts
index 34c2154..c7ac0a4 100644
--- a/frontend/tailwind.config.ts
+++ b/frontend/tailwind.config.ts
@@ -5,6 +5,7 @@ export default {
content: [
"./src/**/*.{html,js,svelte,ts}",
"./node_modules/flowbite-svelte/**/*.{html,js,svelte,ts}",
+ "./node_modules/flowbite-svelte-icons/**/*.{html,js,svelte,ts}",
],
darkMode: 'selector',
theme: {
diff --git a/frontend/wailsjs/go/models.ts b/frontend/wailsjs/go/models.ts
index e590fe2..9c6ec9c 100755
--- a/frontend/wailsjs/go/models.ts
+++ b/frontend/wailsjs/go/models.ts
@@ -1,8 +1,25 @@
-export namespace things {
+export namespace model {
+ export class SubThing {
+ ID: number;
+ ThingID: number;
+ Name: string;
+
+ static createFrom(source: any = {}) {
+ return new SubThing(source);
+ }
+
+ constructor(source: any = {}) {
+ if ('string' === typeof source) source = JSON.parse(source);
+ this.ID = source["ID"];
+ this.ThingID = source["ThingID"];
+ this.Name = source["Name"];
+ }
+ }
export class Thing {
ID: number;
Name: string;
+ Subthings: SubThing[];
static createFrom(source: any = {}) {
return new Thing(source);
@@ -12,7 +29,26 @@ export namespace things {
if ('string' === typeof source) source = JSON.parse(source);
this.ID = source["ID"];
this.Name = source["Name"];
+ this.Subthings = this.convertValues(source["Subthings"], SubThing);
}
+
+ convertValues(a: any, classs: any, asMap: boolean = false): any {
+ if (!a) {
+ return a;
+ }
+ if (a.slice && a.map) {
+ return (a as any[]).map(elem => this.convertValues(elem, classs));
+ } else if ("object" === typeof a) {
+ if (asMap) {
+ for (const key of Object.keys(a)) {
+ a[key] = new classs(a[key]);
+ }
+ return a;
+ }
+ return new classs(a);
+ }
+ return a;
+ }
}
}
diff --git a/frontend/wailsjs/go/things/Service.d.ts b/frontend/wailsjs/go/things/Service.d.ts
index 0f9aab6..c7a67f1 100755
--- a/frontend/wailsjs/go/things/Service.d.ts
+++ b/frontend/wailsjs/go/things/Service.d.ts
@@ -1,9 +1,15 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
-import {things} from '../models';
+import {model} from '../models';
+
+export function AddSubThing(arg1:number,arg2:string):Promise;
+
+export function DeleteSubThing(arg1:number):Promise;
export function DeleteThing(arg1:number):Promise;
-export function GetThings():Promise>;
+export function GetSubThings(arg1:number):Promise>;
+
+export function GetThings():Promise>;
export function NewThing(arg1:string):Promise;
diff --git a/frontend/wailsjs/go/things/Service.js b/frontend/wailsjs/go/things/Service.js
index 1d5ee94..5c167cb 100755
--- a/frontend/wailsjs/go/things/Service.js
+++ b/frontend/wailsjs/go/things/Service.js
@@ -2,10 +2,22 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
+export function AddSubThing(arg1, arg2) {
+ return window['go']['things']['Service']['AddSubThing'](arg1, arg2);
+}
+
+export function DeleteSubThing(arg1) {
+ return window['go']['things']['Service']['DeleteSubThing'](arg1);
+}
+
export function DeleteThing(arg1) {
return window['go']['things']['Service']['DeleteThing'](arg1);
}
+export function GetSubThings(arg1) {
+ return window['go']['things']['Service']['GetSubThings'](arg1);
+}
+
export function GetThings() {
return window['go']['things']['Service']['GetThings']();
}