Skip to content

Commit

Permalink
Merge pull request #76 from cabcookie/staging
Browse files Browse the repository at this point in the history
UI Optimierung für Notizen Editor
  • Loading branch information
cabcookie authored May 22, 2024
2 parents 456f26b + 232d333 commit ff305da
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 13 deletions.
37 changes: 35 additions & 2 deletions components/ui-elements/notes-writer/NotesWriter.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import Link from "@tiptap/extension-link";
import Placeholder from "@tiptap/extension-placeholder";
import { EditorContent, useEditor } from "@tiptap/react";
import StarterKit from "@tiptap/starter-kit";
import { isEqual } from "lodash";
import { FC, useEffect } from "react";
import styles from "./NotesWriter.module.css";

Expand All @@ -19,6 +18,40 @@ type TransformNotesVersionType = {
notesJson?: any;
};

type GenericObject = { [key: string]: any };

const compareNotes = (obj1: GenericObject, obj2: GenericObject): boolean => {
for (const key in obj1) {
const val1 = obj1[key];
if (!(key in obj2) && !!val1) return false;
else {
const val2 = obj2[key];
if (
typeof val1 === "object" &&
val1 !== null &&
typeof val2 === "object" &&
val2 !== null
) {
if (!compareNotes(val1, val2)) return false;
} else {
if (val1 !== val2) return false;
}
}
}
for (const key in obj2) if (!(key in obj1) && !!obj2[key]) return false;
return true;
};

const isUpToDate = (
notes: EditorJsonContent | string | undefined,
editorJson: EditorJsonContent | undefined
) => {
if (!notes) return false;
if (!editorJson) return false;
if (typeof notes === "string") return false;
return compareNotes(notes, editorJson);
};

export const transformNotesVersion = ({
version,
notes,
Expand Down Expand Up @@ -88,7 +121,7 @@ const NotesWriter: FC<NotesWriterProps> = ({
editorProps: {
attributes: {
class: `${styles.editor} ${
isEqual(notes, editor.getJSON()) ? "" : styles.unsaved
isUpToDate(notes, editor.getJSON()) ? "" : styles.unsaved
}`,
},
},
Expand Down
10 changes: 2 additions & 8 deletions docs/releases/next.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,3 @@
# Inbox Workflow optimieren und Editieren verlässlicher machen (Version :VERSION)
# UI Optimierung für Notizen Editor (Version :VERSION)

## Inbox Workflow optimiert

Die UI ist optimiert. Der aktuelle Kontext wird berücksichtigt oder kann angepasst werden.

## Editieren zuverlässiger

Beim Speichern in der Datenbank gingen immer wieder die letzte Eingaben verloren. Der Prozess ist nun entkoppelt und der Editor wird nicht mehr aktualisiert, wenn die gespeicherten Einträge an die Komponente übergeben werden. Der Editor vergleicht ständig, was ihm als gespeichert übergeben wird mit dem, was er gerade für einen Inhalt hat und somit weiß der Anwender ständig, ob seine letzten Daten gespeichert sind oder nicht.
Der Notizen Editor hat nicht korrekt angezeigt, ob eine Notiz in der Datenbank gespeichert ist. Das ist nun behoben.
6 changes: 3 additions & 3 deletions helpers/functional.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,10 @@ export const toLocaleDateString = (date?: Date) =>
year: "numeric",
});
export const toISODateString = (date: Date) => {
var year = date.getFullYear();
const year = date.getFullYear();
// Months are zero-based, so we add 1 to get the correct month
var month = (date.getMonth() + 1).toString().padStart(2, "0");
var day = date.getDate().toString().padStart(2, "0");
const month = (date.getMonth() + 1).toString().padStart(2, "0");
const day = date.getDate().toString().padStart(2, "0");

return year + "-" + month + "-" + day;
};
Expand Down

0 comments on commit ff305da

Please sign in to comment.