diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..c2545ff --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,30 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "Frontend", + "request": "launch", + "runtimeArgs": ["-F", "frontend", "dev"], + "runtimeExecutable": "pnpm", + "skipFiles": ["/**"], + "type": "node" + }, + { + "name": "Backend", + "type": "go", + "request": "launch", + "mode": "auto", + "program": "${cwd}/cmd/pomme" + } + ], + "compounds": [ + { + "name": "Frontend & Backend", + "configurations": ["Frontend", "Backend"], + "stopAll": true + } + ] +} \ No newline at end of file diff --git a/frontend/package.json b/frontend/package.json index 576c383..6ccb8a1 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -27,6 +27,7 @@ "prettier-plugin-svelte": "^2.8.1", "svelte": "^3.54.0", "svelte-check": "^3.0.0", + "svelte-use-form": "^2.5.0", "tslib": "^2.4.1", "typescript": "^4.9.3", "vite": "^4.0.0", diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml index 29ef884..c18f7ad 100644 --- a/frontend/pnpm-lock.yaml +++ b/frontend/pnpm-lock.yaml @@ -14,6 +14,7 @@ specifiers: prettier-plugin-svelte: ^2.8.1 svelte: ^3.54.0 svelte-check: ^3.0.0 + svelte-use-form: ^2.5.0 tslib: ^2.4.1 typescript: ^4.9.3 vite: ^4.0.0 @@ -33,6 +34,7 @@ devDependencies: prettier-plugin-svelte: 2.9.0_ajxj753sv7dbwexjherrch25ta svelte: 3.55.0 svelte-check: 3.0.1_svelte@3.55.0 + svelte-use-form: 2.5.0 tslib: 2.4.1 typescript: 4.9.4 vite: 4.0.3 @@ -1892,6 +1894,12 @@ packages: typescript: 4.9.4 dev: true + /svelte-use-form/2.5.0: + resolution: {integrity: sha512-03elCJk7S1I6rouh/2PdHdlVN8JAthhnkxb/xNHrv4U5s4hp8k2AjTPSzZi7KlThRlZOwgWfCqKm+CR+8JQHlQ==} + dependencies: + svelte: 3.55.0 + dev: true + /svelte/3.55.0: resolution: {integrity: sha512-uGu2FVMlOuey4JoKHKrpZFkoYyj0VLjJdz47zX5+gVK5odxHM40RVhar9/iK2YFRVxvfg9FkhfVlR0sjeIrOiA==} engines: {node: '>= 8'} diff --git a/frontend/src/lib/LoginForm.svelte b/frontend/src/lib/LoginForm.svelte new file mode 100644 index 0000000..6fb6f81 --- /dev/null +++ b/frontend/src/lib/LoginForm.svelte @@ -0,0 +1,62 @@ + + +
+

{description}

+ + Home +

+ + + + Username is mandatory! + + + + + Password is mandatory! + + + +
+ +{#await promise} +

Logging in...

+{:then} +

+{:catch error} +

{error}

+{/await} + + diff --git a/frontend/src/routes/+layout.ts b/frontend/src/routes/+layout.ts index 189f71e..ceccaaf 100644 --- a/frontend/src/routes/+layout.ts +++ b/frontend/src/routes/+layout.ts @@ -1 +1,2 @@ export const prerender = true; +export const ssr = false; diff --git a/frontend/src/routes/+page.svelte b/frontend/src/routes/+page.svelte index a45d162..350dab7 100644 --- a/frontend/src/routes/+page.svelte +++ b/frontend/src/routes/+page.svelte @@ -1,2 +1,6 @@

Welcome to pomme!

There will be something here one day :)

+ +Login +Register +Logout diff --git a/frontend/src/routes/login/+page.svelte b/frontend/src/routes/login/+page.svelte new file mode 100644 index 0000000..190bf70 --- /dev/null +++ b/frontend/src/routes/login/+page.svelte @@ -0,0 +1,5 @@ + + + diff --git a/frontend/src/routes/logout/+page.svelte b/frontend/src/routes/logout/+page.svelte new file mode 100644 index 0000000..6b39660 --- /dev/null +++ b/frontend/src/routes/logout/+page.svelte @@ -0,0 +1,22 @@ + + +{#await promise} +

+{:then} +

+{:catch error} +

{error}

+{/await} diff --git a/frontend/src/routes/register/+page.svelte b/frontend/src/routes/register/+page.svelte new file mode 100644 index 0000000..4da5eb7 --- /dev/null +++ b/frontend/src/routes/register/+page.svelte @@ -0,0 +1,5 @@ + + + diff --git a/frontend/vite.config.js b/frontend/vite.config.js index 652979f..5b06e8a 100644 --- a/frontend/vite.config.js +++ b/frontend/vite.config.js @@ -5,6 +5,12 @@ const config = { plugins: [sveltekit()], test: { include: ['src/**/*.{test,spec}.{js,ts}'] + }, + server: { + proxy: { + '/api': 'http://localhost:3008', + '/swagger': 'http://localhost:3008' + } } };