diff --git a/src/renderer/src/note-editor/hooks/use-editor.ts b/src/renderer/src/note-editor/hooks/use-editor.ts
index c61e176..9db9f4f 100644
--- a/src/renderer/src/note-editor/hooks/use-editor.ts
+++ b/src/renderer/src/note-editor/hooks/use-editor.ts
@@ -52,16 +52,14 @@ const createExtensions = (placeholder: string) => [
Underline,
Image.configure({
allowedMimeTypes: ['image/*'],
- maxFileSize: 5 * 1024 * 1024,
- allowBase64: true,
+ // This function should return the uploaded image URL.
uploadFn: async (file) => {
- // NOTE: This is a fake upload function. Replace this with your own upload logic.
- // This function should return the uploaded image URL.
+ const arrayBuffer = await file.arrayBuffer()
- // wait 3s to simulate upload
- await new Promise((resolve) => setTimeout(resolve, 3000))
-
- const src = await fileToBase64(file)
+ const src = await window.api.handleSelectedFile({
+ name: file.name,
+ buffer: arrayBuffer
+ })
// either return { id: string | number, src: string } or just src
// return src;
@@ -204,6 +202,7 @@ export const useEditor = ({
extensions: createExtensions(placeholder),
editorProps: {
attributes: {
+ spellcheck: 'false', // TODO | disable the spellcheck only for the code block
autocomplete: 'off',
autocorrect: 'off',
autocapitalize: 'off',
diff --git a/src/renderer/src/note-editor/styles/index.css b/src/renderer/src/note-editor/styles/index.css
index 34d4168..a671875 100644
--- a/src/renderer/src/note-editor/styles/index.css
+++ b/src/renderer/src/note-editor/styles/index.css
@@ -96,94 +96,94 @@
--hljs-number: #b6e7b6;
}
-.minimal-tiptap-editor .ProseMirror {
+.editor .ProseMirror {
@apply flex max-w-full cursor-text flex-col;
@apply z-0 outline-0;
}
-.minimal-tiptap-editor .ProseMirror > div.editor {
+.editor .ProseMirror > div.editor {
@apply block flex-1 whitespace-pre-wrap;
}
-.minimal-tiptap-editor .ProseMirror .block-node:not(:last-child),
-.minimal-tiptap-editor .ProseMirror .list-node:not(:last-child),
-.minimal-tiptap-editor .ProseMirror .text-node:not(:last-child) {
+.editor .ProseMirror .block-node:not(:last-child),
+.editor .ProseMirror .list-node:not(:last-child),
+.editor .ProseMirror .text-node:not(:last-child) {
@apply mb-2.5;
}
-.minimal-tiptap-editor .ProseMirror ol,
-.minimal-tiptap-editor .ProseMirror ul {
+.editor .ProseMirror ol,
+.editor .ProseMirror ul {
@apply pl-6;
}
-.minimal-tiptap-editor .ProseMirror blockquote,
-.minimal-tiptap-editor .ProseMirror dl,
-.minimal-tiptap-editor .ProseMirror ol,
-.minimal-tiptap-editor .ProseMirror p,
-.minimal-tiptap-editor .ProseMirror pre,
-.minimal-tiptap-editor .ProseMirror ul {
+.editor .ProseMirror blockquote,
+.editor .ProseMirror dl,
+.editor .ProseMirror ol,
+.editor .ProseMirror p,
+.editor .ProseMirror pre,
+.editor .ProseMirror ul {
@apply m-0;
}
-.minimal-tiptap-editor .ProseMirror li {
+.editor .ProseMirror li {
@apply leading-7;
}
-.minimal-tiptap-editor .ProseMirror p {
+.editor .ProseMirror p {
@apply break-words;
}
-.minimal-tiptap-editor .ProseMirror li .text-node:has(+ .list-node),
-.minimal-tiptap-editor .ProseMirror li > .list-node,
-.minimal-tiptap-editor .ProseMirror li > .text-node,
-.minimal-tiptap-editor .ProseMirror li p {
+.editor .ProseMirror li .text-node:has(+ .list-node),
+.editor .ProseMirror li > .list-node,
+.editor .ProseMirror li > .text-node,
+.editor .ProseMirror li p {
@apply mb-0;
}
-.minimal-tiptap-editor .ProseMirror blockquote {
+.editor .ProseMirror blockquote {
@apply relative pl-3.5;
}
-.minimal-tiptap-editor .ProseMirror blockquote::before,
-.minimal-tiptap-editor .ProseMirror blockquote.is-empty::before {
+.editor .ProseMirror blockquote::before,
+.editor .ProseMirror blockquote.is-empty::before {
@apply absolute bottom-0 left-0 top-0 h-full w-1 rounded-sm bg-accent-foreground/15 content-[''];
}
-.minimal-tiptap-editor .ProseMirror hr {
+.editor .ProseMirror hr {
@apply my-3 h-0.5 w-full border-none bg-[var(--mt-hr)];
}
-.minimal-tiptap-editor .ProseMirror-focused hr.ProseMirror-selectednode {
+.editor .ProseMirror-focused hr.ProseMirror-selectednode {
@apply rounded-full outline outline-2 outline-offset-1 outline-muted-foreground;
}
-.minimal-tiptap-editor .ProseMirror .ProseMirror-gapcursor {
+.editor .ProseMirror .ProseMirror-gapcursor {
@apply pointer-events-none absolute hidden;
}
-.minimal-tiptap-editor .ProseMirror .ProseMirror-hideselection {
+.editor .ProseMirror .ProseMirror-hideselection {
@apply caret-transparent;
}
-.minimal-tiptap-editor .ProseMirror.resize-cursor {
+.editor .ProseMirror.resize-cursor {
@apply cursor-col-resize;
}
-.minimal-tiptap-editor .ProseMirror .selection {
+.editor .ProseMirror .selection {
@apply inline-block;
}
-.minimal-tiptap-editor .ProseMirror s span {
+.editor .ProseMirror s span {
@apply line-through;
}
-.minimal-tiptap-editor .ProseMirror .selection,
-.minimal-tiptap-editor .ProseMirror *::selection,
+.editor .ProseMirror .selection,
+.editor .ProseMirror *::selection,
::selection {
@apply bg-primary/25;
}
/* Override native selection when custom selection is present */
-.minimal-tiptap-editor .ProseMirror .selection::selection {
+.editor .ProseMirror .selection::selection {
background: transparent;
}
diff --git a/src/renderer/src/note-editor/styles/partials/code.css b/src/renderer/src/note-editor/styles/partials/code.css
index 28d287c..e0b283d 100644
--- a/src/renderer/src/note-editor/styles/partials/code.css
+++ b/src/renderer/src/note-editor/styles/partials/code.css
@@ -1,24 +1,24 @@
@import '@renderer/assets/base.css';
-.minimal-tiptap-editor .ProseMirror code.inline {
+.editor .ProseMirror code.inline {
@apply rounded-sm border border-[var(--mt-code-color)] bg-[var(--mt-code-background)] px-1 py-0.5 text-sm;
}
-.minimal-tiptap-editor .ProseMirror pre {
+.editor .ProseMirror pre {
@apply relative rounded-sm border font-mono text-sm;
@apply border-[var(--mt-pre-border)] bg-[var(--mt-pre-background)] text-[var(--mt-pre-color)];
@apply hyphens-none whitespace-pre text-left;
}
-.minimal-tiptap-editor .ProseMirror code {
+.editor .ProseMirror code {
@apply break-words leading-[1.7em];
}
-.minimal-tiptap-editor .ProseMirror pre code {
+.editor .ProseMirror pre code {
@apply block overflow-x-auto p-3.5;
}
-.minimal-tiptap-editor .ProseMirror pre {
+.editor .ProseMirror pre {
.hljs-keyword,
.hljs-operator,
.hljs-function,
diff --git a/src/renderer/src/note-editor/styles/partials/lists.css b/src/renderer/src/note-editor/styles/partials/lists.css
index 0525860..1f293f5 100644
--- a/src/renderer/src/note-editor/styles/partials/lists.css
+++ b/src/renderer/src/note-editor/styles/partials/lists.css
@@ -1,23 +1,23 @@
-.minimal-tiptap-editor .ProseMirror ol {
+.editor .ProseMirror ol {
@apply list-decimal;
}
-.minimal-tiptap-editor .ProseMirror ol ol {
+.editor .ProseMirror ol ol {
list-style: lower-alpha;
}
-.minimal-tiptap-editor .ProseMirror ol ol ol {
+.editor .ProseMirror ol ol ol {
list-style: lower-roman;
}
-.minimal-tiptap-editor .ProseMirror ul {
+.editor .ProseMirror ul {
list-style: disc;
}
-.minimal-tiptap-editor .ProseMirror ul ul {
+.editor .ProseMirror ul ul {
list-style: circle;
}
-.minimal-tiptap-editor .ProseMirror ul ul ul {
+.editor .ProseMirror ul ul ul {
list-style: square;
}
diff --git a/src/renderer/src/note-editor/styles/partials/placeholder.css b/src/renderer/src/note-editor/styles/partials/placeholder.css
index 04bcfdf..5d8423f 100644
--- a/src/renderer/src/note-editor/styles/partials/placeholder.css
+++ b/src/renderer/src/note-editor/styles/partials/placeholder.css
@@ -1,4 +1,4 @@
-.minimal-tiptap-editor .ProseMirror > p.is-editor-empty::before {
+.editor .ProseMirror > p.is-editor-empty::before {
content: attr(data-placeholder);
@apply pointer-events-none float-left h-0 text-[var(--mt-secondary)];
}
diff --git a/src/renderer/src/note-editor/styles/partials/typography.css b/src/renderer/src/note-editor/styles/partials/typography.css
index eae53b5..4d4e093 100644
--- a/src/renderer/src/note-editor/styles/partials/typography.css
+++ b/src/renderer/src/note-editor/styles/partials/typography.css
@@ -1,39 +1,39 @@
-.minimal-tiptap-editor .ProseMirror .heading-node {
+.editor .ProseMirror .heading-node {
@apply relative font-semibold;
}
-.minimal-tiptap-editor .ProseMirror .heading-node:first-child {
+.editor .ProseMirror .heading-node:first-child {
@apply mt-0;
}
-.minimal-tiptap-editor .ProseMirror h1 {
+.editor .ProseMirror h1 {
@apply mb-4 mt-[46px] text-[1.375rem] leading-7 tracking-[-0.004375rem];
}
-.minimal-tiptap-editor .ProseMirror h2 {
+.editor .ProseMirror h2 {
@apply mb-3.5 mt-8 text-[1.1875rem] leading-7 tracking-[0.003125rem];
}
-.minimal-tiptap-editor .ProseMirror h3 {
+.editor .ProseMirror h3 {
@apply mb-3 mt-6 text-[1.0625rem] leading-6 tracking-[0.00625rem];
}
-.minimal-tiptap-editor .ProseMirror h4 {
+.editor .ProseMirror h4 {
@apply mb-2 mt-4 text-[0.9375rem] leading-6;
}
-.minimal-tiptap-editor .ProseMirror h5 {
+.editor .ProseMirror h5 {
@apply mb-2 mt-4 text-sm;
}
-.minimal-tiptap-editor .ProseMirror h5 {
+.editor .ProseMirror h5 {
@apply mb-2 mt-4 text-sm;
}
-.minimal-tiptap-editor .ProseMirror a.link {
+.editor .ProseMirror a.link {
@apply cursor-pointer text-primary;
}
-.minimal-tiptap-editor .ProseMirror a.link:hover {
+.editor .ProseMirror a.link:hover {
@apply underline;
}
diff --git a/tsconfig.node.json b/tsconfig.node.json
index e84e7e8..92c97fb 100644
--- a/tsconfig.node.json
+++ b/tsconfig.node.json
@@ -6,8 +6,7 @@
"types": ["electron-vite/node"],
"baseUrl": ".",
"paths": {
- "@renderer/*": ["src/renderer/src/*"],
- "@editor/*": ["src/renderer/src/minimal-tiptap/*"]
+ "@renderer/*": ["src/renderer/src/*"]
}
}
}