diff --git a/package.json b/package.json index 93b2eed..1830e27 100644 --- a/package.json +++ b/package.json @@ -5,13 +5,14 @@ "type": "module", "scripts": { "dev": "vite dev", - "dev:db": "docker compose -f docker-compose.dev.yaml -p arkvault-dev up -d", "build": "vite build", "preview": "vite preview", "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", "format": "prettier --write .", "lint": "prettier --check . && eslint .", + "db:up": "docker compose -f docker-compose.dev.yaml -p arkvault-dev up -d", + "db:down": "docker compose -f docker-compose.dev.yaml -p arkvault-dev down", "db:migrate": "kysely migrate" }, "devDependencies": { diff --git a/src/lib/organisms/Category/Category.svelte b/src/lib/organisms/Category/Category.svelte new file mode 100644 index 0000000..cfe1809 --- /dev/null +++ b/src/lib/organisms/Category/Category.svelte @@ -0,0 +1,72 @@ + + +
+
+ {#if info.id !== "root"} +

하위 카테고리

+ {/if} +
+ {#key info} + {#each subCategories as subCategory} + + {/each} + {/key} + +
+ +

카테고리 추가하기

+
+
+
+
+ {#if info.id !== "root"} +
+

파일

+
+ {#key info} + {#each files as file} + + {:else} +

이 카테고리에 추가된 파일이 없어요.

+ {/each} + {/key} +
+
+ {/if} +
diff --git a/src/routes/(main)/category/[[id]]/File.svelte b/src/lib/organisms/Category/File.svelte similarity index 100% rename from src/routes/(main)/category/[[id]]/File.svelte rename to src/lib/organisms/Category/File.svelte diff --git a/src/routes/(main)/category/[[id]]/SubCategory.svelte b/src/lib/organisms/Category/SubCategory.svelte similarity index 100% rename from src/routes/(main)/category/[[id]]/SubCategory.svelte rename to src/lib/organisms/Category/SubCategory.svelte diff --git a/src/lib/organisms/Category/index.ts b/src/lib/organisms/Category/index.ts new file mode 100644 index 0000000..51e0a58 --- /dev/null +++ b/src/lib/organisms/Category/index.ts @@ -0,0 +1,2 @@ +export { default } from "./Category.svelte"; +export * from "./service"; diff --git a/src/lib/organisms/Category/service.ts b/src/lib/organisms/Category/service.ts new file mode 100644 index 0000000..8499c88 --- /dev/null +++ b/src/lib/organisms/Category/service.ts @@ -0,0 +1,13 @@ +export interface SelectedSubCategory { + id: number; + dataKey: CryptoKey; + dataKeyVersion: Date; + name: string; +} + +export interface SelectedFile { + id: number; + dataKey: CryptoKey; + dataKeyVersion: Date; + name: string; +} diff --git a/src/routes/(main)/category/[[id]]/+page.svelte b/src/routes/(main)/category/[[id]]/+page.svelte index 33ac0a7..aa551f1 100644 --- a/src/routes/(main)/category/[[id]]/+page.svelte +++ b/src/routes/(main)/category/[[id]]/+page.svelte @@ -3,10 +3,9 @@ import { goto } from "$app/navigation"; import { TopBar } from "$lib/components"; import { getCategoryInfo, type CategoryInfo } from "$lib/modules/filesystem"; + import Category from "$lib/organisms/Category"; import { masterKeyStore } from "$lib/stores"; import CreateCategoryModal from "./CreateCategoryModal.svelte"; - import Files from "./Files.svelte"; - import SubCategories from "./SubCategories.svelte"; import { requestCategoryCreation } from "./service"; let { data } = $props(); @@ -34,32 +33,16 @@ {#if data.id !== "root"} {/if} - {#if $info} -
-
- {#if data.id !== "root"} -

하위 카테고리

- {/if} - {#key $info} - goto(`/category/${id}`)} - onCategoryCreateClick={() => { - isCreateCategoryModalOpen = true; - }} - /> - {/key} -
- {#if data.id !== "root"} -
-

파일

- {#key $info} - goto(`/file/${id}`)} /> - {/key} -
- {/if} -
- {/if} +
+ {#if $info} + goto(`/category/${id}`)} + onSubCategoryCreateClick={() => (isCreateCategoryModalOpen = true)} + onFileClick={({ id }) => goto(`/file/${id}`)} + /> + {/if} +
diff --git a/src/routes/(main)/category/[[id]]/Files.svelte b/src/routes/(main)/category/[[id]]/Files.svelte deleted file mode 100644 index 6679931..0000000 --- a/src/routes/(main)/category/[[id]]/Files.svelte +++ /dev/null @@ -1,34 +0,0 @@ - - -
- {#each files as file} - - {:else} -

이 카테고리에 추가된 파일이 없어요.

- {/each} -
diff --git a/src/routes/(main)/category/[[id]]/SubCategories.svelte b/src/routes/(main)/category/[[id]]/SubCategories.svelte deleted file mode 100644 index 1f47fc8..0000000 --- a/src/routes/(main)/category/[[id]]/SubCategories.svelte +++ /dev/null @@ -1,41 +0,0 @@ - - -
- {#each subCategories as subCategory} - - {/each} - -
- -

카테고리 추가하기

-
-
-
diff --git a/src/routes/(main)/category/[[id]]/service.ts b/src/routes/(main)/category/[[id]]/service.ts index 6af11e3..c2018ed 100644 --- a/src/routes/(main)/category/[[id]]/service.ts +++ b/src/routes/(main)/category/[[id]]/service.ts @@ -3,20 +3,6 @@ import { generateDataKey, wrapDataKey, encryptString } from "$lib/modules/crypto import type { CategoryCreateRequest } from "$lib/server/schemas"; import type { MasterKey } from "$lib/stores"; -export interface SelectedSubCategory { - id: number; - dataKey: CryptoKey; - dataKeyVersion: Date; - name: string; -} - -export interface SelectedFile { - id: number; - dataKey: CryptoKey; - dataKeyVersion: Date; - name: string; -} - export const requestCategoryCreation = async ( name: string, parentId: "root" | number,