Skip to content

Commit d1cae8c

Browse files
committed
feat: error details on update COMPASS-8865
1 parent 5db8663 commit d1cae8c

File tree

8 files changed

+38
-9
lines changed

8 files changed

+38
-9
lines changed

packages/compass-components/src/components/document-list/document-edit-actions-footer.tsx

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -320,18 +320,19 @@ const EditActionsFooter: React.FunctionComponent<{
320320
>
321321
<div className={message} data-testid="document-footer-message">
322322
{error?.message ?? statusMessage}
323-
{error?.details && (
324-
<Button
325-
size="xsmall"
326-
onClick={() => onOpenErrorDetails?.(error?.details)}
327-
data-testid="insert-document-error-details-button"
328-
>
329-
VIEW ERROR DETAILS
330-
</Button>
331-
)}
332323
</div>
333324
{!isSuccess(status) && (
334325
<div className={buttonGroup}>
326+
{error?.details && (
327+
<Button
328+
className={button}
329+
size="xsmall"
330+
onClick={() => onOpenErrorDetails?.(error.details!)}
331+
data-testid="insert-document-error-details-button"
332+
>
333+
VIEW ERROR DETAILS
334+
</Button>
335+
)}
335336
<Button
336337
type="button"
337338
size="xsmall"

packages/compass-crud/src/components/document-json-view.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ class DocumentJsonView extends React.Component<DocumentJsonViewProps> {
6868
replaceDocument={this.props.replaceDocument}
6969
updateDocument={this.props.updateDocument}
7070
openInsertDocumentDialog={this.props.openInsertDocumentDialog}
71+
openErrorDetailsDialog={this.props.openErrorDetailsDialog}
7172
/>
7273
</KeylineCard>
7374
</li>

packages/compass-crud/src/components/document.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ const Document = (props: DocumentProps) => {
4343
}
4444

4545
if (editable) {
46+
console.log('PROP IS HERE', props.openErrorDetailsDialog);
4647
return <EditableDocument {...props} doc={doc} />;
4748
}
4849

packages/compass-crud/src/components/json-editor.tsx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ const JSONEditor: React.FunctionComponent<JSONEditorProps> = ({
7070
replaceDocument,
7171
copyToClipboard,
7272
openInsertDocumentDialog,
73+
openErrorDetailsDialog,
7374
}) => {
7475
const darkMode = useDarkMode();
7576
const editorRef = useRef<EditorRef>(null);
@@ -318,6 +319,12 @@ const JSONEditor: React.FunctionComponent<JSONEditorProps> = ({
318319
onUpdate={onUpdate}
319320
onDelete={onDelete}
320321
onCancel={onCancel}
322+
onOpenErrorDetails={(details: Record<string, unknown>) =>
323+
openErrorDetailsDialog?.({
324+
details,
325+
closeAction: 'close',
326+
})
327+
}
321328
/>
322329
</div>
323330
);

packages/compass-crud/src/components/table-view/document-table-view.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ export type DocumentTableViewProps = {
5656
ns: string;
5757
version: string;
5858
openInsertDocumentDialog?: CrudActions['openInsertDocumentDialog'];
59+
openErrorDetailsDialog?: CrudActions['openErrorDetailsDialog'];
5960
pathChanged: (path: (string | number)[], types: TableHeaderType[]) => void;
6061
removeColumn: GridActions['removeColumn'];
6162
copyToClipboard: (doc: Document) => void;
@@ -143,6 +144,7 @@ class DocumentTableView extends React.Component<DocumentTableViewProps> {
143144
removeDocument: this.props.removeDocument,
144145
replaceDocument: this.props.replaceDocument,
145146
updateDocument: this.props.updateDocument,
147+
openErrorDetailsDialog: this.props.openErrorDetailsDialog,
146148
darkMode: this.props.darkMode,
147149
},
148150
getRowNodeId: function (data) {
@@ -1031,6 +1033,7 @@ class DocumentTableView extends React.Component<DocumentTableViewProps> {
10311033
ns: PropTypes.string.isRequired,
10321034
version: PropTypes.string.isRequired,
10331035
openInsertDocumentDialog: PropTypes.func,
1036+
openErrorDetailsDialog: PropTypes.func,
10341037
pathChanged: PropTypes.func.isRequired,
10351038
removeColumn: PropTypes.func.isRequired,
10361039
copyToClipboard: PropTypes.func.isRequired,

packages/compass-crud/src/components/table-view/full-width-cell-renderer.tsx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ export type FullWidthCellRendererProps = Pick<
2020
replaceDocument: CrudActions['replaceDocument'];
2121
removeDocument: CrudActions['removeDocument'];
2222
updateDocument: CrudActions['updateDocument'];
23+
openErrorDetailsDialog: CrudActions['openErrorDetailsDialog'];
2324
darkMode?: boolean;
2425
};
2526

@@ -150,6 +151,12 @@ class FullWidthCellRenderer extends React.Component<
150151
this.handleCancelRemove();
151152
}
152153
}}
154+
onOpenErrorDetails={(details: Record<string, unknown>) => {
155+
this.props.openErrorDetailsDialog?.({
156+
details,
157+
closeAction: 'close',
158+
});
159+
}}
153160
/>
154161
</LeafyGreenProvider>
155162
);
@@ -163,6 +170,7 @@ class FullWidthCellRenderer extends React.Component<
163170
updateDocument: PropTypes.func.isRequired,
164171
removeDocument: PropTypes.func.isRequired,
165172
replaceDocument: PropTypes.func.isRequired,
173+
openErrorDetailsDialog: PropTypes.func.isRequired,
166174
replaceDoc: PropTypes.func.isRequired,
167175
cleanCols: PropTypes.func.isRequired,
168176
darkMode: PropTypes.bool,

packages/compass-crud/src/components/virtualized-document-json-view.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ export type VirtualizedDocumentJsonViewProps = {
5353
| 'replaceDocument'
5454
| 'updateDocument'
5555
| 'openInsertDocumentDialog'
56+
| 'openErrorDetailsDialog'
5657
>;
5758

5859
const VirtualizedDocumentJsonView: React.FC<
@@ -70,6 +71,7 @@ const VirtualizedDocumentJsonView: React.FC<
7071
replaceDocument,
7172
updateDocument,
7273
openInsertDocumentDialog,
74+
openErrorDetailsDialog,
7375
__TEST_OVERSCAN_COUNT,
7476
__TEST_LIST_HEIGHT,
7577
listRef,
@@ -90,6 +92,7 @@ const VirtualizedDocumentJsonView: React.FC<
9092
replaceDocument={replaceDocument}
9193
updateDocument={updateDocument}
9294
openInsertDocumentDialog={openInsertDocumentDialog}
95+
openErrorDetailsDialog={openErrorDetailsDialog}
9396
/>
9497
</KeylineCard>
9598
);
@@ -101,6 +104,7 @@ const VirtualizedDocumentJsonView: React.FC<
101104
scrollTriggerRef,
102105
copyToClipboard,
103106
openInsertDocumentDialog,
107+
openErrorDetailsDialog,
104108
removeDocument,
105109
replaceDocument,
106110
updateDocument,

packages/compass-crud/src/components/virtualized-document-list-view.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ type VirtualizedDocumentListViewProps = {
5858
| 'replaceDocument'
5959
| 'updateDocument'
6060
| 'openInsertDocumentDialog'
61+
| 'openErrorDetailsDialog'
6162
>;
6263

6364
const VirtualizedDocumentListView: React.FC<
@@ -74,6 +75,7 @@ const VirtualizedDocumentListView: React.FC<
7475
replaceDocument,
7576
updateDocument,
7677
openInsertDocumentDialog,
78+
openErrorDetailsDialog,
7779
listRef,
7880
__TEST_OVERSCAN_COUNT,
7981
__TEST_LIST_HEIGHT,
@@ -104,6 +106,7 @@ const VirtualizedDocumentListView: React.FC<
104106
replaceDocument={replaceDocument}
105107
updateDocument={updateDocument}
106108
openInsertDocumentDialog={openInsertDocumentDialog}
109+
openErrorDetailsDialog={openErrorDetailsDialog}
107110
/>
108111
</KeylineCard>
109112
);
@@ -114,6 +117,7 @@ const VirtualizedDocumentListView: React.FC<
114117
scrollTriggerRef,
115118
copyToClipboard,
116119
openInsertDocumentDialog,
120+
openErrorDetailsDialog,
117121
removeDocument,
118122
replaceDocument,
119123
updateDocument,

0 commit comments

Comments
 (0)