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,