Skip to content
This repository was archived by the owner on Mar 27, 2026. It is now read-only.

Commit f5d0b19

Browse files
committed
fix: improved ui
1 parent 18fc455 commit f5d0b19

10 files changed

Lines changed: 35 additions & 24 deletions

File tree

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@
6767
"@tiptap/extension-text-style": "^2.11.5",
6868
"@tiptap/extension-typography": "^2.8.0",
6969
"@tiptap/extension-underline": "^2.1.13",
70+
"@tiptap/extensions": "^3.0.7",
7071
"@tiptap/pm": "^2.1.13",
7172
"@tiptap/react": "^2.4.0",
7273
"@tiptap/starter-kit": "^2.1.13",

src/Archive.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ interface ArchiveProps {
1616

1717
const Archive: React.FC<ArchiveProps> = ({ notesState, setNotesState }) => {
1818
const { activeNoteId } = useNotesState();
19+
const [sortingOption, setSortingOption] = useState("updatedAt");
1920
const [searchQuery, setSearchQuery] = useState<string>("");
2021
const [selectedLabel, setSelectedLabel] = useState<string>("");
2122
const [filteredNotes, setFilteredNotes] =
@@ -52,8 +53,6 @@ const Archive: React.FC<ArchiveProps> = ({ notesState, setNotesState }) => {
5253
);
5354
}, [searchQuery, selectedLabel, notesState]);
5455

