feat: setup drizzle (#594)

* chore: migration to SvelteKit 2

* stage 1: migrate to svelte 5 and fix rerendering issues

* stage 2: fix more $: reactivity across dashboard

* fix merge conflicts

* chore: migrate code in main to svelte 5

* chore: update preventDefault

* chore: simplify tsconfig and remove unused mobileMenuRef in MobileMenu.svelte

* chore: enforce .ts across dashboard

* rename from classroomio-com to website

* stage-3: Replace carbon icon svelte with lucide icon

* update lock file

* chore: finish icon replacement

* fix: settings and setup page multiple rerender

* stage 3: More icon and rerendering fixes

* feat: setup drizzle and better auth

* fix: onboarding validation error showing translation key #586 (#593)

* fix: onboarding validation error showing translation key #586

* fix: remove debug log for profile update errors

* chore: add a clean command

* fix: remove message from email verification response
This commit is contained in:
Rotimi Best
2025-11-01 15:49:29 +01:00
committed by GitHub
parent 97fb446df5
commit b96d91cd7c
801 changed files with 22279 additions and 10834 deletions
+28 -20
View File
@@ -1,26 +1,27 @@
<script>
<script lang="ts">
import { untrack } from 'svelte';
import { goto } from '$app/navigation';
import TextField from '$lib/components/Form/TextField.svelte';
import PrimaryButton from '$lib/components/PrimaryButton/index.svelte';
import { getSupabase } from '$lib/utils/functions/supabase';
import {
resetValidation,
getConfirmPasswordError,
getDisableSubmit
} from '$lib/utils/functions/validator';
import { resetValidation, getConfirmPasswordError, getDisableSubmit } from '$lib/utils/functions/validator';
import { RESET_FIELDS } from '$lib/utils/constants/authentication';
import AuthUI from '$lib/components/AuthUI/index.svelte';
let supabase = getSupabase();
let fields = Object.assign({}, RESET_FIELDS);
let loading = false;
let success = false;
let errors = {};
let submitError;
let disableSubmit = false;
let formRef;
let fields = $state(Object.assign({}, RESET_FIELDS));
let loading = $state(false);
let errors: {
email?: string;
password?: string;
confirmPassword?: string;
} = $state({});
let submitError = $state();
let formRef: HTMLFormElement | undefined = $state();
async function handleSubmit(e) {
const disableSubmit = $derived(getDisableSubmit(fields));
async function handleSubmit() {
errors = resetValidation(fields);
console.log('errors', errors);
@@ -40,14 +41,21 @@
return goto('/login');
} catch (error) {
submitError = error.error_description || error.message;
submitError = error instanceof Error ? error.message : String(error);
} finally {
loading = false;
}
}
$: errors.confirmPassword = getConfirmPasswordError(fields);
$: disableSubmit = getDisableSubmit(fields);
function setConfirmPasswordError(fields) {
untrack(() => {
errors.confirmPassword = getConfirmPasswordError(fields);
});
}
$effect(() => {
setConfirmPasswordError(fields);
});
</script>
<svelte:head>
@@ -64,8 +72,8 @@
bind:formRef
>
<div class="mt-4 w-full">
<h3 class="dark:text-white text-xl font-semibold my-3">New Password</h3>
<p class="dark:text-white text-sm mb-6">Enter your new password details</p>
<h3 class="my-3 text-xl font-semibold dark:text-white">New Password</h3>
<p class="mb-6 text-sm dark:text-white">Enter your new password details</p>
<TextField
label="Your Password"
bind:value={fields.password}
@@ -94,7 +102,7 @@
{/if}
</div>
<div class="my-4 w-full flex justify-end items-center">
<div class="my-4 flex w-full items-center justify-end">
<PrimaryButton
label="Reset Password"
type="submit"