From 0329e2f8eed9617b9d7ddbbe395d896223fae8f0 Mon Sep 17 00:00:00 2001 From: Benjamin Palko Date: Thu, 19 Dec 2024 14:43:54 -0500 Subject: [PATCH] refactor Tabs to separate components --- src/lib/components/common/Tabs/Tab.svelte | 5 ++ .../common/Tabs/Tabs.stories.svelte | 27 +++++++++++ src/lib/components/common/Tabs/Tabs.svelte | 36 ++++++++++++++ src/lib/components/common/Tabs/index.ts | 4 ++ src/routes/login/+page.svelte | 47 ++++++------------- 5 files changed, 87 insertions(+), 32 deletions(-) create mode 100644 src/lib/components/common/Tabs/Tab.svelte create mode 100644 src/lib/components/common/Tabs/Tabs.stories.svelte create mode 100644 src/lib/components/common/Tabs/Tabs.svelte create mode 100644 src/lib/components/common/Tabs/index.ts diff --git a/src/lib/components/common/Tabs/Tab.svelte b/src/lib/components/common/Tabs/Tab.svelte new file mode 100644 index 0000000..b466afb --- /dev/null +++ b/src/lib/components/common/Tabs/Tab.svelte @@ -0,0 +1,5 @@ + + + \ No newline at end of file diff --git a/src/lib/components/common/Tabs/Tabs.stories.svelte b/src/lib/components/common/Tabs/Tabs.stories.svelte new file mode 100644 index 0000000..408c4a8 --- /dev/null +++ b/src/lib/components/common/Tabs/Tabs.stories.svelte @@ -0,0 +1,27 @@ + + +{#snippet template(args: Partial>)} + +{/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')} +
+ + + {#if variant === 'register'} + + {/if} + - - - - - {#if mode === 'register'} - - {/if} -