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:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user