diff --git a/package.json b/package.json index 99b16f6..9c06b7c 100644 --- a/package.json +++ b/package.json @@ -21,5 +21,8 @@ "tslib": "^2.8.0", "typescript": "~5.6.2", "vite": "^5.4.10" + }, + "dependencies": { + "pocketbase": "^0.21.5" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6228a32..8dc082a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,6 +7,10 @@ settings: importers: .: + dependencies: + pocketbase: + specifier: ^0.21.5 + version: 0.21.5 devDependencies: '@sveltejs/vite-plugin-svelte': specifier: ^4.0.0 @@ -677,6 +681,9 @@ packages: resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} engines: {node: '>= 6'} + pocketbase@0.21.5: + resolution: {integrity: sha512-bnI/uinnQps+ElSlzxkc4yvwuSFfKcoszDtXH/4QT2FhGq2mJVUvDlxn+rjRXVntUjPfmMG5LEPZ1eGqV6ssog==} + postcss-import@15.1.0: resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} engines: {node: '>=14.0.0'} @@ -1400,6 +1407,8 @@ snapshots: pirates@4.0.6: {} + pocketbase@0.21.5: {} + postcss-import@15.1.0(postcss@8.4.47): dependencies: postcss: 8.4.47 diff --git a/src/App.svelte b/src/App.svelte index e69de29..47731ac 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -0,0 +1,39 @@ + + +{#if page == "auth"} + (page = "login")} showRegister={() => (page = "register")}> +{:else if page == "login"} + +{:else if page == "register"} + +{:else if page == "app"} + +{/if} diff --git a/src/lib/components/Auth/Auth.svelte b/src/lib/components/Auth/Auth.svelte new file mode 100644 index 0000000..00e71ee --- /dev/null +++ b/src/lib/components/Auth/Auth.svelte @@ -0,0 +1,13 @@ + + +
+

+ Welcome on minichat ! +
+ Please login or register. +

+
diff --git a/src/lib/components/Auth/Login.svelte b/src/lib/components/Auth/Login.svelte new file mode 100644 index 0000000..ca2ae39 --- /dev/null +++ b/src/lib/components/Auth/Login.svelte @@ -0,0 +1,40 @@ + + +
+
+ Username: + Password: + + +

{authError === "" ? "" : authError}

+
+
diff --git a/src/lib/components/Auth/Register.svelte b/src/lib/components/Auth/Register.svelte new file mode 100644 index 0000000..8cd1461 --- /dev/null +++ b/src/lib/components/Auth/Register.svelte @@ -0,0 +1,64 @@ + + +
+
+ Username: + Password: + Confirm password: + + +

{authError === "" ? "" : authError}

+
+
diff --git a/src/lib/components/Chat/Chat.svelte b/src/lib/components/Chat/Chat.svelte new file mode 100644 index 0000000..6bbe301 --- /dev/null +++ b/src/lib/components/Chat/Chat.svelte @@ -0,0 +1,6 @@ + + + \ No newline at end of file diff --git a/src/lib/components/utils/Dialog.svelte b/src/lib/components/utils/Dialog.svelte new file mode 100644 index 0000000..e04374c --- /dev/null +++ b/src/lib/components/utils/Dialog.svelte @@ -0,0 +1,5 @@ + + +{@render children?.()} diff --git a/src/lib/pocketbase.svelte.ts b/src/lib/pocketbase.svelte.ts new file mode 100644 index 0000000..9bcd251 --- /dev/null +++ b/src/lib/pocketbase.svelte.ts @@ -0,0 +1,11 @@ +import PocketBase from "pocketbase"; + +export const pb = new PocketBase("http://localhost:8090"); + +let user = $state(pb.authStore.model); + +pb.authStore.onChange(() => { + user = pb.authStore.model; +}); + +export let getUser = () => user;