forked from aws-samples/amplify-next-template
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #183 from cabcookie:fix-small-issues
fix: editor didn't show correct is-up-to-date state
- Loading branch information
Showing
6 changed files
with
67 additions
and
66 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,31 +1,44 @@ | ||
import { JSONContent } from "@tiptap/core"; | ||
import { isNil, omitBy } from "lodash"; | ||
import { flow, isEqual } from "lodash/fp"; | ||
import { isNil } from "lodash"; | ||
import { flow, identity, isEqual, omit, omitBy } from "lodash/fp"; | ||
import { LIST_TYPES } from "./blocks"; | ||
|
||
const cleanAttrs = (attrs: JSONContent["attrs"]): JSONContent => { | ||
const omitBlockId = (level: number, type: JSONContent["type"]) => | ||
type && | ||
(level === 1 || | ||
(level === 2 && LIST_TYPES.includes(type)) || | ||
(level === 3 && !["listItem", "taskItem"].includes(type)) || | ||
level > 3) | ||
? omit("blockId") | ||
: identity; | ||
|
||
const cleanAttrs = ( | ||
level: number, | ||
type: JSONContent["type"], | ||
attrs: JSONContent["attrs"] | ||
): JSONContent => { | ||
if (!attrs) return {}; | ||
const cleanedAttrs = omitBy(attrs, isNil); | ||
const cleanedAttrs = flow(omitBy(isNil), omitBlockId(level, type))(attrs); | ||
if (!cleanedAttrs) return {}; | ||
return Object.keys(cleanedAttrs).length === 0 ? {} : { attrs: cleanedAttrs }; | ||
}; | ||
|
||
const cleanContent = ({ | ||
attrs, | ||
content, | ||
...rest | ||
}: JSONContent): JSONContent => ({ | ||
...rest, | ||
...cleanAttrs(attrs), | ||
...(!content | ||
? {} | ||
: { | ||
content: content.map(cleanContent), | ||
}), | ||
}); | ||
const cleanContent = | ||
(level: number = 1) => | ||
({ attrs, content, ...rest }: JSONContent): JSONContent => ({ | ||
...rest, | ||
...cleanAttrs(level, rest.type, attrs), | ||
...(!content | ||
? {} | ||
: { | ||
content: content.map(cleanContent(level + 1)), | ||
}), | ||
}); | ||
|
||
export const isUpToDate = ( | ||
notes: JSONContent, | ||
editorJson: JSONContent | undefined | ||
) => | ||
!editorJson | ||
? false | ||
: flow(cleanContent, flow(cleanContent, isEqual)(notes))(editorJson); | ||
: flow(cleanContent(), flow(cleanContent(), isEqual)(notes))(editorJson); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,26 +1,13 @@ | ||
# Notizen in separaten Blöcken speichern (Version :VERSION) | ||
|
||
- Datenbankschema angepasst, so dass Blöcke separat gespeichert werden können. | ||
- Wenn ich eine bestehende Notiz bearbeite, wird diese nun in der neuen Version 3 für das Notizenformat gespeichert. Das bedeutet, dass die einzelnen Blöcke der Notizen in unabhängigen Einträgen in der Datenbank landen. | ||
- Wenn in einer Notiz neue Abschnitte hinzugefügt werden, werden diese auch in der Datenbank gespeichert. | ||
- Enthält eine Notiz Verweise auf Personen, werden diese Personen in einem separaten Eintrag in der Datenbank gespeichert, so dass Verweise besser gefunden werden können (z.B. in der Personenansicht). | ||
- Werden Aufgaben in einer Notiz angelegt, so landen diese Aufgaben auch in einer separaten Datenbank-Tabelle, so dass auch Aufgaben leichter gefunden und daran gearbeitet werden kann. Die Projekte, die an der Notiz hängen, werden auch als Verweise an der Aufgabe hinterlegt, so dass die Aufgaben auch von Projekt-Seite gefunden werden können. | ||
- Das Löschen eines Abschnitts in einer Notiz führt dazu, dass der Block aus der Datenbank gelöscht wird und Einträge, die mit dem Block in Beziehung stehen (Aufgaben und Personen). | ||
- Änderungen an einer Notiz werden nun in der Datenbank gespeichert inkl. Aufgaben und Verknüpfungen zu Personen oder Projekten. | ||
- Für ein Meeting und Projekte werden die offenen vereinbarten Aufgaben dargestellt (sie können nicht editiert werden). | ||
- Für Meetings und Projekte wird dargestellt, wenn Aktivitäten nach alter Formatierung enthalten sind. Das ist wichtig als Warnung, dass in der Aktivität Aufgaben enthalten sein könnten, die im Moment wegen der alten Formatierung nicht angezeigt werden könnten. | ||
- Die Inbox funktioniert weiterhin und Einträge können im neuen Format in den Aktivitäten übernommen werden. | ||
- Der Zeitraum für die angezeigte Liste der Meetings wird durch einen URL Parameter bestimmt (`startDate`). | ||
- Für Zitate ist der Stil etwas angepasst. Die Schrift ist nicht mehr kursiv und auch nicht mehr fett gedruckt. | ||
- Das Suchen nach Personen (in einer Notiz mit einer @-Erwähnung) ist jetzt stabiler und lädt die Personen auch hin und wieder nach. | ||
- Numerierte Listen werden nun korrekt in NoteBlocks gespeichert. | ||
- Die Tagesplanung funktioniert wieder und die tägliche Todoliste ebenso. | ||
- Kleinere Fehlerbehebungen im Editor. | ||
# Kleinere Fehlerbehebungen beim Bearbeiten von Notizen (Version :VERSION) | ||
|
||
## In Arbeit | ||
|
||
- Teilnehmer und Notizen in Zwischenablage kopieren, um schneller ins Quip oder Slack zu kopieren oder eine Email zu verfassen. | ||
- Beziehungen zwischen Menschen abbilden (Partner, Ehe etc.). | ||
- Weitere persönliche Jahrestage abbilden (Tauftag, Taufentscheidung etc.). | ||
- In Wochenplanung persönliche Termine mit berücksichtigen (Geburtstage, Jahrestage). | ||
- Beim Bearbeiten einer Person die Jahrestage nicht im Popup bearbeiten, sondern ähnlich wie bei den Projektdaten in dem Accordion. | ||
|
||
## Geplant | ||
|
||
- Die Verarbeitung in der Inbox soll auch ermöglichen Gelerntes zu Personen abzulegen. | ||
- Teilnehmer und Notizen in Zwischenablage kopieren, um schneller ins Quip oder Slack zu kopieren oder eine Email zu verfassen. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters