refactor(#35): iNdEnTaTiOn

This commit is contained in:
OllyNicholass
2024-10-29 21:46:52 +00:00
parent 550d9bac18
commit d49f4b2c38
7 changed files with 49 additions and 55 deletions
+1 -1
View File
@@ -6,7 +6,7 @@
"dev": "vite dev",
"build": "vite build",
"preview": "vite preview",
"stripe": "stripe listen --forward-to localhost:5173/api/webhook/stripe",
"stripe": "stripe listen --forward-to localhost:5173/api/webhook/stripe",
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
"lint": "prettier --check . && eslint .",
+1 -1
View File
@@ -10,7 +10,7 @@
let dropdown: HTMLDivElement;
const DropdownIcon = {
closed: '▼',
closed: '▼',
open: '▲'
};
+5 -5
View File
@@ -1,6 +1,6 @@
<script lang="ts">
import { createEventDispatcher } from 'svelte';
import { signOut } from '$lib/utils/supabase/auth';
import { signOut } from '$lib/utils/supabase/auth';
import type { SupabaseClient } from '@supabase/supabase-js';
const dispatch = createEventDispatcher();
@@ -11,10 +11,10 @@
// Access the supabase client from the layout data
export let supabase: SupabaseClient | null;
async function signOutClick() {
if (!supabase) return;
await signOut(supabase, emitSignedOutEvent);
}
async function signOutClick() {
if (!supabase) return;
await signOut(supabase, emitSignedOutEvent);
}
</script>
<button on:click={signOutClick}>Sign Out</button>
+8 -9
View File
@@ -1,15 +1,14 @@
<script lang="ts">
import type { NavLinkItem } from "$lib/types/Nav/NavLinkItem";
import type { SupabaseClient } from "@supabase/supabase-js";
import SignOut from "../SignOut.svelte";
export let linkItem: NavLinkItem;
export let supabase: SupabaseClient | null = null;
import type { NavLinkItem } from '$lib/types/Nav/NavLinkItem';
import type { SupabaseClient } from '@supabase/supabase-js';
import SignOut from '../SignOut.svelte';
export let linkItem: NavLinkItem;
export let supabase: SupabaseClient | null = null;
</script>
{#if !linkItem.isSignout}
<a href={linkItem.href}>{linkItem.text}</a>
<a href={linkItem.href}>{linkItem.text}</a>
{:else if supabase && linkItem.isSignout}
<SignOut {supabase} />
{/if}
<SignOut {supabase} />
{/if}
@@ -8,8 +8,7 @@
export let linkItem: NavLinkItem;
export let isMobile: boolean;
export let supabase: SupabaseClient | null;
export let supabase: SupabaseClient | null;
let isOpen = false;
</script>
@@ -35,7 +34,7 @@
transition:slide={{ duration: 200, easing: cubicInOut }}
>
{#each linkItem.children ?? [] as child (child.text.replace(' ', '-').toLowerCase())}
<li><NavLink linkItem={child} {supabase} /></li>
<li><NavLink linkItem={child} {supabase} /></li>
{/each}
</ul>
{/if}
+28 -32
View File
@@ -4,43 +4,39 @@
import NavLinkParent from './NavLinkParent.svelte';
import type SupabaseClient from '@supabase/supabase-js/dist/module/SupabaseClient';
export let session: Session | null;
export let supabase: SupabaseClient | null = null;
export let session: Session | null;
export let supabase: SupabaseClient | null = null;
export let isMobile = false;
const userAccountLinks: NavLinkItem[] = [];
const userAccountLinks: NavLinkItem[] = [];
if (isMobile) {
if (session) {
userAccountLinks.push(
{
text: 'User', // TODO - replace with user's name - will require a database call to get the user's name - suggest setting up a user model to store user data.
isParent: true,
isUserAccount: true,
children: [
{
text: 'Account',
href: '/account'
},
{
text: 'Sign Out',
isSignout: true
}
]
}
);
} else {
userAccountLinks.push(
{
text: 'Log in',
href: '/login'
},
);
}
}
if (isMobile) {
if (session) {
userAccountLinks.push({
text: 'User', // TODO - replace with user's name - will require a database call to get the user's name - suggest setting up a user model to store user data.
isParent: true,
isUserAccount: true,
children: [
{
text: 'Account',
href: '/account'
},
{
text: 'Sign Out',
isSignout: true
}
]
});
} else {
userAccountLinks.push({
text: 'Log in',
href: '/login'
});
}
}
const links: NavLinkItem[] = [
...userAccountLinks,
...userAccountLinks,
{
text: 'Products',
href: '/products'
+4 -4
View File
@@ -1,6 +1,6 @@
import type { SupabaseClient } from "@supabase/supabase-js";
import type { SupabaseClient } from '@supabase/supabase-js';
export async function signOut(supabase: SupabaseClient, callback: () => void) {
// TODO use the error from the response
const { error } = await supabase.auth.signOut().then(callback);
}
// TODO use the error from the response
const { error } = await supabase.auth.signOut().then(callback);
}