@alpaca-editor/core 1.0.3817 → 1.0.3820

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,15 +1,20 @@
1
- import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useEffect, useState } from "react";
3
3
  import { useEditContext } from "../client/editContext";
4
4
  import { CommentHighlighting } from "./CommentHighlighting";
5
+ import { SuggestionHighlighting } from "./SuggestionHighlighting";
5
6
  export function CommentHighlightings({ scale, iframe, }) {
6
7
  const editContext = useEditContext();
7
8
  const [comments, setComments] = useState([]);
9
+ const [suggestions, setSuggestions] = useState([]);
8
10
  useEffect(() => {
9
11
  setComments(editContext?.comments || []);
10
- }, [editContext?.comments]);
11
- return (_jsx(_Fragment, { children: comments
12
- .filter((x) => !x.isResolved)
13
- .map((comment) => (_jsx(CommentHighlighting, { iframe: iframe, scale: scale, comment: comment }, comment.id))) }));
12
+ setSuggestions(editContext?.suggestedEdits.filter((x) => x.status === "Pending") || []);
13
+ }, [editContext?.comments, editContext?.suggestedEdits]);
14
+ return (_jsxs(_Fragment, { children: [comments
15
+ .filter((x) => !x.isResolved)
16
+ .map((comment) => (_jsx(CommentHighlighting, { iframe: iframe, scale: scale, comment: comment }, comment.id))), suggestions
17
+ .filter((x) => x.status !== "approved" && x.status !== "rejected")
18
+ .map((suggestion) => (_jsx(SuggestionHighlighting, { iframe: iframe, scale: scale, suggestion: suggestion }, suggestion.id)))] }));
14
19
  }
15
20
  //# sourceMappingURL=CommentHighlightings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CommentHighlightings.js","sourceRoot":"","sources":["../../../src/editor/page-editor-chrome/CommentHighlightings.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAI5D,MAAM,UAAU,oBAAoB,CAAC,EACnC,KAAK,EACL,MAAM,GAIP;IACC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAY,EAAE,CAAC,CAAC;IAExD,SAAS,CAAC,GAAG,EAAE;QACb,WAAW,CAAC,WAAW,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE5B,OAAO,CACL,4BACG,QAAQ;aACN,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;aAC5B,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAChB,KAAC,mBAAmB,IAClB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EAEZ,OAAO,EAAE,OAAO,IADX,OAAO,CAAC,EAAE,CAEf,CACH,CAAC,GACH,CACJ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"CommentHighlightings.js","sourceRoot":"","sources":["../../../src/editor/page-editor-chrome/CommentHighlightings.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAIlE,MAAM,UAAU,oBAAoB,CAAC,EACnC,KAAK,EACL,MAAM,GAIP;IACC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAY,EAAE,CAAC,CAAC;IACxD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAkB,EAAE,CAAC,CAAC;IAEpE,SAAS,CAAC,GAAG,EAAE;QACb,WAAW,CAAC,WAAW,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC;QACzC,cAAc,CACZ,WAAW,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,IAAI,EAAE,CACxE,CAAC;IACJ,CAAC,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;IAEzD,OAAO,CACL,8BACG,QAAQ;iBACN,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;iBAC5B,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAChB,KAAC,mBAAmB,IAClB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EAEZ,OAAO,EAAE,OAAO,IADX,OAAO,CAAC,EAAE,CAEf,CACH,CAAC,EACH,WAAW;iBACT,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC;iBACjE,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CACnB,KAAC,sBAAsB,IACrB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EAEZ,UAAU,EAAE,UAAU,IADjB,UAAU,CAAC,EAAE,CAElB,CACH,CAAC,IACH,CACJ,CAAC;AACJ,CAAC"}
