mirror of
https://github.com/jcreek/SvelteKitSaasBoilerplate.git
synced 2026-07-12 18:43:50 +00:00
feat(#29): Replace external magic link component
This commit is contained in:
@@ -47,8 +47,6 @@
|
||||
},
|
||||
"type": "module",
|
||||
"dependencies": {
|
||||
"@supabase/auth-ui-shared": "^0.1.8",
|
||||
"@supabase/auth-ui-svelte": "^0.2.9",
|
||||
"@supabase/ssr": "^0.4.0",
|
||||
"@supabase/supabase-js": "^2.44.2",
|
||||
"stripe": "^15.4.0"
|
||||
|
||||
Generated
-38
@@ -8,12 +8,6 @@ importers:
|
||||
|
||||
.:
|
||||
dependencies:
|
||||
'@supabase/auth-ui-shared':
|
||||
specifier: ^0.1.8
|
||||
version: 0.1.8(@supabase/supabase-js@2.45.4)
|
||||
'@supabase/auth-ui-svelte':
|
||||
specifier: ^0.2.9
|
||||
version: 0.2.9(@supabase/supabase-js@2.45.4)
|
||||
'@supabase/ssr':
|
||||
specifier: ^0.4.0
|
||||
version: 0.4.1(@supabase/supabase-js@2.45.4)
|
||||
@@ -1079,22 +1073,9 @@ packages:
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
|
||||
'@stitches/core@1.2.8':
|
||||
resolution: {integrity: sha512-Gfkvwk9o9kE9r9XNBmJRfV8zONvXThnm1tcuojL04Uy5uRyqg93DC83lDebl0rocZCfKSjUv+fWYtMQmEDJldg==}
|
||||
|
||||
'@supabase/auth-js@2.65.0':
|
||||
resolution: {integrity: sha512-+wboHfZufAE2Y612OsKeVP4rVOeGZzzMLD/Ac3HrTQkkY4qXNjI6Af9gtmxwccE5nFvTiF114FEbIQ1hRq5uUw==}
|
||||
|
||||
'@supabase/auth-ui-shared@0.1.8':
|
||||
resolution: {integrity: sha512-ouQ0DjKcEFg+0gZigFIEgu01V3e6riGZPzgVD0MJsCBNsMsiDT74+GgCEIElMUpTGkwSja3xLwdFRFgMNFKcjg==}
|
||||
peerDependencies:
|
||||
'@supabase/supabase-js': ^2.21.0
|
||||
|
||||
'@supabase/auth-ui-svelte@0.2.9':
|
||||
resolution: {integrity: sha512-oc+SRS7ykc5FCssoqT0IiK5KF/obwnWko5ePaaMTDwUEQOavv+O8/poAh2lRTKRJCqJMqOOpMS/lUE6pHcma3g==}
|
||||
peerDependencies:
|
||||
'@supabase/supabase-js': ^2.21.0
|
||||
|
||||
'@supabase/functions-js@2.4.1':
|
||||
resolution: {integrity: sha512-8sZ2ibwHlf+WkHDUZJUXqqmPvWQ3UHN0W30behOJngVh/qHHekhJLCFbh0AjkE9/FqqXtf9eoVvmYgfCLk5tNA==}
|
||||
|
||||
@@ -2984,10 +2965,6 @@ packages:
|
||||
typescript:
|
||||
optional: true
|
||||
|
||||
svelte@3.59.2:
|
||||
resolution: {integrity: sha512-vzSyuGr3eEoAtT/A6bmajosJZIUWySzY2CzB3w2pgPvnkUjGqlDnsNnA0PMO+mMAhuyMul6C2uuZzY6ELSkzyA==}
|
||||
engines: {node: '>= 8'}
|
||||
|
||||
svelte@4.2.19:
|
||||
resolution: {integrity: sha512-IY1rnGr6izd10B0A8LqsBfmlT5OILVuZ7XsI0vdGPEvuonFV7NYEUK4dAkm9Zg2q0Um92kYjTpS1CAP3Nh/KWw==}
|
||||
engines: {node: '>=16'}
|
||||
@@ -4422,23 +4399,10 @@ snapshots:
|
||||
'@rollup/rollup-win32-x64-msvc@4.21.3':
|
||||
optional: true
|
||||
|
||||
'@stitches/core@1.2.8': {}
|
||||
|
||||
'@supabase/auth-js@2.65.0':
|
||||
dependencies:
|
||||
'@supabase/node-fetch': 2.6.15
|
||||
|
||||
'@supabase/auth-ui-shared@0.1.8(@supabase/supabase-js@2.45.4)':
|
||||
dependencies:
|
||||
'@supabase/supabase-js': 2.45.4
|
||||
|
||||
'@supabase/auth-ui-svelte@0.2.9(@supabase/supabase-js@2.45.4)':
|
||||
dependencies:
|
||||
'@stitches/core': 1.2.8
|
||||
'@supabase/auth-ui-shared': 0.1.8(@supabase/supabase-js@2.45.4)
|
||||
'@supabase/supabase-js': 2.45.4
|
||||
svelte: 3.59.2
|
||||
|
||||
'@supabase/functions-js@2.4.1':
|
||||
dependencies:
|
||||
'@supabase/node-fetch': 2.6.15
|
||||
@@ -6474,8 +6438,6 @@ snapshots:
|
||||
postcss-load-config: 5.1.0(jiti@1.21.6)(postcss@8.4.47)
|
||||
typescript: 5.6.2
|
||||
|
||||
svelte@3.59.2: {}
|
||||
|
||||
svelte@4.2.19:
|
||||
dependencies:
|
||||
'@ampproject/remapping': 2.3.0
|
||||
|
||||
@@ -1,19 +1,66 @@
|
||||
<script lang="ts">
|
||||
import { Auth } from '@supabase/auth-ui-svelte'
|
||||
import { ThemeSupa } from '@supabase/auth-ui-shared'
|
||||
export let supabase: any;
|
||||
|
||||
export let supabase: any;
|
||||
export let url: string;
|
||||
let error = '',
|
||||
message = '',
|
||||
loading = false,
|
||||
email = '';
|
||||
|
||||
async function submit() {
|
||||
error = '';
|
||||
message = '';
|
||||
loading = true;
|
||||
|
||||
const { error: err } = await supabase.auth.signInWithOtp({ email });
|
||||
|
||||
if (err) error = err.message;
|
||||
else message = 'Check your email for the magic link.';
|
||||
|
||||
loading = false;
|
||||
}
|
||||
</script>
|
||||
|
||||
<div class="p-4">
|
||||
<Auth
|
||||
supabaseClient={supabase}
|
||||
view="magic_link"
|
||||
redirectTo={`${url}/auth/callback`}
|
||||
showLinks={false}
|
||||
appearance={{ theme: ThemeSupa, style: { input: 'color: #fff' } }}
|
||||
additionalData={{}}
|
||||
/>
|
||||
<div class="component">
|
||||
<div class="container">
|
||||
<form on:submit|preventDefault={submit}>
|
||||
<label class="input input-bordered flex items-center gap-2">
|
||||
Email
|
||||
<input
|
||||
type="text"
|
||||
name="email"
|
||||
class="grow"
|
||||
placeholder="Your email address"
|
||||
bind:value={email}
|
||||
/>
|
||||
</label>
|
||||
<button class="btn btn-active btn-primary w-full" on:click disabled={loading}
|
||||
>Send magic link</button
|
||||
>
|
||||
|
||||
{#if message}
|
||||
<div class="text-success">
|
||||
{message}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{#if error}
|
||||
<div class="text-error">
|
||||
{error}
|
||||
</div>
|
||||
{/if}
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
.component {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -147,7 +147,7 @@
|
||||
<div
|
||||
class="mt-3 z-[1] p-2 shadow menu menu-sm dropdown-content bg-base-100 text-base-content rounded-box min-w-[13rem] w-auto"
|
||||
>
|
||||
<MagicLink {supabase} {url} />
|
||||
<MagicLink {supabase} />
|
||||
</div>
|
||||
{/if}
|
||||
</details>
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
</h1>
|
||||
</div>
|
||||
<div id="sign-up" class="card shrink-0 w-full max-w-sm shadow-2xl">
|
||||
<MagicLink {supabase} {url} />
|
||||
<MagicLink {supabase} />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -6,4 +6,4 @@
|
||||
$: ({ supabase, session, url } = data);
|
||||
</script>
|
||||
|
||||
<MagicLink {supabase} {url} />
|
||||
<MagicLink {supabase} />
|
||||
|
||||
Reference in New Issue
Block a user