>)}
+
+{/snippet}
+
+
\ No newline at end of file
diff --git a/src/lib/components/common/Tabs/Tabs.svelte b/src/lib/components/common/Tabs/Tabs.svelte
new file mode 100644
index 0000000..3c897e8
--- /dev/null
+++ b/src/lib/components/common/Tabs/Tabs.svelte
@@ -0,0 +1,36 @@
+
+
+
+ {#each tabs as tab, index}
+ {#key [tab, value]}
+ {
+ value = index;
+ }}
+ />
+ {/key}
+ {/each}
+
\ No newline at end of file
diff --git a/src/lib/components/common/Tabs/index.ts b/src/lib/components/common/Tabs/index.ts
new file mode 100644
index 0000000..5ef8a17
--- /dev/null
+++ b/src/lib/components/common/Tabs/index.ts
@@ -0,0 +1,4 @@
+import Tabs from './Tabs.svelte';
+
+export default Tabs;
+export { default as Tabs } from './Tabs.svelte';
\ No newline at end of file
diff --git a/src/routes/login/+page.svelte b/src/routes/login/+page.svelte
index 9c17b9d..923958a 100644
--- a/src/routes/login/+page.svelte
+++ b/src/routes/login/+page.svelte
@@ -2,10 +2,10 @@
import Button from '$lib/components/Button.svelte';
import Container from '$lib/components/common/Container.svelte';
import TextInput from '$lib/components/TextInput.svelte';
+ import Tabs from '$lib/components/common/Tabs';
import { fade } from 'svelte/transition';
- let mode: 'register' | 'login' = $state('login');
- let action = $derived(mode === 'login' ? '?/login' : '?/register');
+ let tab: 0 | 1 = $state(0);
{#snippet userIcon()}
@@ -20,38 +20,21 @@
{/snippet}
+{#snippet form(variant: 'login' | 'register')}
+
+{/snippet}
+
-
+
+ {@render form(tab === 0 ? 'login' : 'register')}