@@ -58,6 +58,7 @@ export function InlineEditor({ pageViewContext, compareView, }) {
58
58
  element.setAttribute("contenteditable", "true");
59
59
  mutationObserverRef.current = new MutationObserver(() => {
60
60
  debouncedSetFieldvalue(isRichText ? element.innerHTML : element.innerText, fieldId, fieldName, itemId, language, version);
61
+ // getCompletionDebounced();
61
62
  });
62
63
  element.focus();
63
64
  mutationObserverRef.current.observe(element, {
@@ -76,18 +77,95 @@ export function InlineEditor({ pageViewContext, compareView, }) {
76
77
  }, [context?.inlineEditingFieldElement]);
77
78
  function saveCaretPosition(editableElement) {
78
79
  const selection = pageViewContext.editorIframeRef.current?.contentWindow?.getSelection();
79
- if (selection &&
80
- selection.rangeCount > 0 &&
81
- editableElement.contains(selection.anchorNode)) {
82
- return selection.getRangeAt(0);
80
+ if (!selection ||
81
+ selection.rangeCount === 0 ||
82
+ !editableElement.contains(selection.anchorNode)) {
83
+ return null;
83
84
  }
84
- return null;
85
+ // Get the current range
86
+ const range = selection.getRangeAt(0);
87
+ const startNode = range.startContainer;
88
+ const startOffset = range.startOffset;
89
+ // Calculate absolute position from the beginning of the element
90
+ let absoluteOffset = 0;
91
+ // Function to calculate text length before a node
92
+ function getTextLengthBefore(node) {
93
+ let length = 0;
94
+ // Process all nodes before this one in current parent
95
+ let currentNode = node.parentNode?.firstChild;
96
+ while (currentNode && currentNode !== node) {
97
+ length += currentNode.textContent?.length || 0;
98
+ currentNode = currentNode.nextSibling;
99
+ }
100
+ // If the node's parent isn't the editable element, add lengths from higher levels
101
+ if (node.parentNode &&
102
+ node.parentNode !== editableElement &&
103
+ node.parentNode.parentNode) {
104
+ length += getTextLengthBefore(node.parentNode);
105
+ }
106
+ return length;
107
+ }
108
+ // If we're in a text node directly under the editable element
109
+ if (startNode.nodeType === Node.TEXT_NODE) {
110
+ absoluteOffset = getTextLengthBefore(startNode) + startOffset;
111
+ }
112
+ else {
113
+ // Handle cases where selection is on an element node
114
+ absoluteOffset = getTextLengthBefore(startNode);
115
+ }
116
+ console.log("Saved position:", absoluteOffset, "startNode:", startNode, "offset:", startOffset);
117
+ return { node: startNode, offset: absoluteOffset };
85
118
  }
86
- function restoreCaretPosition(range) {
87
- if (range) {
88
- const selection = pageViewContext.editorIframeRef.current?.contentWindow?.getSelection();
89
- selection?.removeAllRanges();
90
- selection?.addRange(range);
119
+ function restoreCaretPosition(element, position) {
120
+ if (position === undefined || position === null)
121
+ return;
122
+ const selection = pageViewContext.editorIframeRef.current?.contentWindow?.getSelection();
123
+ if (!selection)
124
+ return;
125
+ selection.removeAllRanges();
126
+ // Find the appropriate text node and offset
127
+ let currentNode = element.firstChild;
128
+ let currentPos = 0;
129
+ // Helper function to find the right node and position
130
+ function findNodeAtPosition(node, targetPos) {
131
+ while (node) {
132
+ // Text node case
133
+ if (node.nodeType === Node.TEXT_NODE) {
134
+ const length = node.textContent?.length || 0;
135
+ if (currentPos + length >= targetPos) {
136
+ return { node, offset: targetPos - currentPos };
137
+ }
138
+ currentPos += length;
139
+ }
140
+ // Element node case - check its children
141
+ else if (node.nodeType === Node.ELEMENT_NODE && node.hasChildNodes()) {
142
+ const result = findNodeAtPosition(node.firstChild, targetPos);
143
+ if (result)
144
+ return result;
145
+ }
146
+ node = node.nextSibling;
147
+ }
148
+ return null;
149
+ }
150
+ const result = findNodeAtPosition(currentNode, position);
151
+ // If we found a valid node, set the range
152
+ if (result) {
153
+ const range = new Range();
154
+ range.setStart(result.node, result.offset);
155
+ range.setEnd(result.node, result.offset);
156
+ selection.addRange(range);
157
+ console.log("Restored position at node:", result.node, "offset:", result.offset);
158
+ }
159
+ else if (element.firstChild) {
160
+ // Fallback to end of content if position is too large
161
+ const lastNode = element.lastChild;
162
+ if (lastNode && lastNode.nodeType === Node.TEXT_NODE) {
163
+ const range = new Range();
164
+ range.setStart(lastNode, lastNode.textContent?.length || 0);
165
+ range.setEnd(lastNode, lastNode.textContent?.length || 0);
166
+ selection.addRange(range);
167
+ console.log("Fallback: Restored to end of content");
168
+ }
91
169
  }
92
170
  }
93
171
  useEffect(() => {
@@ -139,6 +217,8 @@ export function InlineEditor({ pageViewContext, compareView, }) {
139
217
  s.mainItemLanguage === language &&
140
218
  s.mainItemId === pageViewContext.pageItemDescriptor?.id &&
141
219
  s.mainItemVersion === version);
220
+ if (!fieldSuggestions.length)
221
+ return;
142
222
  // Sort suggestions in chronological order (oldest first).
143
223
  fieldSuggestions.sort((a, b) => new Date(a.created).getTime() - new Date(b.created).getTime());
144
224
  // Apply suggestions sequentially to generate the merged value.
@@ -196,8 +276,9 @@ export function InlineEditor({ pageViewContext, compareView, }) {
196
276
  const element = context?.inlineEditingFieldElement;
197
277
  if (!element)
198
278
  return;
199
- const savedRange = saveCaretPosition(element);
200
- console.log("savedRange", savedRange, element);
279
+ const savedPosition = saveCaretPosition(element);
280
+ const start = savedPosition?.offset || 0;
281
+ console.log("saved position:", start);
201
282
  const fieldId = element.getAttribute("data-fieldid");
202
283
  const itemId = element.getAttribute("data-itemid");
203
284
  const language = element.getAttribute("data-language");
@@ -247,8 +328,10 @@ export function InlineEditor({ pageViewContext, compareView, }) {
247
328
  element.innerHTML = baseValue;
248
329
  }
249
330
  }
250
- console.log("restoring caret position", savedRange);
251
- restoreCaretPosition(savedRange);
331
+ console.log("restoring caret position", savedPosition);
332
+ setTimeout(() => {
333
+ restoreCaretPosition(element, start);
334
+ }, 0);
252
335
  }
253
336
  updateFocusedFieldContent();
254
337
  }, [context?.inlineEditingFieldElement]);
@@ -1 +1 @@
1
- {"version":3,"file":"InlineEditor.js","sourceRoot":"","sources":["../../../src/editor/page-editor-chrome/InlineEditor.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InlineEditor.js","sourceRoot":"","sources":["../../../src/editor/page-editor-chrome/InlineEditor.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { SuggestedEdit } from "../../types";
2
+ export declare function SuggestionHighlighting({ suggestion, scale, iframe, }: {
3
+ suggestion: SuggestedEdit;
4
+ scale: number;
5
+ iframe: HTMLIFrameElement;
6
+ }): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,219 @@
1
+ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useEditContext, useModifiedFieldsContext, } from "../client/editContext";
3
+ import { findFieldElement } from "../utils";
4
+ import { useState } from "react";
5
+ import { useEffect } from "react";
6
+ import { classNames } from "primereact/utils";
7
+ import { UserRoundPen } from "lucide-react";
8
+ import * as DiffLib from "diff";
9
+ export function SuggestionHighlighting({ suggestion, scale, iframe, }) {
10
+ const editContext = useEditContext();
11
+ const modifiedFields = useModifiedFieldsContext();
12
+ const [ranges, setRanges] = useState([]);
13
+ const [textContent, setTextContent] = useState("");
14
+ useEffect(() => {
15
+ const findRanges = async () => {
16
+ if (!editContext)
17
+ return;
18
+ const field = await editContext.itemsRepository.getField({
19
+ item: {
20
+ id: suggestion.itemId,
21
+ language: suggestion.mainItemLanguage,
22
+ version: suggestion.mainItemVersion,
23
+ },
24
+ fieldId: suggestion.fieldId,
25
+ });
26
+ const modifiedField = modifiedFields?.modifiedFields.find((x) => x.fieldId === field?.id &&
27
+ x.item.id === suggestion.itemId &&
28
+ x.item.language === suggestion.mainItemLanguage &&
29
+ x.item.version === suggestion.mainItemVersion);
30
+ // Calculate the actual differences between oldValue and newValue
31
+ const oldValue = suggestion.oldValue || field?.rawValue || "";
32
+ const newValue = modifiedField?.value || suggestion.newValue || "";
33
+ // If values are identical, no need to highlight
34
+ if (oldValue === newValue) {
35
+ setRanges([]);
36
+ return;
37
+ }
38
+ // Save oldValue for use in the component
39
+ setTextContent(oldValue);
40
+ // Use the diff library to find the changed parts - using diffChars for more precise matching
41
+ const diffResult = DiffLib.diffChars(oldValue, newValue);
42
+ const changeRanges = [];
43
+ let positionInOld = 0;
44
+ // Process the diff result to find all change ranges
45
+ for (const part of diffResult) {
46
+ if (part.removed) {
47
+ // If a part is removed, highlight it in the original text
48
+ changeRanges.push([positionInOld, positionInOld + part.value.length]);
49
+ positionInOld += part.value.length;
50
+ }
51
+ else if (part.added) {
52
+ // For added parts, mark the insertion point
53
+ if (changeRanges.length > 0) {
54
+ const lastRange = changeRanges[changeRanges.length - 1];
55
+ if (lastRange && lastRange[1] === positionInOld) {
56
+ // If this addition comes right after a removal, the previous range already covers the position
57
+ continue;
58
+ }
59
+ }
60
+ // Mark the insertion point for new content
61
+ changeRanges.push([positionInOld, positionInOld]);
62
+ }
63
+ else {
64
+ // Unchanged part, just advance the position
65
+ positionInOld += part.value.length;
66
+ }
67
+ }
68
+ // Merge adjacent or overlapping ranges
69
+ const mergedRanges = [];
70
+ if (changeRanges.length > 0) {
71
+ changeRanges.sort((a, b) => a[0] - b[0]);
72
+ // Start with the first range
73
+ const firstRange = changeRanges[0];
74
+ if (!firstRange) {
75
+ setRanges([]);
76
+ return;
77
+ }
78
+ let currentRange = [...firstRange];
79
+ // Process the rest of the ranges
80
+ for (let i = 1; i < changeRanges.length; i++) {
81
+ const nextRange = changeRanges[i];
82
+ // Skip undefined ranges
83
+ if (!nextRange)
84
+ continue;
85
+ // If the next range starts very close to the end of the current range, merge them
86
+ if (nextRange[0] <= currentRange[1] + 3) {
87
+ // Allow slightly larger gaps (3 chars) for better highlighting
88
+ // Extend the current range
89
+ currentRange[1] = Math.max(currentRange[1], nextRange[1]);
90
+ }
91
+ else {
92
+ // Save the current range and start a new one
93
+ mergedRanges.push([currentRange[0], currentRange[1]]);
94
+ currentRange = [...nextRange];
95
+ }
96
+ }
97
+ // Add the last range
98
+ mergedRanges.push([currentRange[0], currentRange[1]]);
99
+ }
100
+ // Set ranges to highlight the changed parts
101
+ setRanges(mergedRanges);
102
+ };
103
+ findRanges();
104
+ }, [editContext, modifiedFields?.modifiedFields, suggestion]);
105
+ if (!editContext)
106
+ return null;
107
+ if (!suggestion.fieldId)
108
+ return null;
109
+ const fieldElement = findFieldElement(iframe, {
110
+ item: {
111
+ id: suggestion.itemId,
112
+ language: suggestion.mainItemLanguage,
113
+ version: suggestion.mainItemVersion,
114
+ },
115
+ fieldId: suggestion.fieldId,
116
+ });
117
+ if (!fieldElement)
118
+ return null;
119
+ // Process each range and collect all DOM rectangles
120
+ const allRects = [];
121
+ ranges.forEach((range) => {
122
+ if (range[0] !== undefined && range[1] !== undefined) {
123
+ // For insertion points (zero-length ranges), expand to include at least one character
124
+ // to make it visible
125
+ const start = range[0];
126
+ const end = range[0] === range[1]
127
+ ? Math.min(range[0] + 1, textContent.length)
128
+ : range[1];
129
+ if (start < end) {
130
+ const startData = getTextNodeAtPosition(fieldElement, start);
131
+ const endData = getTextNodeAtPosition(fieldElement, end);
132
+ if (startData && endData) {
133
+ try {
134
+ const textRange = document.createRange();
135
+ textRange.setStart(startData.node, startData.offset);
136
+ textRange.setEnd(endData.node, endData.offset);
137
+ const rangeRects = textRange.getClientRects();
138
+ // Convert DOMRectList to Array
139
+ for (let i = 0; i < rangeRects.length; i++) {
140
+ const rect = rangeRects[i];
141
+ if (rect) {
142
+ allRects.push(rect);
143
+ }
144
+ }
145
+ }
146
+ catch (e) {
147
+ console.error("Error creating range", e);
148
+ }
149
+ }
150
+ }
151
+ }
152
+ });
153
+ // If no rects were found, fall back to highlighting the entire field
154
+ if (allRects.length === 0 && ranges.length > 0) {
155
+ const fallbackRect = fieldElement.getBoundingClientRect();
156
+ allRects.push(fallbackRect);
157
+ }
158
+ const iframeRect = iframe.getBoundingClientRect();
159
+ return (_jsx(_Fragment, { children: allRects.map((rect, index) => (_jsx("div", { style: {
160
+ position: "absolute",
161
+ top: rect.top * scale,
162
+ left: rect.left * scale,
163
+ width: rect.width * scale,
164
+ height: rect.height * scale,
165
+ pointerEvents: "none",
166
+ }, children: index === 0 && (_jsx("div", { className: classNames("pointer-events-auto absolute h-5 w-5 cursor-pointer", rect.top * scale < 18 ? "top-0" : "top-[-18px]", (rect.left + rect.width) * scale > iframeRect.width - 18
167
+ ? "right-0"
168
+ : "right-[-18px]"), onClick: () => {
169
+ editContext.select([suggestion.itemId]);
170
+ editContext.setFocusedField({
171
+ item: {
172
+ id: suggestion.itemId,
173
+ language: suggestion.mainItemLanguage,
174
+ version: suggestion.mainItemVersion,
175
+ },
176
+ fieldId: suggestion.fieldId,
177
+ }, true);
178
+ }, children: _jsx(UserRoundPen, { className: "rounded-full bg-emerald-400/70 p-1 text-white", size: 20 }) })) }, index))) }));
179
+ }
180
+ // Improved function to find text node at a given character position
181
+ function getTextNodeAtPosition(root, targetOffset) {
182
+ // Handle edge cases
183
+ if (targetOffset < 0)
184
+ return null;
185
+ // Get all text nodes in order
186
+ const textNodes = [];
187
+ const walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, null);
188
+ let node;
189
+ while ((node = walker.nextNode())) {
190
+ if (node)
191
+ textNodes.push(node);
192
+ }
193
+ let currentOffset = 0;
194
+ // Walk through all text nodes to find the one containing our target position
195
+ for (const node of textNodes) {
196
+ const nodeLength = node.textContent?.length || 0;
197
+ // If this node contains our target position
198
+ if (currentOffset + nodeLength >= targetOffset) {
199
+ return {
200
+ node: node,
201
+ offset: targetOffset - currentOffset,
202
+ };
203
+ }
204
+ currentOffset += nodeLength;
205
+ }
206
+ // If we've gone through all nodes and haven't found the position
207
+ // Return the last position in the last text node
208
+ if (textNodes.length > 0) {
209
+ const lastNode = textNodes[textNodes.length - 1];
210
+ if (lastNode) {
211
+ return {
212
+ node: lastNode,
213
+ offset: lastNode.textContent?.length || 0,
214
+ };
215
+ }
216
+ }
217
+ return null;
218
+ }
219
+ //# sourceMappingURL=SuggestionHighlighting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SuggestionHighlighting.js","sourceRoot":"","sources":["../../../src/editor/page-editor-chrome/SuggestionHighlighting.tsx"],"names":[],"mappings":"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"}
@@ -5,29 +5,38 @@ import { Comment as CommentComponent } from "./Comment";
5
5
  import { SuggestedEditComponent } from "./SuggestedEdit";
6
6
  import { SimpleToolbar } from "../ui/SimpleToolbar";
7
7
  import { SimpleIconButton } from "../ui/SimpleIconButton";
8
- import { FileDiff, MessageCircle, SquarePen } from "lucide-react";
8
+ import { FileDiff, SquarePen, CheckCircle, CheckCircle2, Eye, } from "lucide-react";
9
9
  export function Comments() {
10
10
  const editContext = useEditContext();
11
11
  const [feedbackItems, setFeedbackItems] = useState([]);
12
+ const [hideAppliedSuggestions, setHideAppliedSuggestions] = useState(true);
12
13
  useEffect(() => {
13
14
  // Retrieve your list of comments (and ensure there's an array of suggested edits,
14
15
  // for instance from your editContext)
15
16
  const comments = editContext?.comments || [];
16
17
  const suggestedEdits = editContext?.suggestedEdits || [];
17
- const combined = [...comments, ...suggestedEdits];
18
+ // Filter out applied suggestions if hideAppliedSuggestions is true
19
+ const filteredSuggestedEdits = hideAppliedSuggestions
20
+ ? suggestedEdits.filter((edit) => edit.status !== "Applied")
21
+ : suggestedEdits;
22
+ const combined = [...comments, ...filteredSuggestedEdits];
18
23
  // Sort by creation date. Adjust the comparison as needed if the date properties differ.
19
24
  combined.sort((a, b) => new Date(b.created || "").getTime() -
20
25
  new Date(a.created || "").getTime());
21
26
  setFeedbackItems(combined);
22
- }, [editContext]);
27
+ }, [editContext, hideAppliedSuggestions]);
23
28
  return (_jsxs("div", { className: "flex h-full flex-col", children: [_jsxs(SimpleToolbar, { children: [_jsx(SimpleIconButton, { id: "add-comment", icon: "pi pi-plus", label: "Add Comment", onClick: () => {
24
29
  editContext?.addComment();
25
- } }), _jsx(SimpleIconButton, { selected: editContext?.showComments, icon: _jsx(MessageCircle, { size: 16, className: "p-0.5" }), label: "Show Comments", onClick: () => {
30
+ } }), _jsx(SimpleIconButton, { selected: editContext?.showComments, icon: _jsx(Eye, { size: 16, className: "p-0.5" }), label: "Show Comments", onClick: () => {
26
31
  editContext?.setShowComments((x) => !x);
27
32
  } }), _jsx(SimpleIconButton, { selected: editContext?.showSuggestedEdits, icon: _jsx(SquarePen, { size: 16, className: "p-0.5" }), label: "Show Suggestions", onClick: () => {
28
33
  editContext?.setShowSuggestedEdits((x) => !x);
29
34
  } }), _jsx(SimpleIconButton, { selected: editContext?.showSuggestedEditsDiff, icon: _jsx(FileDiff, { size: 16, className: "p-0.5" }), label: "Show Suggestions Diff", onClick: () => {
30
35
  editContext?.setShowSuggestedEditsDiff((x) => !x);
36
+ } }), _jsx(SimpleIconButton, { selected: hideAppliedSuggestions, icon: hideAppliedSuggestions ? (_jsx(CheckCircle2, { size: 16, className: "p-0.5" })) : (_jsx(CheckCircle, { size: 16, className: "p-0.5" })), label: hideAppliedSuggestions
37
+ ? "Show Applied Suggestions"
38
+ : "Hide Applied Suggestions", onClick: () => {
39
+ setHideAppliedSuggestions((x) => !x);
31
40
  } })] }), _jsx("div", { className: "flex-1 overflow-auto", children: _jsx("div", { className: "h-fill-available border-l border-gray-200 bg-gray-50 p-4", children: feedbackItems.map((item) => {
32
41
  // Use a discriminator check. Here we assume suggested edits have the properties oldValue and newValue.
33
42
  if ("oldValue" in item && "newValue" in item) {
@@ -1 +1 @@
1
- {"version":3,"file":"Comments.js","sourceRoot":"","sources":["../../../src/editor/reviews/Comments.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAKlE,MAAM,UAAU,QAAQ;IACtB,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAiB,EAAE,CAAC,CAAC;IAEvE,SAAS,CAAC,GAAG,EAAE;QACb,kFAAkF;QAClF,sCAAsC;QACtC,MAAM,QAAQ,GAAkB,WAAW,EAAE,QAAQ,IAAI,EAAE,CAAC;QAC5D,MAAM,cAAc,GAAoB,WAAW,EAAE,cAAc,IAAI,EAAE,CAAC;QAC1E,MAAM,QAAQ,GAAmB,CAAC,GAAG,QAAQ,EAAE,GAAG,cAAc,CAAC,CAAC;QAElE,wFAAwF;QACxF,QAAQ,CAAC,IAAI,CACX,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE;YACnC,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CACtC,CAAC;QAEF,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,OAAO,CACL,eAAK,SAAS,EAAC,sBAAsB,aACnC,MAAC,aAAa,eACZ,KAAC,gBAAgB,IACf,EAAE,EAAC,aAAa,EAChB,IAAI,EAAC,YAAY,EACjB,KAAK,EAAC,aAAa,EACnB,OAAO,EAAE,GAAG,EAAE;4BACZ,WAAW,EAAE,UAAU,EAAE,CAAC;wBAC5B,CAAC,GACD,EACF,KAAC,gBAAgB,IACf,QAAQ,EAAE,WAAW,EAAE,YAAY,EACnC,IAAI,EAAE,KAAC,aAAa,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,OAAO,GAAG,EACnD,KAAK,EAAC,eAAe,EACrB,OAAO,EAAE,GAAG,EAAE;4BACZ,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC1C,CAAC,GACD,EACF,KAAC,gBAAgB,IACf,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EACzC,IAAI,EAAE,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,OAAO,GAAG,EAC/C,KAAK,EAAC,kBAAkB,EACxB,OAAO,EAAE,GAAG,EAAE;4BACZ,WAAW,EAAE,qBAAqB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;wBAChD,CAAC,GACD,EACF,KAAC,gBAAgB,IACf,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAC7C,IAAI,EAAE,KAAC,QAAQ,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,OAAO,GAAG,EAC9C,KAAK,EAAC,uBAAuB,EAC7B,OAAO,EAAE,GAAG,EAAE;4BACZ,WAAW,EAAE,yBAAyB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;wBACpD,CAAC,GACD,IACY,EAEhB,cAAK,SAAS,EAAC,sBAAsB,YACnC,cAAK,SAAS,EAAC,0DAA0D,YACtE,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;wBAC1B,uGAAuG;wBACvG,IAAI,UAAU,IAAI,IAAI,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;4BAC7C,OAAO,CACL,KAAC,sBAAsB,IAErB,IAAI,EAAE,IAAqB,IADtB,IAAI,CAAC,EAAE,CAEZ,CACH,CAAC;wBACJ,CAAC;wBACD,OAAO,CACL,KAAC,gBAAgB,IAAe,OAAO,EAAE,IAAmB,IAArC,IAAI,CAAC,EAAE,CAAkC,CACjE,CAAC;oBACJ,CAAC,CAAC,GACE,GACF,IACF,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"Comments.js","sourceRoot":"","sources":["../../../src/editor/reviews/Comments.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { useEditContext, useEditContextRef } from "../client/editContext";
4
- import { useEffect, useRef, useState } from "react";
4
+ import { useCallback, useEffect, useRef, useState } from "react";
5
5
  import { confirmDialog } from "primereact/confirmdialog";
6
6
  import { getComponentCommands } from "../commands/componentCommands";
7
7
  import { PerfectTree } from "../ui/PerfectTree";
@@ -186,7 +186,7 @@ export function ComponentTree({}) {
186
186
  setRootNodes([pageNode, ...treeNodes]);
187
187
  setNodeDictionary(dict);
188
188
  }, [page]);
189
- const handleTreeSelection = (key, event) => {
189
+ const handleTreeSelection = useCallback((key, event) => {
190
190
  let newKeys = [key];
191
191
  if (event.ctrlKey) {
192
192
  if (selectedKeys.includes(key)) {
@@ -203,7 +203,7 @@ export function ComponentTree({}) {
203
203
  if (selectedComponentIds.length === 1) {
204
204
  editContextRef.current?.setScrollIntoView(selectedComponentIds[0]);
205
205
  }
206
- };
206
+ }, [selectedKeys, nodeDictionary, editContextRef]);
207
207
  // Handle tree context menu
208
208
  const handleTreeContextMenu = (node, event) => {
209
209
  const componentId = nodeDictionary[node.key]?.componentId;
@@ -246,8 +246,15 @@ export function ComponentTree({}) {
246
246
  const expandedItems = expandedKeys;
247
247
  // Convert selected keys for PerfectTree
248
248
  const selectedItems = selectedKeys;
249
+ const handleCollapseItem = useCallback((key) => {
250
+ // First, get the node we're collapsing
251
+ const nodeToCollapse = nodeDictionary[key];
252
+ // Create a new array for expanded keys
253
+ const newExpandedKeys = [...expandedKeys].filter((x) => x !== key);
254
+ setExpandedKeys(newExpandedKeys);
255
+ }, [expandedKeys, nodeDictionary]);
249
256
  // Handle expanding nodes
250
- const handleToggle = (key) => {
257
+ const handleToggle = useCallback((key) => {
251
258
  if (expandedKeys.includes(key)) {
252
259
  handleCollapseItem(key);
253
260
  }
@@ -256,15 +263,8 @@ export function ComponentTree({}) {
256
263
  newExpandedKeys.push(key);
257
264
  setExpandedKeys(newExpandedKeys);
258
265
  }
259
- };
266
+ }, [expandedKeys, handleCollapseItem]);
260
267
  // Handle collapsing nodes
261
- const handleCollapseItem = (key) => {
262
- // First, get the node we're collapsing
263
- const nodeToCollapse = nodeDictionary[key];
264
- // Create a new array for expanded keys
265
- const newExpandedKeys = [...expandedKeys].filter((x) => x !== key);
266
- setExpandedKeys(newExpandedKeys);
267
- };
268
268
  const getPlaceholder = (node) => {
269
269
  if (!node)
270
270
  return null;
@@ -303,17 +303,19 @@ export function ComponentTree({}) {
303
303
  // Only create drag object for components with datasourceItem
304
304
  if (!component?.datasourceItem)
305
305
  return;
306
- editContext.dragStart({
307
- type: "component",
308
- typeId: component.typeId,
309
- templateId: component.datasourceItem?.templateId,
310
- name: component.name,
311
- component: {
312
- id: component.id,
313
- language: editContext.page.item.language,
314
- version: editContext.page.item.version,
315
- },
316
- });
306
+ setTimeout(() => {
307
+ editContext.dragStart({
308
+ type: "component",
309
+ typeId: component.typeId,
310
+ templateId: component.datasourceItem?.templateId,
311
+ name: component.name,
312
+ component: {
313
+ id: component.id,
314
+ language: editContext.page.item.language,
315
+ version: editContext.page.item.version,
316
+ },
317
+ });
318
+ }, 1);
317
319
  }, onDragEnd: (event) => {
318
320
  editContext.dragEnd();
319
321
  }, onDrop: (parent, index, event) => handleDropZone(parent, index, event), renderNode: (node) => renderNode(node) }) }));