-
Notifications
You must be signed in to change notification settings - Fork 6
Notes app #327
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Notes app #327
Conversation
ba9653d to
d7d6746
Compare
3bb06bf to
2527e3f
Compare
2527e3f to
126ec87
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR introduces a new notes application that enables users to create and manage markdown-based notebooks within OpenCloud. Notebooks are represented as folders with the .ocnb extension, containing markdown files as individual notes organized in a hierarchical folder structure.
Changes:
- Added a complete notes application with notebook management, table of contents navigation, and markdown editing capabilities
- Implemented drag-and-drop functionality for organizing notes and folders within notebooks
- Integrated SSE (Server-Sent Events) for real-time synchronization of notebook changes across clients
Reviewed changes
Copilot reviewed 34 out of 37 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/web-app-notes/package.json | Defines the notes app package with dependencies including pinia, vue-concurrency, and zod |
| packages/web-app-notes/src/index.ts | Main application entry point defining routes, app info, and menu items |
| packages/web-app-notes/src/views/View.vue | Primary view component handling notebook rendering, document editing, and unsaved changes protection |
| packages/web-app-notes/src/views/Overview.vue | Overview page for listing all notebooks (currently placeholder implementation) |
| packages/web-app-notes/src/composables/stores/*.ts | Pinia stores managing notebook, table of contents, and document state |
| packages/web-app-notes/src/composables/actions/*.ts | Action composables for creating, opening, and saving notes and folders |
| packages/web-app-notes/src/composables/useSSE.ts | SSE event handlers for real-time notebook synchronization |
| packages/web-app-notes/src/composables/useDragAndDrop.ts | Drag-and-drop functionality for reorganizing notes within notebooks |
| packages/web-app-notes/src/components/*.vue | UI components for table of contents, context menus, and empty states |
| docker-compose.yml | Added volume mount for the notes app distribution |
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
packages/web-app-notes/src/composables/stores/useNotebookStore.ts
Outdated
Show resolved
Hide resolved
packages/web-app-notes/src/composables/stores/useNotebookStore.ts
Outdated
Show resolved
Hide resolved
packages/web-app-notes/src/composables/stores/useNotebookStore.ts
Outdated
Show resolved
Hide resolved
f76cecd to
98dec97
Compare
JammingBen
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's go 🚀
Description
This PR adds a new app with name
notes. Needs some changes in web, which were merged via opencloud-eu/web#1817 but still need to be released.The idea of this app is to create folders with a certain "extension" (
.ocnbfor the time being - OpenCloud NoteBook) which are then associated with the notes app. The notes app builds a table of contents, starting from the notebook folder as root and using all subfolders and .md files in it. A folder can be used for grouping notes, each markdown file is a note in the notebook. This is just a PoC and we might change the data format in the near future, so don't put your whole world into it, yet. 😅 But since it's just markdown you will be able to access your content later even if we change the data format.We currently just use the TextEditor component from web-pkg, which renders an editor and a preview side by side. If you only have read access to the folder, you'll automatically only see the rendered part. Also, we're taking some effort to replace our current editor with tiptap.dev - with that we also aim for enabling collaborative editing as well.
Some visual impressions of the current state:
Types of changes