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
@@ -2,16 +2,29 @@
import Editor from './TinymceSvelte/index.svelte';
import { globalStore } from '$lib/utils/store/app';
import { addMathPlugin } from '$lib/utils/functions/tinymce/plugins';
import { untrack } from 'svelte';
export let id = '';
export let value: string | undefined = '';
export let onChange = (html: string) => {};
export let height = 300;
export let placeholder = '';
export let editorWindowRef: Window | undefined = undefined;
export let maxHeight: number | undefined = undefined;
interface Props {
id?: string;
value?: string | undefined;
onChange?: any;
height?: number;
placeholder?: string;
editorWindowRef?: Window | undefined;
maxHeight?: number | undefined;
}
let unmount = false;
let {
id = '',
value = $bindable(),
onChange = (_html: string) => {},
height = 300,
placeholder = '',
editorWindowRef = $bindable(undefined),
maxHeight = undefined
}: Props = $props();
let unmount = $state(false);
let editorChangeHandlerId;
function getTinymce() {
@@ -25,7 +38,7 @@
}
// editor configuration
let conf = {
let conf = $state({
plugins: 'lists, link, emoticons, code, media, searchreplace, eqneditor',
toolbar: [
{ name: 'history', items: ['undo', 'redo'] },
@@ -70,7 +83,7 @@
}, 1000);
});
}
};
});
function handleModeChange(isDark: boolean) {
if (isDark) {
@@ -81,15 +94,17 @@
conf.skin = 'oxide';
}
unmount = true;
setTimeout(() => {
unmount = false;
}, 200);
untrack(() => {
unmount = true;
setTimeout(() => {
unmount = false;
}, 200);
});
}
$: value = !value ? '' : value;
$: handleModeChange($globalStore.isDark);
$effect(() => {
handleModeChange($globalStore.isDark);
});
</script>
<svelte:head>