diff --git a/package-lock.json b/package-lock.json index 9f88d85..1049339 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "name": "code", "version": "0.0.1", "dependencies": { - "@inlang/paraglide-sveltekit": "^0.15.5", + "@inlang/paraglide-sveltekit": "0.15.5", "@libsql/client": "^0.14.0", "@node-rs/argon2": "^2.0.2", "@oslojs/crypto": "^1.0.1", @@ -21,6 +21,7 @@ "devDependencies": { "@eslint/compat": "^1.2.5", "@eslint/js": "^9.18.0", + "@inlang/paraglide-js": "1.11.8", "@playwright/test": "^1.49.1", "@sveltejs/adapter-auto": "^4.0.0", "@sveltejs/kit": "^2.16.0", diff --git a/package.json b/package.json index 421a5e1..36e6cf1 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ "devDependencies": { "@eslint/compat": "^1.2.5", "@eslint/js": "^9.18.0", + "@inlang/paraglide-js": "1.11.8", "@playwright/test": "^1.49.1", "@sveltejs/adapter-auto": "^4.0.0", "@sveltejs/kit": "^2.16.0", @@ -49,8 +50,7 @@ "typescript-eslint": "^8.20.0", "vite": "^6.0.0", "vitest": "^3.0.0", - "zod": "^3.24.1", - "@inlang/paraglide-js": "1.11.8" + "zod": "^3.24.1" }, "dependencies": { "@inlang/paraglide-sveltekit": "0.15.5", diff --git a/src/components/import/import.svelte b/src/components/import/import.svelte index 7790cf1..024bb1e 100644 --- a/src/components/import/import.svelte +++ b/src/components/import/import.svelte @@ -23,16 +23,18 @@ }; let importing = false; let progress = 0; - const handleImport = () => { + const handleImport = async () => { importing = true; const l: List = { name: form.name, type: form.type ? 1 : 0, updated: new Date() }; - createShortformList(l); - form.textarea.split('\n').forEach((sf, i, sfs) => { - progress = 100 * (i / sfs.length); - if (Math.random() > 0.8) { - setTimeout(() => {}, 125); + const listid = await createShortformList(l); + let sfs = [] + form.textarea.split('\n').forEach((line) => { + const fields = line.split("=") + if (fields.length == 2) { + sfs.push({shortform: fields[0], phrase: fields[1], used: 0, listid: listid}) } }); + importShortforms(sfs) }; const cancelImport = () => { importState.data = ''; diff --git a/src/components/textarea.svelte b/src/components/textarea.svelte index f1f5926..d527fba 100644 --- a/src/components/textarea.svelte +++ b/src/components/textarea.svelte @@ -6,9 +6,28 @@ import { getCurrentWord, insertExpandedPhrase, insertText } from '$lib/textarea/main'; import { cacheShortforms, expandShortform } from '../modules/shortforms'; import { defaultExpanders } from '../modules/keyboard'; - import type { Shortform } from '../db/main'; - import AccordionTrigger from '$lib/components/ui/accordion/accordion-trigger.svelte'; + import { db, type Shortform } from '../db/main'; + import { liveQuery } from "dexie"; + import * as Select from "$lib/components/ui/select/index.js"; + + let styles = { + "text-bg": "#333333", + "text-fg": "#baff00", + } + + $: cssVarStyles = Object.entries(styles) + .map(([key, value]) => `--${key}:${value}`) + .join(';'); + + $: standardLists = liveQuery( async () => { + return await db.lists.toArray() + } + ) + let selectedStandardList = {} + const selectedStandardListChanged = (v) => { + shortforms.cache = cacheShortforms([Number(v.value)]); + } let state = { capitalizeNext: true, currentWord: '' @@ -78,8 +97,24 @@ */ -
- +
+ + + + + + + + {#each $standardLists as list} + {list.name} + {/each} + + +
diff --git a/src/db/import.ts b/src/db/import.ts index b1c7e41..715d379 100644 --- a/src/db/import.ts +++ b/src/db/import.ts @@ -2,12 +2,13 @@ import default_shortforms from "./shortforms.se.json"; import { db, type Shortform, type List } from "./main" export const importShortforms = (shortforms: Array) => { - /* + const used = new Date(0) + const updated = Date.now() shortforms.map((sf: Shortform) => { - db.shortforms.add({ shortform: sf.sf, phrase: sf.p }) + db.shortforms.add({ shortform: sf.shortform, phrase: sf.phrase, listid: sf.listid, used, uses: 0, remind: -1, updated }) }) - */ } + export const importDefaultShortforms = () => { const shortforms = default_shortforms.shortforms const list: List = { id: default_shortforms.listid, type: default_shortforms.type, name: default_shortforms.name, updated: new Date(default_shortforms.updated) } diff --git a/src/db/main.ts b/src/db/main.ts index 0ce76eb..1ffd344 100644 --- a/src/db/main.ts +++ b/src/db/main.ts @@ -46,18 +46,15 @@ export class SkrivertDB extends Dexie { if (localListsCount === 0) { // No local data - perform full download - importDefaultShortforms() + //importDefaultShortforms() console.log('No local data found. Prompt user to import data or use standard list...'); } }) }; } -export function createShortformList(l: List): number { - db.lists.add(l) - .then(result => { - console.log(result) - }) +export async function createShortformList(l: List): number { + return await db.lists.add(l) } diff --git a/src/modules/shortforms.ts b/src/modules/shortforms.ts index c73f874..af46652 100644 --- a/src/modules/shortforms.ts +++ b/src/modules/shortforms.ts @@ -23,6 +23,7 @@ export function cacheShortforms(lists: Array = []) { } else { lists.forEach(listid => { + console.log("looking up shortforms for this listid:", listid) db.shortforms.where("listid").equals(listid).toArray().then(sfs => { sfs.forEach(sf => { shortforms.set(sf.shortform, sf) diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 777d002..82a1080 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -5,8 +5,6 @@ let { children } = $props(); -
- - {@render children()} - -
+ + {@render children()} + diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index e6e2bf2..737e416 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -29,9 +29,10 @@ -
-