@multiplatform.one/frappe-ui 7.67.0 → 7.68.0
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.
- package/dist/cjs/FileBrowser/index.cjs +15 -25
- package/dist/cjs/FileBrowser/index.native.js +15 -25
- package/dist/cjs/FileBrowser/index.native.js.map +1 -1
- package/dist/cjs/FormSidebar.cjs +34 -22
- package/dist/cjs/FormSidebar.native.js +38 -24
- package/dist/cjs/FormSidebar.native.js.map +1 -1
- package/dist/cjs/FrappeAssignment.cjs +0 -3
- package/dist/cjs/FrappeAssignment.native.js +0 -3
- package/dist/cjs/FrappeAssignment.native.js.map +1 -1
- package/dist/cjs/FrappeDashboard.cjs +0 -2
- package/dist/cjs/FrappeDashboard.native.js +0 -2
- package/dist/cjs/FrappeDashboard.native.js.map +1 -1
- package/dist/cjs/FrappeForm.cjs +6 -5
- package/dist/cjs/FrappeForm.native.js +6 -5
- package/dist/cjs/FrappeForm.native.js.map +1 -1
- package/dist/cjs/FrappeFormActions.cjs +20 -30
- package/dist/cjs/FrappeFormActions.native.js +23 -31
- package/dist/cjs/FrappeFormActions.native.js.map +1 -1
- package/dist/cjs/FrappeKanban.cjs +0 -1
- package/dist/cjs/FrappeKanban.native.js +0 -1
- package/dist/cjs/FrappeKanban.native.js.map +1 -1
- package/dist/cjs/FrappeLikedBy.cjs +1 -1
- package/dist/cjs/FrappeLikedBy.native.js +1 -1
- package/dist/cjs/FrappeLikedBy.native.js.map +1 -1
- package/dist/cjs/FrappeListView.cjs +0 -1
- package/dist/cjs/FrappeListView.native.js +0 -1
- package/dist/cjs/FrappeListView.native.js.map +1 -1
- package/dist/cjs/FrappeReportView.cjs +2 -4
- package/dist/cjs/FrappeReportView.native.js +2 -4
- package/dist/cjs/FrappeReportView.native.js.map +1 -1
- package/dist/cjs/desk/DeskShell.cjs +0 -1
- package/dist/cjs/desk/DeskShell.native.js +0 -1
- package/dist/cjs/desk/DeskShell.native.js.map +1 -1
- package/dist/cjs/fields/FileUpload.cjs +50 -58
- package/dist/cjs/fields/FileUpload.native.js +50 -56
- package/dist/cjs/fields/FileUpload.native.js.map +1 -1
- package/dist/cjs/list/ListControls.cjs +1 -3
- package/dist/cjs/list/ListControls.native.js +1 -3
- package/dist/cjs/list/ListControls.native.js.map +1 -1
- package/dist/cjs/list/ListControlsSheet.cjs +5 -15
- package/dist/cjs/list/ListControlsSheet.native.js +7 -17
- package/dist/cjs/list/ListControlsSheet.native.js.map +1 -1
- package/dist/cjs/list/ListSidebarToolbar.cjs +5 -20
- package/dist/cjs/list/ListSidebarToolbar.native.js +7 -22
- package/dist/cjs/list/ListSidebarToolbar.native.js.map +1 -1
- package/dist/cjs/list/RecordCard.cjs +2 -14
- package/dist/cjs/list/RecordCard.native.js +2 -10
- package/dist/cjs/list/RecordCard.native.js.map +1 -1
- package/dist/cjs/list/ShufflePanel.cjs +0 -2
- package/dist/cjs/list/ShufflePanel.native.js +0 -2
- package/dist/cjs/list/ShufflePanel.native.js.map +1 -1
- package/dist/cjs/list/listColumns.cjs +1 -1
- package/dist/cjs/list/listColumns.native.js +1 -1
- package/dist/cjs/list/listColumns.native.js.map +1 -1
- package/dist/cjs/record/RecordPage.cjs +4 -10
- package/dist/cjs/record/RecordPage.native.js +4 -10
- package/dist/cjs/record/RecordPage.native.js.map +1 -1
- package/dist/cjs/report/ReportViewToolbar.cjs +8 -10
- package/dist/cjs/report/ReportViewToolbar.native.js +8 -10
- package/dist/cjs/report/ReportViewToolbar.native.js.map +1 -1
- package/dist/esm/FileBrowser/index.mjs +16 -26
- package/dist/esm/FileBrowser/index.mjs.map +1 -1
- package/dist/esm/FileBrowser/index.native.js +16 -26
- package/dist/esm/FileBrowser/index.native.js.map +1 -1
- package/dist/esm/FormSidebar.mjs +37 -25
- package/dist/esm/FormSidebar.mjs.map +1 -1
- package/dist/esm/FormSidebar.native.js +41 -27
- package/dist/esm/FormSidebar.native.js.map +1 -1
- package/dist/esm/FrappeAssignment.mjs +0 -3
- package/dist/esm/FrappeAssignment.mjs.map +1 -1
- package/dist/esm/FrappeAssignment.native.js +0 -3
- package/dist/esm/FrappeAssignment.native.js.map +1 -1
- package/dist/esm/FrappeDashboard.mjs +0 -2
- package/dist/esm/FrappeDashboard.mjs.map +1 -1
- package/dist/esm/FrappeDashboard.native.js +0 -2
- package/dist/esm/FrappeDashboard.native.js.map +1 -1
- package/dist/esm/FrappeForm.mjs +7 -6
- package/dist/esm/FrappeForm.mjs.map +1 -1
- package/dist/esm/FrappeForm.native.js +7 -6
- package/dist/esm/FrappeForm.native.js.map +1 -1
- package/dist/esm/FrappeFormActions.mjs +22 -32
- package/dist/esm/FrappeFormActions.mjs.map +1 -1
- package/dist/esm/FrappeFormActions.native.js +25 -33
- package/dist/esm/FrappeFormActions.native.js.map +1 -1
- package/dist/esm/FrappeKanban.mjs +0 -1
- package/dist/esm/FrappeKanban.mjs.map +1 -1
- package/dist/esm/FrappeKanban.native.js +0 -1
- package/dist/esm/FrappeKanban.native.js.map +1 -1
- package/dist/esm/FrappeLikedBy.mjs +1 -1
- package/dist/esm/FrappeLikedBy.mjs.map +1 -1
- package/dist/esm/FrappeLikedBy.native.js +1 -1
- package/dist/esm/FrappeLikedBy.native.js.map +1 -1
- package/dist/esm/FrappeListView.mjs +0 -1
- package/dist/esm/FrappeListView.mjs.map +1 -1
- package/dist/esm/FrappeListView.native.js +0 -1
- package/dist/esm/FrappeListView.native.js.map +1 -1
- package/dist/esm/FrappeReportView.mjs +3 -5
- package/dist/esm/FrappeReportView.mjs.map +1 -1
- package/dist/esm/FrappeReportView.native.js +3 -5
- package/dist/esm/FrappeReportView.native.js.map +1 -1
- package/dist/esm/desk/DeskShell.mjs +0 -1
- package/dist/esm/desk/DeskShell.mjs.map +1 -1
- package/dist/esm/desk/DeskShell.native.js +0 -1
- package/dist/esm/desk/DeskShell.native.js.map +1 -1
- package/dist/esm/fields/FileUpload.mjs +53 -61
- package/dist/esm/fields/FileUpload.mjs.map +1 -1
- package/dist/esm/fields/FileUpload.native.js +53 -59
- package/dist/esm/fields/FileUpload.native.js.map +1 -1
- package/dist/esm/list/ListControls.mjs +1 -3
- package/dist/esm/list/ListControls.mjs.map +1 -1
- package/dist/esm/list/ListControls.native.js +1 -3
- package/dist/esm/list/ListControls.native.js.map +1 -1
- package/dist/esm/list/ListControlsSheet.mjs +6 -16
- package/dist/esm/list/ListControlsSheet.mjs.map +1 -1
- package/dist/esm/list/ListControlsSheet.native.js +8 -18
- package/dist/esm/list/ListControlsSheet.native.js.map +1 -1
- package/dist/esm/list/ListSidebarToolbar.mjs +6 -21
- package/dist/esm/list/ListSidebarToolbar.mjs.map +1 -1
- package/dist/esm/list/ListSidebarToolbar.native.js +8 -23
- package/dist/esm/list/ListSidebarToolbar.native.js.map +1 -1
- package/dist/esm/list/RecordCard.mjs +2 -14
- package/dist/esm/list/RecordCard.mjs.map +1 -1
- package/dist/esm/list/RecordCard.native.js +2 -10
- package/dist/esm/list/RecordCard.native.js.map +1 -1
- package/dist/esm/list/ShufflePanel.mjs +0 -2
- package/dist/esm/list/ShufflePanel.mjs.map +1 -1
- package/dist/esm/list/ShufflePanel.native.js +0 -2
- package/dist/esm/list/ShufflePanel.native.js.map +1 -1
- package/dist/esm/list/listColumns.mjs +1 -1
- package/dist/esm/list/listColumns.mjs.map +1 -1
- package/dist/esm/list/listColumns.native.js +1 -1
- package/dist/esm/list/listColumns.native.js.map +1 -1
- package/dist/esm/record/RecordPage.mjs +4 -10
- package/dist/esm/record/RecordPage.mjs.map +1 -1
- package/dist/esm/record/RecordPage.native.js +4 -10
- package/dist/esm/record/RecordPage.native.js.map +1 -1
- package/dist/esm/report/ReportViewToolbar.mjs +9 -11
- package/dist/esm/report/ReportViewToolbar.mjs.map +1 -1
- package/dist/esm/report/ReportViewToolbar.native.js +9 -11
- package/dist/esm/report/ReportViewToolbar.native.js.map +1 -1
- package/dist/jsx/FileBrowser/index.mjs +16 -26
- package/dist/jsx/FileBrowser/index.mjs.map +1 -1
- package/dist/jsx/FileBrowser/index.native.js +15 -25
- package/dist/jsx/FileBrowser/index.native.js.map +1 -1
- package/dist/jsx/FormSidebar.mjs +37 -25
- package/dist/jsx/FormSidebar.mjs.map +1 -1
- package/dist/jsx/FormSidebar.native.js +38 -24
- package/dist/jsx/FormSidebar.native.js.map +1 -1
- package/dist/jsx/FrappeAssignment.mjs +0 -3
- package/dist/jsx/FrappeAssignment.mjs.map +1 -1
- package/dist/jsx/FrappeAssignment.native.js +0 -3
- package/dist/jsx/FrappeAssignment.native.js.map +1 -1
- package/dist/jsx/FrappeDashboard.mjs +0 -2
- package/dist/jsx/FrappeDashboard.mjs.map +1 -1
- package/dist/jsx/FrappeDashboard.native.js +0 -2
- package/dist/jsx/FrappeDashboard.native.js.map +1 -1
- package/dist/jsx/FrappeForm.mjs +7 -6
- package/dist/jsx/FrappeForm.mjs.map +1 -1
- package/dist/jsx/FrappeForm.native.js +6 -5
- package/dist/jsx/FrappeForm.native.js.map +1 -1
- package/dist/jsx/FrappeFormActions.mjs +22 -32
- package/dist/jsx/FrappeFormActions.mjs.map +1 -1
- package/dist/jsx/FrappeFormActions.native.js +23 -31
- package/dist/jsx/FrappeFormActions.native.js.map +1 -1
- package/dist/jsx/FrappeKanban.mjs +0 -1
- package/dist/jsx/FrappeKanban.mjs.map +1 -1
- package/dist/jsx/FrappeKanban.native.js +0 -1
- package/dist/jsx/FrappeKanban.native.js.map +1 -1
- package/dist/jsx/FrappeLikedBy.mjs +1 -1
- package/dist/jsx/FrappeLikedBy.mjs.map +1 -1
- package/dist/jsx/FrappeLikedBy.native.js +1 -1
- package/dist/jsx/FrappeLikedBy.native.js.map +1 -1
- package/dist/jsx/FrappeListView.mjs +0 -1
- package/dist/jsx/FrappeListView.mjs.map +1 -1
- package/dist/jsx/FrappeListView.native.js +0 -1
- package/dist/jsx/FrappeListView.native.js.map +1 -1
- package/dist/jsx/FrappeReportView.mjs +3 -5
- package/dist/jsx/FrappeReportView.mjs.map +1 -1
- package/dist/jsx/FrappeReportView.native.js +2 -4
- package/dist/jsx/FrappeReportView.native.js.map +1 -1
- package/dist/jsx/desk/DeskShell.mjs +0 -1
- package/dist/jsx/desk/DeskShell.mjs.map +1 -1
- package/dist/jsx/desk/DeskShell.native.js +0 -1
- package/dist/jsx/desk/DeskShell.native.js.map +1 -1
- package/dist/jsx/fields/FileUpload.mjs +53 -61
- package/dist/jsx/fields/FileUpload.mjs.map +1 -1
- package/dist/jsx/fields/FileUpload.native.js +50 -56
- package/dist/jsx/fields/FileUpload.native.js.map +1 -1
- package/dist/jsx/list/ListControls.mjs +1 -3
- package/dist/jsx/list/ListControls.mjs.map +1 -1
- package/dist/jsx/list/ListControls.native.js +1 -3
- package/dist/jsx/list/ListControls.native.js.map +1 -1
- package/dist/jsx/list/ListControlsSheet.mjs +6 -16
- package/dist/jsx/list/ListControlsSheet.mjs.map +1 -1
- package/dist/jsx/list/ListControlsSheet.native.js +7 -17
- package/dist/jsx/list/ListControlsSheet.native.js.map +1 -1
- package/dist/jsx/list/ListSidebarToolbar.mjs +6 -21
- package/dist/jsx/list/ListSidebarToolbar.mjs.map +1 -1
- package/dist/jsx/list/ListSidebarToolbar.native.js +7 -22
- package/dist/jsx/list/ListSidebarToolbar.native.js.map +1 -1
- package/dist/jsx/list/RecordCard.mjs +2 -14
- package/dist/jsx/list/RecordCard.mjs.map +1 -1
- package/dist/jsx/list/RecordCard.native.js +2 -10
- package/dist/jsx/list/RecordCard.native.js.map +1 -1
- package/dist/jsx/list/ShufflePanel.mjs +0 -2
- package/dist/jsx/list/ShufflePanel.mjs.map +1 -1
- package/dist/jsx/list/ShufflePanel.native.js +0 -2
- package/dist/jsx/list/ShufflePanel.native.js.map +1 -1
- package/dist/jsx/list/listColumns.mjs +1 -1
- package/dist/jsx/list/listColumns.mjs.map +1 -1
- package/dist/jsx/list/listColumns.native.js +1 -1
- package/dist/jsx/list/listColumns.native.js.map +1 -1
- package/dist/jsx/record/RecordPage.mjs +4 -10
- package/dist/jsx/record/RecordPage.mjs.map +1 -1
- package/dist/jsx/record/RecordPage.native.js +4 -10
- package/dist/jsx/record/RecordPage.native.js.map +1 -1
- package/dist/jsx/report/ReportViewToolbar.mjs +9 -11
- package/dist/jsx/report/ReportViewToolbar.mjs.map +1 -1
- package/dist/jsx/report/ReportViewToolbar.native.js +8 -10
- package/dist/jsx/report/ReportViewToolbar.native.js.map +1 -1
- package/package.json +16 -16
- package/src/FileBrowser/index.tsx +11 -15
- package/src/FormSidebar.tsx +52 -32
- package/src/FrappeAssignment.tsx +0 -3
- package/src/FrappeDashboard.spec.tsx +7 -3
- package/src/FrappeDashboard.tsx +0 -2
- package/src/FrappeForm.connections.spec.tsx +2 -2
- package/src/FrappeForm.deskSemantics.spec.tsx +2 -2
- package/src/FrappeForm.lifecycle.spec.tsx +27 -27
- package/src/FrappeForm.tsx +11 -7
- package/src/FrappeFormActions.tsx +24 -38
- package/src/FrappeKanban.tsx +0 -1
- package/src/FrappeLikedBy.tsx +1 -1
- package/src/FrappeListView.spec.tsx +7 -3
- package/src/FrappeListView.tsx +0 -1
- package/src/FrappeReportView.tsx +3 -6
- package/src/desk/DeskShell.tsx +0 -1
- package/src/desk/deskDocumentRoutes.spec.tsx +7 -4
- package/src/fields/Date/typeParity.spec.tsx +6 -4
- package/src/fields/FileUpload.spec.tsx +18 -3
- package/src/fields/FileUpload.tsx +64 -68
- package/src/list/ListControls.tsx +1 -3
- package/src/list/ListControlsSheet.tsx +10 -12
- package/src/list/ListSidebarToolbar.tsx +7 -18
- package/src/list/RecordCard.native.tsx +2 -7
- package/src/list/RecordCard.tsx +2 -8
- package/src/list/ShufflePanel.tsx +0 -2
- package/src/list/listColumns.tsx +1 -1
- package/src/record/RecordPage.tsx +2 -10
- package/src/report/ReportViewToolbar.tsx +9 -11
- package/src/useFrappeForm.spec.tsx +1 -1
- package/types/FileBrowser/index.d.ts.map +1 -1
- package/types/FormSidebar.d.ts.map +1 -1
- package/types/FrappeAssignment.d.ts.map +1 -1
- package/types/FrappeDashboard.d.ts.map +1 -1
- package/types/FrappeFormActions.d.ts.map +1 -1
- package/types/FrappeKanban.d.ts.map +1 -1
- package/types/FrappeReportView.d.ts.map +1 -1
- package/types/desk/DeskShell.d.ts.map +1 -1
- package/types/fields/FileUpload.d.ts.map +1 -1
- package/types/list/ListControls.d.ts.map +1 -1
- package/types/list/ListControlsSheet.d.ts.map +1 -1
- package/types/list/ListSidebarToolbar.d.ts.map +1 -1
- package/types/list/RecordCard.d.ts.map +1 -1
- package/types/list/RecordCard.native.d.ts.map +1 -1
- package/types/list/ShufflePanel.d.ts.map +1 -1
- package/types/record/RecordPage.d.ts.map +1 -1
- package/types/report/ReportViewToolbar.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__create","Object","create","__defProp","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__getProtoOf","getPrototypeOf","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toESM","mod","isNodeMode","__esModule","value","__toCommonJS","ReportViewToolbar_exports","ReportViewToolbar","module","exports","import_jsx_runtime","require","import_components","import_forms","import_theme","import_react","import_react2","import_react_i18next","import_filterFields","import_measures","param","columns","selected","onToggleColumn","onResetColumns","groupBy","onGroupByChange","baseFilters","onClearBaseFilters","columnFilterCount","onClearColumnFilters","savedReports","currentReport","onSelectReport","onSaveReport","onDeleteReport","onExport","exportDisabled","t","useTranslation","knobProps","useResolvedKnobs","saveOpen","setSaveOpen","useState","saveName","setSaveName","confirmDelete","setConfirmDelete","selectedSet","Set","groupByColumn","find","column","fieldname","currentSummary","report","handleSaveAs","handleSaveAs2","trim","start","jsxs","Fragment","children","DropdownMenu","jsx","Trigger","asChild","Button","size","chromeless","icon","ColumnsIcon","defaultValue","enabled","length","total","Content","maxHeight","overlayListMaxHeight","Label","map","isSelected","has","lastSelected","CheckboxItem","checked","disabled","disabledReason","onCheckedChange","label","Separator","Item","onSelect","RowsIcon","field","closeOnSelect","StackIcon","reportName","FloppyDiskIcon","onPress","Popover","placement","open","onOpenChange","PopoverContent","panelPadding","Arrow","borderWidth","borderColor","XStack","gap","alignItems","minWidth","dialogBodyMinWidth","YStack","flex","Input","onChangeText","placeholder","inputProps","accent","disabledReasonPlacement","tuple","index","Chip","variant","color","filterTupleLabel","XIcon"],"sources":["../../../src/report/ReportViewToolbar.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["__create","Object","create","__defProp","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__getProtoOf","getPrototypeOf","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toESM","mod","isNodeMode","__esModule","value","__toCommonJS","ReportViewToolbar_exports","ReportViewToolbar","module","exports","import_jsx_runtime","require","import_components","import_forms","import_theme","import_react","import_react2","import_react_i18next","import_filterFields","import_measures","param","columns","selected","onToggleColumn","onResetColumns","groupBy","onGroupByChange","baseFilters","onClearBaseFilters","columnFilterCount","onClearColumnFilters","savedReports","currentReport","onSelectReport","onSaveReport","onDeleteReport","onExport","exportDisabled","t","useTranslation","knobProps","useResolvedKnobs","saveOpen","setSaveOpen","useState","saveName","setSaveName","confirmDelete","setConfirmDelete","selectedSet","Set","groupByColumn","find","column","fieldname","currentSummary","report","handleSaveAs","handleSaveAs2","trim","start","jsxs","Fragment","children","DropdownMenu","jsx","Trigger","asChild","Button","size","chromeless","icon","ColumnsIcon","defaultValue","enabled","length","total","Content","maxHeight","overlayListMaxHeight","Label","map","isSelected","has","lastSelected","CheckboxItem","checked","disabled","disabledReason","onCheckedChange","label","Separator","Item","onSelect","RowsIcon","field","closeOnSelect","StackIcon","reportName","ActionButton","kind","primary","onPress","Popover","placement","open","onOpenChange","FloppyDiskIcon","PopoverContent","panelPadding","Arrow","borderWidth","borderColor","XStack","gap","alignItems","minWidth","dialogBodyMinWidth","YStack","flex","Input","onChangeText","placeholder","inputProps","disabledReasonPlacement","tuple","index","Chip","variant","color","filterTupleLabel","XIcon"],"sources":["../../../src/report/ReportViewToolbar.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@multiplatform.one/frappe-ui",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.68.0",
|
|
4
4
|
"description": "Pre-wired Tamagui components for Frappe doctypes with live data",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cross-platform",
|
|
@@ -72,18 +72,18 @@
|
|
|
72
72
|
"access": "public"
|
|
73
73
|
},
|
|
74
74
|
"dependencies": {
|
|
75
|
-
"@multiplatform.one/components": "^7.
|
|
76
|
-
"@multiplatform.one/desktop": "^7.
|
|
77
|
-
"@multiplatform.one/forms": "^7.
|
|
78
|
-
"@multiplatform.one/frappe": "^7.
|
|
79
|
-
"@multiplatform.one/i18n": "^7.
|
|
80
|
-
"@multiplatform.one/markdown": "^7.
|
|
81
|
-
"@multiplatform.one/platform": "^7.
|
|
82
|
-
"@multiplatform.one/rich-text": "^7.
|
|
83
|
-
"@multiplatform.one/router": "^7.
|
|
84
|
-
"@multiplatform.one/store": "^7.
|
|
85
|
-
"@multiplatform.one/table": "^7.
|
|
86
|
-
"@multiplatform.one/theme": "^7.
|
|
75
|
+
"@multiplatform.one/components": "^7.68.0",
|
|
76
|
+
"@multiplatform.one/desktop": "^7.68.0",
|
|
77
|
+
"@multiplatform.one/forms": "^7.68.0",
|
|
78
|
+
"@multiplatform.one/frappe": "^7.68.0",
|
|
79
|
+
"@multiplatform.one/i18n": "^7.68.0",
|
|
80
|
+
"@multiplatform.one/markdown": "^7.68.0",
|
|
81
|
+
"@multiplatform.one/platform": "^7.68.0",
|
|
82
|
+
"@multiplatform.one/rich-text": "^7.68.0",
|
|
83
|
+
"@multiplatform.one/router": "^7.68.0",
|
|
84
|
+
"@multiplatform.one/store": "^7.68.0",
|
|
85
|
+
"@multiplatform.one/table": "^7.68.0",
|
|
86
|
+
"@multiplatform.one/theme": "^7.68.0",
|
|
87
87
|
"@phosphor-icons/react": "^2.1.10",
|
|
88
88
|
"@tamagui/colors": "2.7.6",
|
|
89
89
|
"@tanstack/db": "0.8.0",
|
|
@@ -100,9 +100,9 @@
|
|
|
100
100
|
"tamagui": "2.7.6"
|
|
101
101
|
},
|
|
102
102
|
"devDependencies": {
|
|
103
|
-
"@multiplatform.one/config": "7.
|
|
104
|
-
"@multiplatform.one/storybook": "7.
|
|
105
|
-
"@multiplatform.one/test-utils": "7.
|
|
103
|
+
"@multiplatform.one/config": "7.68.0",
|
|
104
|
+
"@multiplatform.one/storybook": "7.68.0",
|
|
105
|
+
"@multiplatform.one/test-utils": "7.68.0",
|
|
106
106
|
"@tamagui/build": "2.7.6",
|
|
107
107
|
"@testing-library/jest-dom": "^7.0.1",
|
|
108
108
|
"@testing-library/react": "^16.3.3",
|
|
@@ -8,6 +8,8 @@ import {
|
|
|
8
8
|
ViewSwitcher,
|
|
9
9
|
type TreeNode,
|
|
10
10
|
Text,
|
|
11
|
+
ActionButton,
|
|
12
|
+
IconButton,
|
|
11
13
|
} from "@multiplatform.one/components";
|
|
12
14
|
import { Button, Checkbox, FileUpload, Input } from "@multiplatform.one/forms";
|
|
13
15
|
import { DataTable, type DataTableColumn } from "@multiplatform.one/table";
|
|
@@ -197,19 +199,11 @@ function BulkBar({
|
|
|
197
199
|
marginBottom={placement === "bottom" ? "$3" : 0}
|
|
198
200
|
>
|
|
199
201
|
<Text fontSize="$3">{t("{{count}} selected", { count })}</Text>
|
|
200
|
-
<
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
<Button size="$4" chromeless icon={UploadSimpleIcon} onPress={onMove}>
|
|
204
|
-
{t("Move")}
|
|
205
|
-
</Button>
|
|
206
|
-
<Button size="$4" chromeless icon={TrashIcon} onPress={onDelete}>
|
|
207
|
-
{t("Delete")}
|
|
208
|
-
</Button>
|
|
202
|
+
<IconButton icon={DownloadSimpleIcon} aria-label={t("Download")} onPress={onDownload} />
|
|
203
|
+
<IconButton icon={UploadSimpleIcon} aria-label={t("Move")} onPress={onMove} />
|
|
204
|
+
<ActionButton kind="delete" onPress={onDelete} />
|
|
209
205
|
<XStack flex={1} />
|
|
210
|
-
<
|
|
211
|
-
{t("Clear")}
|
|
212
|
-
</Button>
|
|
206
|
+
<IconButton icon={XIcon} aria-label={t("Clear")} onPress={onClear} />
|
|
213
207
|
</XStack>
|
|
214
208
|
);
|
|
215
209
|
}
|
|
@@ -471,9 +465,11 @@ export function FileBrowser({
|
|
|
471
465
|
/>
|
|
472
466
|
</YStack>
|
|
473
467
|
{onUpload ? (
|
|
474
|
-
<
|
|
475
|
-
{
|
|
476
|
-
|
|
468
|
+
<IconButton
|
|
469
|
+
icon={UploadSimpleIcon}
|
|
470
|
+
aria-label={t("Upload")}
|
|
471
|
+
onPress={() => setUploadOpen(true)}
|
|
472
|
+
/>
|
|
477
473
|
) : null}
|
|
478
474
|
</XStack>
|
|
479
475
|
);
|
package/src/FormSidebar.tsx
CHANGED
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
*/
|
|
19
19
|
|
|
20
20
|
import {
|
|
21
|
+
ActionButton,
|
|
21
22
|
Avatar,
|
|
22
23
|
Image,
|
|
23
24
|
Sidebar,
|
|
@@ -26,7 +27,7 @@ import {
|
|
|
26
27
|
} from "@multiplatform.one/components";
|
|
27
28
|
import { Button } from "@multiplatform.one/forms";
|
|
28
29
|
import { useResolvedKnobs } from "@multiplatform.one/theme";
|
|
29
|
-
import { ImageSquareIcon, PlusIcon,
|
|
30
|
+
import { ImageSquareIcon, PlusIcon, UserIcon, XIcon } from "@phosphor-icons/react";
|
|
30
31
|
import React from "react";
|
|
31
32
|
import { useTranslation } from "react-i18next";
|
|
32
33
|
import { XStack, YStack, useTheme } from "tamagui";
|
|
@@ -129,19 +130,59 @@ export function FormSidebar({
|
|
|
129
130
|
|
|
130
131
|
const resolvedImageLabel = imageLabel ?? t("Document image");
|
|
131
132
|
|
|
133
|
+
// LC-260 ICONS-OVER-WORDS: Replace and Remove are their symbols, floating
|
|
134
|
+
// over the image on the LC-176 media plate.
|
|
135
|
+
const imageActions =
|
|
136
|
+
imageUrl && (onImageAdd || onImageRemove)
|
|
137
|
+
? (overMedia: boolean) => (
|
|
138
|
+
<>
|
|
139
|
+
{onImageAdd ? (
|
|
140
|
+
<ActionButton
|
|
141
|
+
kind="replace"
|
|
142
|
+
label={t("Replace image")}
|
|
143
|
+
overMedia={overMedia}
|
|
144
|
+
onPress={onImageAdd}
|
|
145
|
+
/>
|
|
146
|
+
) : null}
|
|
147
|
+
{onImageRemove ? (
|
|
148
|
+
<ActionButton
|
|
149
|
+
kind="remove"
|
|
150
|
+
label={t("Remove image")}
|
|
151
|
+
overMedia={overMedia}
|
|
152
|
+
onPress={onImageRemove}
|
|
153
|
+
/>
|
|
154
|
+
) : null}
|
|
155
|
+
</>
|
|
156
|
+
)
|
|
157
|
+
: undefined;
|
|
158
|
+
|
|
132
159
|
const imageBlock =
|
|
133
160
|
imageUrl || onImageAdd ? (
|
|
134
161
|
<YStack alignItems="center" gap="$2">
|
|
135
162
|
{imageUrl ? (
|
|
136
|
-
<
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
163
|
+
<YStack position="relative">
|
|
164
|
+
<Image
|
|
165
|
+
{...knobProps.containerRadius}
|
|
166
|
+
src={imageBroken ? undefined : imageUrl}
|
|
167
|
+
alt={resolvedImageLabel}
|
|
168
|
+
width={imageSize}
|
|
169
|
+
height={imageSize}
|
|
170
|
+
objectFit="contain"
|
|
171
|
+
onError={() => setErroredUrl(imageUrl)}
|
|
172
|
+
/>
|
|
173
|
+
{imageActions && !imageBroken ? (
|
|
174
|
+
<XStack
|
|
175
|
+
data-form-sidebar="image-actions"
|
|
176
|
+
position="absolute"
|
|
177
|
+
top="$2"
|
|
178
|
+
right="$2"
|
|
179
|
+
zIndex={1}
|
|
180
|
+
gap="$2"
|
|
181
|
+
>
|
|
182
|
+
{imageActions(true)}
|
|
183
|
+
</XStack>
|
|
184
|
+
) : null}
|
|
185
|
+
</YStack>
|
|
145
186
|
) : (
|
|
146
187
|
<Button
|
|
147
188
|
chromeless
|
|
@@ -155,28 +196,7 @@ export function FormSidebar({
|
|
|
155
196
|
{t("Image failed to load")}
|
|
156
197
|
</Text>
|
|
157
198
|
) : null}
|
|
158
|
-
{
|
|
159
|
-
<XStack gap="$2">
|
|
160
|
-
{onImageAdd ? (
|
|
161
|
-
<Button
|
|
162
|
-
size="$2"
|
|
163
|
-
chromeless
|
|
164
|
-
icon={UploadIcon}
|
|
165
|
-
aria-label={t("Replace image")}
|
|
166
|
-
onPress={onImageAdd}
|
|
167
|
-
/>
|
|
168
|
-
) : null}
|
|
169
|
-
{onImageRemove ? (
|
|
170
|
-
<Button
|
|
171
|
-
size="$2"
|
|
172
|
-
chromeless
|
|
173
|
-
icon={XIcon}
|
|
174
|
-
aria-label={t("Remove image")}
|
|
175
|
-
onPress={onImageRemove}
|
|
176
|
-
/>
|
|
177
|
-
) : null}
|
|
178
|
-
</XStack>
|
|
179
|
-
) : null}
|
|
199
|
+
{imageBroken && imageActions ? <XStack gap="$2">{imageActions(false)}</XStack> : null}
|
|
180
200
|
</YStack>
|
|
181
201
|
) : null;
|
|
182
202
|
|
package/src/FrappeAssignment.tsx
CHANGED
|
@@ -196,7 +196,6 @@ function AssignmentRow({
|
|
|
196
196
|
{onComplete ? (
|
|
197
197
|
<Button
|
|
198
198
|
size="$2"
|
|
199
|
-
circular
|
|
200
199
|
chromeless
|
|
201
200
|
disabled={disabled}
|
|
202
201
|
aria-label={t("Mark assignment complete")}
|
|
@@ -207,7 +206,6 @@ function AssignmentRow({
|
|
|
207
206
|
{onRemove ? (
|
|
208
207
|
<Button
|
|
209
208
|
size="$2"
|
|
210
|
-
circular
|
|
211
209
|
chromeless
|
|
212
210
|
disabled={disabled}
|
|
213
211
|
aria-label={t("Remove assignment")}
|
|
@@ -386,7 +384,6 @@ function FrappeAssignmentBody({
|
|
|
386
384
|
{canMutate ? (
|
|
387
385
|
<Button
|
|
388
386
|
size="$2"
|
|
389
|
-
circular
|
|
390
387
|
chromeless
|
|
391
388
|
aria-label={t("Add assignment")}
|
|
392
389
|
onPress={() => setAddOpen((prev) => !prev)}
|
|
@@ -78,10 +78,14 @@ describe("FrappeDashboard refresh press floor (LC-54 amendment)", () => {
|
|
|
78
78
|
expect(refresh.className).not.toMatch(negativeMarginAtom);
|
|
79
79
|
const token = refresh.getAttribute("data-size-token") as SizeTokens;
|
|
80
80
|
const px = Number(getVariableValue(getSize(token)));
|
|
81
|
-
|
|
82
|
-
|
|
81
|
+
// LC-176: the bare glyph sits in a square box at its control height, inside
|
|
82
|
+
// the token box, and slop restores the 44pt press floor.
|
|
83
|
+
const box = Number(/(?:^| )_mih-(\d+)px/.exec(refresh.className)?.[1]);
|
|
84
|
+
expect(refresh.className).toContain(`_miw-${box}px`);
|
|
85
|
+
expect(box).toBeGreaterThan(0);
|
|
86
|
+
expect(box).toBeLessThanOrEqual(px);
|
|
83
87
|
const slop = Number(refresh.getAttribute("data-mp-press-slop") ?? 0);
|
|
84
|
-
expect(
|
|
88
|
+
expect(box + slop * 2).toBeGreaterThanOrEqual(44);
|
|
85
89
|
});
|
|
86
90
|
|
|
87
91
|
it("hover feedback rides the button's own in-slot box (house channel)", () => {
|
package/src/FrappeDashboard.tsx
CHANGED
|
@@ -206,7 +206,6 @@ function LiveDashboardContent<TDoc extends { name: string; doctype: string }>({
|
|
|
206
206
|
`loading` (not bare `disabled`) is the derived busy state. */}
|
|
207
207
|
<Button
|
|
208
208
|
size="$2"
|
|
209
|
-
circular
|
|
210
209
|
icon={ArrowsClockwiseIcon}
|
|
211
210
|
onPress={onRefresh}
|
|
212
211
|
loading={isRefreshing || isLiveLoading}
|
|
@@ -328,7 +327,6 @@ export function FrappeDashboard<TDoc extends { name: string; doctype: string }>(
|
|
|
328
327
|
{/* LC-54: house Button, own-box floor (see the live-path refresh). */}
|
|
329
328
|
<Button
|
|
330
329
|
size="$2"
|
|
331
|
-
circular
|
|
332
330
|
icon={ArrowsClockwiseIcon}
|
|
333
331
|
onPress={bumpRefresh}
|
|
334
332
|
loading={isRefreshing}
|
|
@@ -128,13 +128,13 @@ describe("FrappeForm connections, schema mode", () => {
|
|
|
128
128
|
|
|
129
129
|
it("a new record has no connections yet", async () => {
|
|
130
130
|
renderForm({});
|
|
131
|
-
await waitFor(() => expect(screen.
|
|
131
|
+
await waitFor(() => expect(screen.getByLabelText("Save")).toBeTruthy());
|
|
132
132
|
expect(screen.queryByText("Connections")).toBeNull();
|
|
133
133
|
});
|
|
134
134
|
|
|
135
135
|
it("showConnections={false} leaves the tab out", async () => {
|
|
136
136
|
renderForm({ name: "bulbasaur", showConnections: false });
|
|
137
|
-
await waitFor(() => expect(screen.
|
|
137
|
+
await waitFor(() => expect(screen.getByLabelText("Save")).toBeTruthy());
|
|
138
138
|
expect(screen.queryByText("Connections")).toBeNull();
|
|
139
139
|
});
|
|
140
140
|
});
|
|
@@ -192,7 +192,7 @@ describe("FrappeForm resolves a doctype through the desk form engine", () => {
|
|
|
192
192
|
it("save refuses an empty field that mandatory_depends_on made required", async () => {
|
|
193
193
|
renderForm({ name: "LOAN-APPROVED", roles: ["Loan Officer"] });
|
|
194
194
|
await expectProbe("status", "val=Approved");
|
|
195
|
-
fireEvent.click(screen.
|
|
195
|
+
fireEvent.click(screen.getByLabelText("Save"));
|
|
196
196
|
await expectProbe("reason", "err=Reason is required");
|
|
197
197
|
});
|
|
198
198
|
|
|
@@ -276,7 +276,7 @@ describe("FrappeForm resolves a doctype through the desk form engine", () => {
|
|
|
276
276
|
renderForm();
|
|
277
277
|
await screen.findByTestId("probe-status");
|
|
278
278
|
expect(screen.getByText("Name")).toBeTruthy();
|
|
279
|
-
fireEvent.click(screen.
|
|
279
|
+
fireEvent.click(screen.getByLabelText("Save"));
|
|
280
280
|
await waitFor(() => {
|
|
281
281
|
expect(screen.getByText("Name is required")).toBeTruthy();
|
|
282
282
|
});
|
|
@@ -132,7 +132,7 @@ describe("FrappeForm runs the desk docstatus lifecycle", () => {
|
|
|
132
132
|
renderForm(fixtures, { name: "LOAN-DRAFT" });
|
|
133
133
|
await expectProbe("employee_name", "val=Ada Lovelace");
|
|
134
134
|
await expectStatus("draft");
|
|
135
|
-
expect(screen.
|
|
135
|
+
expect(screen.queryByLabelText("Save")).toBeNull();
|
|
136
136
|
|
|
137
137
|
fireEvent.click(screen.getByText("Submit"));
|
|
138
138
|
await waitFor(() => expect(confirm).toHaveBeenCalledWith("Permanently Submit LOAN-DRAFT?"));
|
|
@@ -172,7 +172,7 @@ describe("FrappeForm runs the desk docstatus lifecycle", () => {
|
|
|
172
172
|
|
|
173
173
|
fireEvent.click(screen.getByTestId("set-remarks"));
|
|
174
174
|
await expectStatus("notSaved");
|
|
175
|
-
expect(screen.
|
|
175
|
+
expect(screen.getByLabelText("Save")).toBeTruthy();
|
|
176
176
|
expect(screen.queryByText("Submit")).toBeNull();
|
|
177
177
|
});
|
|
178
178
|
|
|
@@ -185,8 +185,8 @@ describe("FrappeForm runs the desk docstatus lifecycle", () => {
|
|
|
185
185
|
onAmend: vi.fn(),
|
|
186
186
|
});
|
|
187
187
|
await expectStatus("submitted");
|
|
188
|
-
expect(screen.
|
|
189
|
-
expect(screen.
|
|
188
|
+
expect(screen.queryByLabelText("Delete")).toBeNull();
|
|
189
|
+
expect(screen.getByLabelText("Close")).toBeTruthy();
|
|
190
190
|
expect(screen.getByTestId("frappe-form-cancel-document").textContent).toContain(
|
|
191
191
|
"Cancel Document",
|
|
192
192
|
);
|
|
@@ -196,7 +196,7 @@ describe("FrappeForm runs the desk docstatus lifecycle", () => {
|
|
|
196
196
|
await expectStatus("cancelled");
|
|
197
197
|
await waitFor(async () => expect(await docstatusOf(fixtures, "LOAN-SUBMITTED")).toBe(2));
|
|
198
198
|
expect(screen.getByText("Amend")).toBeTruthy();
|
|
199
|
-
expect(screen.
|
|
199
|
+
expect(screen.getByLabelText("Delete")).toBeTruthy();
|
|
200
200
|
});
|
|
201
201
|
|
|
202
202
|
it("an allow_on_submit edit turns Cancel into Update, which keeps the document submitted", async () => {
|
|
@@ -205,10 +205,10 @@ describe("FrappeForm runs the desk docstatus lifecycle", () => {
|
|
|
205
205
|
await expectStatus("submitted");
|
|
206
206
|
|
|
207
207
|
fireEvent.click(screen.getByTestId("set-remarks"));
|
|
208
|
-
await waitFor(() => expect(screen.
|
|
208
|
+
await waitFor(() => expect(screen.getByLabelText("Update")).toBeTruthy());
|
|
209
209
|
expect(screen.queryByTestId("frappe-form-cancel-document")).toBeNull();
|
|
210
210
|
|
|
211
|
-
fireEvent.click(screen.
|
|
211
|
+
fireEvent.click(screen.getByLabelText("Update"));
|
|
212
212
|
await waitFor(async () =>
|
|
213
213
|
expect((await fixtures.getDoc("Asset Loan", "LOAN-SUBMITTED"))?.remarks).toBe("edited"),
|
|
214
214
|
);
|
|
@@ -255,7 +255,7 @@ describe("FrappeForm runs the desk docstatus lifecycle", () => {
|
|
|
255
255
|
await expectStatus("notSaved");
|
|
256
256
|
await expectProbe("employee_name", "val=Katherine Johnson");
|
|
257
257
|
await expectProbe("serial_no", "ro=false");
|
|
258
|
-
fireEvent.click(screen.
|
|
258
|
+
fireEvent.click(screen.getByLabelText("Save"));
|
|
259
259
|
await waitFor(async () => {
|
|
260
260
|
const amendments = await fixtures.getList("Asset Loan", {
|
|
261
261
|
filters: { amended_from: "LOAN-CANCELLED" },
|
|
@@ -279,7 +279,7 @@ describe("FrappeForm runs the desk docstatus lifecycle", () => {
|
|
|
279
279
|
renderForm(corpus(), { name: "LOAN-SUBMITTED", roles: ["Loan Officer"], onCancel: vi.fn() });
|
|
280
280
|
await expectStatus("submitted");
|
|
281
281
|
expect(screen.queryByTestId("frappe-form-cancel-document")).toBeNull();
|
|
282
|
-
expect(screen.
|
|
282
|
+
expect(screen.getByLabelText("Cancel")).toBeTruthy();
|
|
283
283
|
cleanup();
|
|
284
284
|
|
|
285
285
|
renderForm(corpus(), { name: "LOAN-CANCELLED", roles: ["Loan Officer"], onAmend: vi.fn() });
|
|
@@ -289,7 +289,7 @@ describe("FrappeForm runs the desk docstatus lifecycle", () => {
|
|
|
289
289
|
|
|
290
290
|
renderForm(corpus(), { name: "LOAN-DRAFT", roles: ["Loan Clerk"] });
|
|
291
291
|
await expectStatus("draft");
|
|
292
|
-
expect(screen.
|
|
292
|
+
expect(screen.getByLabelText("Save")).toBeTruthy();
|
|
293
293
|
expect(screen.queryByText("Submit")).toBeNull();
|
|
294
294
|
});
|
|
295
295
|
|
|
@@ -305,7 +305,7 @@ describe("FrappeForm runs the desk docstatus lifecycle", () => {
|
|
|
305
305
|
renderForm(corpus(), { name: "LOAN-SUBMITTED", roles: ["Auditor"], onCancel: vi.fn() });
|
|
306
306
|
await expectStatus("submitted");
|
|
307
307
|
expect(screen.queryByTestId("frappe-form-cancel-document")).toBeNull();
|
|
308
|
-
expect(screen.
|
|
308
|
+
expect(screen.getByLabelText("Cancel")).toBeTruthy();
|
|
309
309
|
cleanup();
|
|
310
310
|
|
|
311
311
|
renderForm(corpus(), { name: "LOAN-CANCELLED", roles: ["Auditor"], onAmend: vi.fn() });
|
|
@@ -326,11 +326,11 @@ describe("a read-only record view keeps desk's lifecycle beside Edit", () => {
|
|
|
326
326
|
const onEdit = vi.fn();
|
|
327
327
|
renderForm(fixtures, { name: "LOAN-DRAFT", onEdit, onCancel: vi.fn(), onDelete: vi.fn() });
|
|
328
328
|
await expectStatus("draft");
|
|
329
|
-
expect(screen.
|
|
330
|
-
expect(screen.
|
|
331
|
-
expect(screen.
|
|
329
|
+
expect(screen.queryByLabelText("Save")).toBeNull();
|
|
330
|
+
expect(screen.queryByLabelText("Cancel")).toBeNull();
|
|
331
|
+
expect(screen.getByLabelText("Delete")).toBeTruthy();
|
|
332
332
|
|
|
333
|
-
fireEvent.click(screen.
|
|
333
|
+
fireEvent.click(screen.getByLabelText("Edit"));
|
|
334
334
|
expect(onEdit).toHaveBeenCalledTimes(1);
|
|
335
335
|
|
|
336
336
|
fireEvent.click(screen.getByText("Submit"));
|
|
@@ -338,30 +338,30 @@ describe("a read-only record view keeps desk's lifecycle beside Edit", () => {
|
|
|
338
338
|
await waitFor(async () => expect(await docstatusOf(fixtures, "LOAN-DRAFT")).toBe(1));
|
|
339
339
|
await expectStatus("submitted");
|
|
340
340
|
expect(screen.getByText("Cancel Document")).toBeTruthy();
|
|
341
|
-
expect(screen.
|
|
342
|
-
expect(screen.
|
|
341
|
+
expect(screen.getByLabelText("Edit")).toBeTruthy();
|
|
342
|
+
expect(screen.queryByLabelText("Delete")).toBeNull();
|
|
343
343
|
});
|
|
344
344
|
|
|
345
345
|
it("a submitted document offers Cancel Document, and its allow_on_submit field keeps Edit", async () => {
|
|
346
346
|
const fixtures = corpus();
|
|
347
347
|
renderForm(fixtures, { name: "LOAN-SUBMITTED", onEdit: vi.fn(), onCancel: vi.fn() });
|
|
348
348
|
await expectStatus("submitted");
|
|
349
|
-
expect(screen.
|
|
350
|
-
expect(screen.
|
|
351
|
-
expect(screen.
|
|
349
|
+
expect(screen.getByLabelText("Edit")).toBeTruthy();
|
|
350
|
+
expect(screen.queryByLabelText("Cancel")).toBeNull();
|
|
351
|
+
expect(screen.queryByLabelText("Close")).toBeNull();
|
|
352
352
|
|
|
353
353
|
fireEvent.click(screen.getByText("Cancel Document"));
|
|
354
354
|
await waitFor(() => expect(confirm).toHaveBeenCalledWith("Permanently Cancel LOAN-SUBMITTED?"));
|
|
355
355
|
await waitFor(async () => expect(await docstatusOf(fixtures, "LOAN-SUBMITTED")).toBe(2));
|
|
356
356
|
await expectStatus("cancelled");
|
|
357
|
-
expect(screen.
|
|
357
|
+
expect(screen.queryByLabelText("Edit")).toBeNull();
|
|
358
358
|
});
|
|
359
359
|
|
|
360
360
|
it("a cancelled document offers Amend and no Edit", async () => {
|
|
361
361
|
const onAmend = vi.fn();
|
|
362
362
|
renderForm(corpus(), { name: "LOAN-CANCELLED", onEdit: vi.fn(), onAmend });
|
|
363
363
|
await expectStatus("cancelled");
|
|
364
|
-
expect(screen.
|
|
364
|
+
expect(screen.queryByLabelText("Edit")).toBeNull();
|
|
365
365
|
|
|
366
366
|
fireEvent.click(screen.getByText("Amend"));
|
|
367
367
|
await waitFor(() => expect(onAmend).toHaveBeenCalled());
|
|
@@ -374,7 +374,7 @@ describe("a submittable doctype's routed pages", () => {
|
|
|
374
374
|
const pushed = renderPage(corpus(), "/loans/LOAN-DRAFT");
|
|
375
375
|
await expectStatus("draft");
|
|
376
376
|
expect(screen.getByText("Submit")).toBeTruthy();
|
|
377
|
-
expect(screen.
|
|
377
|
+
expect(screen.queryByLabelText("Save")).toBeNull();
|
|
378
378
|
|
|
379
379
|
// LC-145: Submit is the bar's one action, so Edit rides the "…" menu.
|
|
380
380
|
fireEvent.click(screen.getByTestId("frappe-form-menu"));
|
|
@@ -386,14 +386,14 @@ describe("a submittable doctype's routed pages", () => {
|
|
|
386
386
|
const pushed = renderPage(corpus(), "/loans/LOAN-DRAFT/edit");
|
|
387
387
|
await expectStatus("draft");
|
|
388
388
|
expect(screen.getByText("Submit")).toBeTruthy();
|
|
389
|
-
expect(screen.
|
|
389
|
+
expect(screen.queryByLabelText("Edit")).toBeNull();
|
|
390
390
|
|
|
391
391
|
fireEvent.click(screen.getByTestId("set-remarks"));
|
|
392
392
|
await expectStatus("notSaved");
|
|
393
|
-
expect(screen.
|
|
393
|
+
expect(screen.getByLabelText("Save")).toBeTruthy();
|
|
394
394
|
expect(screen.queryByText("Submit")).toBeNull();
|
|
395
395
|
|
|
396
|
-
fireEvent.click(screen.
|
|
396
|
+
fireEvent.click(screen.getAllByLabelText(/^(Cancel|Back to .+ list)$/)[0]!);
|
|
397
397
|
expect(pushed).toEqual(["/loans/LOAN-DRAFT"]);
|
|
398
398
|
});
|
|
399
399
|
|
|
@@ -449,7 +449,7 @@ describe("the leave button stays live while a write is in flight (LC-30)", () =>
|
|
|
449
449
|
const onCancel = vi.fn();
|
|
450
450
|
renderForm(fixtures, { name: "LOAN-SUBMITTED", onCancel });
|
|
451
451
|
await expectStatus("submitted");
|
|
452
|
-
expect(screen.getByTestId("frappe-form-close").
|
|
452
|
+
expect(screen.getByTestId("frappe-form-close").getAttribute("aria-label")).toBe("Close");
|
|
453
453
|
|
|
454
454
|
fireEvent.click(screen.getByTestId("frappe-form-cancel-document"));
|
|
455
455
|
await waitFor(() =>
|
package/src/FrappeForm.tsx
CHANGED
|
@@ -23,7 +23,7 @@ import type React from "react";
|
|
|
23
23
|
import { useEffect, useMemo, useState } from "react";
|
|
24
24
|
import type { TFunction } from "i18next";
|
|
25
25
|
import { useTranslation } from "react-i18next";
|
|
26
|
-
import {
|
|
26
|
+
import { IconButton, Input, formCommonColors, standardActions } from "@multiplatform.one/forms";
|
|
27
27
|
import { Text as TamaguiText, XStack, YStack } from "tamagui";
|
|
28
28
|
import { hairlineWidth, useResolvedKnobs } from "@multiplatform.one/theme";
|
|
29
29
|
import { useFrappeConfig } from "./FrappeProvider";
|
|
@@ -677,13 +677,17 @@ function FrappeFormView<TDoc extends { name: string; doctype: string }>({
|
|
|
677
677
|
<YStack flex={1} backgroundColor="$background" testID="frappe-form-route-editor">
|
|
678
678
|
<XStack alignItems="center" gap="$2" paddingHorizontal="$2" paddingVertical="$1">
|
|
679
679
|
<XStack flex={1} flexBasis={0} justifyContent="flex-start">
|
|
680
|
-
<
|
|
681
|
-
|
|
680
|
+
<IconButton
|
|
681
|
+
icon={standardActions.cancel.icon}
|
|
682
|
+
edge="start"
|
|
683
|
+
data-mp-action="cancel"
|
|
682
684
|
onPress={onCancel ? handleCancel : routePage.onBack}
|
|
683
|
-
aria-label={
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
685
|
+
aria-label={
|
|
686
|
+
onCancel
|
|
687
|
+
? t(standardActions.cancel.label)
|
|
688
|
+
: t("Back to {{doctype}} list", { doctype })
|
|
689
|
+
}
|
|
690
|
+
/>
|
|
687
691
|
</XStack>
|
|
688
692
|
<Text
|
|
689
693
|
flexShrink={1}
|