diff --git a/src/main/api/dto/folders.ts b/src/main/api/dto/folders.ts index 9f2dca9c..6ce8dade 100644 --- a/src/main/api/dto/folders.ts +++ b/src/main/api/dto/folders.ts @@ -2,6 +2,7 @@ import Elysia, { t } from 'elysia' const foldersAdd = t.Object({ name: t.String(), + parentId: t.Optional(t.Union([t.Number(), t.Null()])), }) const foldersUpdate = t.Object({ diff --git a/src/main/api/routes/folders.ts b/src/main/api/routes/folders.ts index e7ffcc74..5641d115 100644 --- a/src/main/api/routes/folders.ts +++ b/src/main/api/routes/folders.ts @@ -90,18 +90,19 @@ app '/', ({ body }) => { const db = useDB() - const { name } = body + const { name, parentId } = body const now = Date.now() + // (parentId) const { maxOrder } = db .prepare( ` SELECT COALESCE(MAX(orderIndex), -1) as maxOrder FROM folders - WHERE parentId IS NULL + WHERE parentId ${parentId ? '= ?' : 'IS NULL'} `, ) - .get() as { maxOrder: number } + .get(...(parentId ? [parentId] : [])) as { maxOrder: number } const newOrder = maxOrder + 1 @@ -120,7 +121,7 @@ app const { lastInsertRowid } = stmt.run( name, 'plain_text', - null, + parentId ?? null, 0, now, now, diff --git a/src/renderer/components/sidebar/folders/Tree.vue b/src/renderer/components/sidebar/folders/Tree.vue index 2bf874f0..15647405 100644 --- a/src/renderer/components/sidebar/folders/Tree.vue +++ b/src/renderer/components/sidebar/folders/Tree.vue @@ -240,7 +240,7 @@ provide(treeKeys, {