55-
const [sortingOption] = useState("updatedAt");
56-
5756
const notesList = Object.values(filteredNotes).sort((a, b) => {
5857
switch (sortingOption) {
5958
case "alphabetical":
@@ -100,7 +99,7 @@ const Archive: React.FC<ArchiveProps> = ({ notesState, setNotesState }) => {
10099
searchQuery={searchQuery}
101100
setSearchQuery={setSearchQuery}
102101
handleLabelFilterChange={handleLabelFilterChange}
103-
setSortingOption={handleLabelFilterChange}
102+
setSortingOption={setSortingOption}
104103
/>
105104
<div className="py-2 p-2 mx-4 mb-10 cursor-pointer rounded-md items-center justify-center h-full">
106105
<h2 className="text-3xl font-bold">

src/Home.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@ import { useNotesState } from "./store/Activenote";
1010
import { SendIntent } from "send-intent";
1111
import { useImportBea } from "./utils/share";
1212
import { loadNotes } from "./store/notes";
13-
14-
// Import Remix icons
1513
import NoteCard from "./components/Home/NoteCard";
1614
import Icon from "./components/UI/Icon";
1715

src/assets/locales/en.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@
263263
"Highlight": "Highlight",
264264
"Inlinecode": "Inline code",
265265
"Headings": "Headings (1-6)",
266-
"Orderedlist": "Ordered list",
266+
"orderedList": "Ordered list",
267267
"Bulletlist": "Bullet list",
268268
"Blockquote": "Blockquote",
269269
"Blockcode": "Block code",

src/components/note/NoteEditor.tsx

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,8 @@ function EditorComponent({
5050

5151
useEffect(() => {
5252
const filtered = Object.values(notesState).filter((note) => {
53-
const titleMatch = note.title
54-
.toLowerCase()
55-
.includes(searchQuery.toLowerCase());
56-
return titleMatch;
53+
const noteTitle = note.title ?? ""; // fallback to empty string
54+
return noteTitle.toLowerCase().includes(searchQuery.toLowerCase());
5755
});
5856

5957
setFilteredNotes(
@@ -64,7 +62,7 @@ function EditorComponent({
6462
const notesList = Object.values(filteredNotes).sort((a, b) => {
6563
switch (sortingOption) {
6664
case "alphabetical":
67-
return a.title.localeCompare(b.title);
65+
return (a.title ?? "").localeCompare(b.title ?? "");
6866
case "createdAt":
6967
const createdAtA = typeof a.createdAt === "number" ? a.createdAt : 0;
7068
const createdAtB = typeof b.createdAt === "number" ? b.createdAt : 0;
@@ -151,9 +149,16 @@ function EditorComponent({
151149
}
152150
}, [labelStore.labels, editor, note.labels, title]);
153151

154-
document.addEventListener("showFind", () => {
155-
setShowFind((prevShowFind) => !prevShowFind);
156-
});
152+
useEffect(() => {
153+
function toggleFindListener() {
154+
setShowFind((prevShowFind) => !prevShowFind);
155+
}
156+
157+
document.addEventListener("showFind", toggleFindListener);
158+
return () => {
159+
document.removeEventListener("showFind", toggleFindListener);
160+
};
161+
}, []);
157162

158163
useEffect(() => {
159164
setWd(localStorage.getItem("expand-editor") === "true");

src/components/note/Toolbar.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -454,11 +454,11 @@ const Toolbar: React.FC<ToolbarProps> = ({
454454
modelValue={false}
455455
triggerContent={
456456
<button
457-
className={`p-1 ${
457+
className={`${
458458
editor?.isActive("highlight")
459-
? "text-primary"
460-
: "text-neutral-700 dark:text-[color:var(--selected-dark-text)]"
461-
} cursor-pointer flex-1`}
459+
? "p-1 rounded-md text-primary hoverable cursor-pointer text-primary"
460+
: "p-1 rounded-md hoverable dark:text-[color:var(--selected-dark-text)] text-neutral-800"
461+
}`}
462462
>
463463
<Icon name="MarkPenLine" />
464464
</button>

src/lib/tiptap/exts/code-block/CodeBlockComponent.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import React, { useState, useEffect } from "react";
2+
import { useTranslation } from "@/utils/translations";
23
import { NodeViewWrapper, NodeViewContent } from "@tiptap/react";
34

45
const CodeBlockComponent = ({ node, updateAttributes, extension }) => {
@@ -18,7 +19,7 @@ const CodeBlockComponent = ({ node, updateAttributes, extension }) => {
1819
setSelectedLanguage(node.attrs.language || "");
1920
}, [node.attrs.language]);
2021

21-
const [translations, setTranslations] = ({
22+
const [translations, setTranslations] = useState({
2223
accessibility: {},
2324
});
2425

@@ -31,7 +32,6 @@ const CodeBlockComponent = ({ node, updateAttributes, extension }) => {
3132
};
3233
fetchTranslations();
3334
}, []);
34-
3535

3636
return (
3737
<NodeViewWrapper className="relative">

src/lib/tiptap/exts/commands/Commands.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -414,7 +414,7 @@ const Commands: React.FC<SlashMenuProps> = ({
414414
}, [filteredItems.length]);
415415

416416
return (
417-
<UiList className="z-50 fixed bg-white dark:bg-neutral-800 rounded-lg shadow-lg border shadow-xl dark:border-neutral-600 p-2">
417+
<UiList className="z-50 fixed rounded-lg shadow-lg border shadow-xl dark:border-neutral-600 p-2">
418418
{filteredItems.map((item, index) => (
419419
<UiListItem
420420
key={item.id}
@@ -425,13 +425,13 @@ const Commands: React.FC<SlashMenuProps> = ({
425425
{item.type === "upload" && item.component ? (
426426
item.component
427427
) : (
428-
<div className="flex items-center p-2 rounded-lg text-black dark:text-[color:var(--selected-dark-text)] hover:bg-neutral-100 dark:hover:bg-neutral-700 transition duration-200">
428+
<div className="flex items-center rounded-lg transition">
429429
<div className="text-left flex overflow-hidden text-ellipsis whitespace-nowrap">
430430
<Icon
431431
name={item.icon as IconName}
432432
className={`mr-2 ltr:ml-2 text-lg ${item.className || ""}`}
433433
/>
434-
<h3 className="text-lg font-medium text-neutral-800 dark:text-[color:var(--selected-dark-text)]">
434+
<h3 className="text-lg font-medium">
435435
{item.label}
436436
</h3>
437437
</div>

src/lib/tiptap/index.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ import { Color } from "@tiptap/extension-color";
3535
import Footnote from "./exts/footnote-block/footnote";
3636
import Footnotes from "./exts/footnote-block/footnotes";
3737
import FootnoteReference from "./exts/footnote-block/reference";
38+
import { TrailingNode } from "@tiptap/extensions";
3839
import {
3940
blackCallout,
4041
blueCallout,
@@ -81,7 +82,8 @@ const extensions = [
8182
Link.extend({
8283
addKeyboardShortcuts() {
8384
return {
84-
"Mod-k": () => this.editor.chain().focus().toggleLink({ href: '' }).run(),
85+
"Mod-k": () =>
86+
this.editor.chain().focus().toggleLink({ href: "" }).run(),
8587
};
8688
},
8789
}).configure({
@@ -104,6 +106,7 @@ const extensions = [
104106
MathInline,
105107
FileEmbed,
106108
SearchAndReplace,
109+
TrailingNode,
107110
Mathblock,
108111
iframe,
109112
Typography,

yarn.lock

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2099,6 +2099,11 @@
20992099
resolved "https://registry.yarnpkg.com/@tiptap/extension-underline/-/extension-underline-2.26.1.tgz#79f2eced758b5432e7b2dd764bd0d4e53e8c1721"
21002100
integrity sha512-/fufv41WDMdf0a4xmFAxONoAz08TonJXX6NEoSJmuGKO59M/Y0Pz8DTK1g32Wk44kn7dyScDiPlvvndl+UOv0A==
21012101

2102+
"@tiptap/extensions@^3.0.7":
2103+
version "3.0.7"
2104+
resolved "https://registry.yarnpkg.com/@tiptap/extensions/-/extensions-3.0.7.tgz#510daa0c683e82631a0b3c2989c42ba9c4a99c5d"
2105+
integrity sha512-GkXX5l7Q/543BKsC14j8M3qT+75ILb7138zy7cZoHm/s1ztV1XTknpEswBZIRZA9n6qq+Wd9g5qkbR879s6xhA==
2106+
21022107
"@tiptap/pm@^2.1.13", "@tiptap/pm@^2.26.1":
21032108
version "2.26.1"
21042109
resolved "https://registry.yarnpkg.com/@tiptap/pm/-/pm-2.26.1.tgz#5e4bd79e60fe698fa12770b2845e5133b3333d06"

0 commit comments

Comments
 (0)