From 45dcbdaee955426ebd9ea20483ad370ba4baedc5 Mon Sep 17 00:00:00 2001 From: James Fitzsimons Date: Wed, 26 Nov 2025 21:38:58 +0000 Subject: [PATCH] Add ZIP import page and folder collapse UI - Add a ZIP-based import page that builds a folder/note tree from a ZIP and creates items via the API - Introduce collapsible folder UI with RenderFolder and updates to DroppableFolder to support collapsing - Wire a new /import route into App and add jszip as a frontend dependency --- .../app/__pycache__/__init__.cpython-313.pyc | Bin 0 -> 162 bytes .../app/__pycache__/database.cpython-313.pyc | Bin 0 -> 884 bytes backend/app/__pycache__/main.cpython-313.pyc | Bin 0 -> 1224 bytes .../app/__pycache__/models.cpython-313.pyc | Bin 0 -> 3835 bytes .../__pycache__/folders.cpython-313.pyc | Bin 0 -> 3913 bytes .../routes/__pycache__/notes.cpython-313.pyc | Bin 0 -> 3396 bytes backend/notes.db | Bin 20480 -> 110592 bytes frontend/package-lock.json | 113 ++++++++++++--- frontend/package.json | 1 + frontend/src/App.tsx | 20 +-- .../components/sidebar/DroppableFolder.tsx | 7 + frontend/src/main.css | 32 +++-- frontend/src/pages/Home.tsx | 121 ++++++++++++---- frontend/src/pages/Import.tsx | 130 ++++++++++++++++++ 14 files changed, 362 insertions(+), 62 deletions(-) create mode 100644 backend/app/__pycache__/__init__.cpython-313.pyc create mode 100644 backend/app/__pycache__/database.cpython-313.pyc create mode 100644 backend/app/__pycache__/main.cpython-313.pyc create mode 100644 backend/app/__pycache__/models.cpython-313.pyc create mode 100644 backend/app/routes/__pycache__/folders.cpython-313.pyc create mode 100644 backend/app/routes/__pycache__/notes.cpython-313.pyc create mode 100644 frontend/src/pages/Import.tsx diff --git a/backend/app/__pycache__/__init__.cpython-313.pyc b/backend/app/__pycache__/__init__.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bb0ba3b7a0bb3d1b9041ed4529a8ba46f1c65992 GIT binary patch literal 162 zcmey&%ge<81ZVBkGePuY5CH>>P{wB#AY&>+I)f&o-%5reCLr%KNa~iOenx(7s(w~t zZfbE_W=U0XW^R67v3^QwS!zyxL28kHT4HfYUVcexv3^owa&~H7ihg22fqr~^W?p7V le7s&k8;e1VkIamWj77{q768$D;Gs7q*tmd_s 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 literal 0 HcmV?d00001 diff --git a/backend/notes.db b/backend/notes.db index 0bb79a1586d36e46a9bf010133739f4c852b2e43..168ec63361312b171b17cd3aa26f038390d91247 100644 GIT binary patch literal 110592 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 diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 65a6628..9dbd408 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -15,6 +15,7 @@ "@tailwindcss/typography": "^0.5.19", "@tailwindcss/vite": "^4.1.17", "axios": "^1.13.2", + "jszip": "^3.10.1", "react": "^18.3.1", "react-dom": "^18.3.1", "react-router-dom": "^7.9.6", @@ -60,7 +61,6 @@ "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.5", @@ -637,7 +637,6 @@ "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.11.3.tgz", "integrity": "sha512-9HBM2XnwDj7fnu0551HkGdrUrrqmYq/WC5iv6nbY2WdicXdGbhR/gfbZOH73Aqj4351alY1+aoG9rCNfiwS1RA==", "license": "MIT", - "peer": true, "dependencies": { "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.23.0", @@ -727,7 +726,6 @@ "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.5.2.tgz", "integrity": "sha512-FVqsPqtPWKVVL3dPSxy8wEF/ymIEuVzF1PK3VbUgrxXpJUSHQWWZz4JMToquRxnkw+36LTamCZG2iua2Ptq0fA==", "license": "MIT", - "peer": true, "dependencies": { "@marijn/find-cluster-break": "^1.0.0" } @@ -737,7 +735,6 @@ "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.38.8.tgz", "integrity": "sha512-XcE9fcnkHCbWkjeKyi0lllwXmBLtyYb5dt89dJyx23I9+LSh5vZDIuk7OLG4VM1lgrXZQcY6cxyZyk5WVPRv/A==", "license": "MIT", - "peer": true, "dependencies": { "@codemirror/state": "^6.5.0", "crelt": "^1.0.6", @@ -1274,7 +1271,6 @@ "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-7.1.0.tgz", "integrity": "sha512-fNxRUk1KhjSbnbuBxlWSnBLKLBNun52ZBTcs22H/xEEzM6Ap81ZFTQ4bZBxVQGQgVY0xugKGoRcCbaKjLQ3XZA==", "license": "MIT", - "peer": true, "dependencies": { "@fortawesome/fontawesome-common-types": "7.1.0" }, @@ -1639,7 +1635,6 @@ "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.2.3.tgz", "integrity": "sha512-qXdH7UqTvGfdVBINrgKhDsVTJTxactNNxLk7+UMwZhU13lMHaOBlJe9Vqp907ya56Y3+ed2tlqzys7jDkTmW0g==", "license": "MIT", - "peer": true, "dependencies": { "@lezer/common": "^1.3.0" } @@ -3161,7 +3156,6 @@ "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/core": "^7.21.3", "@svgr/babel-preset": "8.1.0", @@ -3586,7 +3580,6 @@ "integrity": "sha512-p/jUvulfgU7oKtj6Xpk8cA2Y1xKTtICGpJYeJXz2YVO2UcvjQgeRMLDGfDeqeRW2Ta+0QNFwcc8X3GH8SxZz6w==", "devOptional": true, "license": "MIT", - "peer": true, "dependencies": { "csstype": "^3.2.2" } @@ -3597,7 +3590,6 @@ "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", "devOptional": true, "license": "MIT", - "peer": true, "peerDependencies": { "@types/react": "^19.2.0" } @@ -3634,7 +3626,6 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -3742,7 +3733,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "baseline-browser-mapping": "^2.8.25", "caniuse-lite": "^1.0.30001754", @@ -3961,6 +3951,12 @@ "node": ">=18" } }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, "node_modules/cosmiconfig": { "version": "8.3.6", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", @@ -4636,6 +4632,12 @@ ], "license": "BSD-3-Clause" }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "license": "MIT" + }, "node_modules/import-fresh": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", @@ -4653,6 +4655,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, "node_modules/intersection-observer": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/intersection-observer/-/intersection-observer-0.10.0.tgz", @@ -4711,11 +4719,18 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, "node_modules/isomorphic.js": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/isomorphic.js/-/isomorphic.js-0.2.5.tgz", "integrity": "sha512-PIeMbHqMt4DnUP3MA/Flc0HElYjMXArsw1qwJZcm9sqR8mq3l8NYizFMty0pWwE/tzIGH3EKK5+jes5mAr85yw==", "license": "MIT", + "peer": true, "funding": { "type": "GitHub Sponsors ❤", "url": "https://github.com/sponsors/dmonad" @@ -4781,6 +4796,18 @@ "node": ">=6" } }, + "node_modules/jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "license": "(MIT OR GPL-3.0-or-later)", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, "node_modules/kleur": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", @@ -4801,6 +4828,7 @@ "resolved": "https://registry.npmjs.org/lib0/-/lib0-0.2.114.tgz", "integrity": "sha512-gcxmNFzA4hv8UYi8j43uPlQ7CGcyMJ2KQb5kZASw6SnAKAf10hK12i2fjrS3Cl/ugZa5Ui6WwIu1/6MIXiHttQ==", "license": "MIT", + "peer": true, "dependencies": { "isomorphic.js": "^0.2.4" }, @@ -4817,6 +4845,15 @@ "url": "https://github.com/sponsors/dmonad" } }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "license": "MIT", + "dependencies": { + "immediate": "~3.0.5" + } + }, "node_modules/lightningcss": { "version": "1.30.2", "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.2.tgz", @@ -6187,6 +6224,12 @@ "integrity": "sha512-AlWY719RF02ujitly7Kk/0QlV+pXGFDHrHf9O2OKqyqgBieaPOIeuSkL8sRK6j2WK+/ZAURq2kZsY0d8JapUiw==", "license": "MIT" }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "license": "(MIT AND Zlib)" + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -6323,6 +6366,12 @@ "node": ">=6" } }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" + }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", @@ -6351,7 +6400,6 @@ "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "license": "MIT", - "peer": true, "dependencies": { "loose-envify": "^1.1.0" }, @@ -6373,7 +6421,6 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "license": "MIT", - "peer": true, "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" @@ -6537,6 +6584,21 @@ } } }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -6600,6 +6662,12 @@ "node": ">=6" } }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, "node_modules/scheduler": { "version": "0.23.2", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", @@ -6625,6 +6693,12 @@ "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==", "license": "MIT" }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "license": "MIT" + }, "node_modules/snake-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", @@ -6663,6 +6737,15 @@ "integrity": "sha512-12KWeb+wixJohmnwNFerbyiBrAlq5qJLwIt38etRtKtmmHyDSoGlIqFE9wx+4IwG0aDjI7GV8tc8ZccjWZZtTg==", "license": "MIT" }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/stringify-entities": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", @@ -6700,8 +6783,7 @@ "version": "4.1.17", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.17.tgz", "integrity": "sha512-j9Ee2YjuQqYT9bbRTfTZht9W/ytp5H+jJpZKiYdP/bpnXARAuELt9ofP0lPnmHjbga7SNQIxdTAXCmtKVYjN+Q==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/tapable": { "version": "2.3.0", @@ -6922,7 +7004,6 @@ "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz", "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==", "license": "MIT", - "peer": true, "dependencies": { "esbuild": "^0.21.3", "postcss": "^8.4.43", diff --git a/frontend/package.json b/frontend/package.json index 3f252ba..d5ba118 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -15,6 +15,7 @@ "@tailwindcss/typography": "^0.5.19", "@tailwindcss/vite": "^4.1.17", "axios": "^1.13.2", + "jszip": "^3.10.1", "react": "^18.3.1", "react-dom": "^18.3.1", "react-router-dom": "^7.9.6", diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index a9ef44b..7c62d37 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -1,19 +1,21 @@ // src/App.tsx import { BrowserRouter, Routes, Route, Link } from "react-router-dom"; import Home from "./pages/Home"; // existing home page -import { MarkdownPage } from "./pages/Markdown"; +import { MarkdownPage } from "./pages/Markdown"; +import { Import } from "./pages/Import"; const App = () => ( - - {/* Simple nav – you can replace with your own UI later */} - {/*