@multiplatform.one/frappe-ui 7.88.1 → 7.88.2
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/ChartCard.native.js.map +1 -1
- package/dist/cjs/FileBrowser/AttachLibrary.native.js.map +1 -1
- package/dist/cjs/FileBrowser/folderTree.native.js.map +1 -1
- package/dist/cjs/FileBrowser/index.native.js.map +1 -1
- package/dist/cjs/FileBrowser/types.native.js.map +1 -1
- package/dist/cjs/FileBrowser/viewPersistence.native.js.map +1 -1
- package/dist/cjs/FormSidebar.native.js.map +1 -1
- package/dist/cjs/FrappeAssignment.native.js.map +1 -1
- package/dist/cjs/FrappeCalendar.native.js.map +1 -1
- package/dist/cjs/FrappeChartCard.cjs +5 -3
- package/dist/cjs/FrappeChartCard.native.js +5 -3
- package/dist/cjs/FrappeChartCard.native.js.map +1 -1
- package/dist/cjs/FrappeConnectionIndicator.native.js.map +1 -1
- package/dist/cjs/FrappeDashboard.native.js.map +1 -1
- package/dist/cjs/FrappeForm.cjs +6 -2
- package/dist/cjs/FrappeForm.native.js +7 -3
- package/dist/cjs/FrappeForm.native.js.map +1 -1
- package/dist/cjs/FrappeFormActions.native.js.map +1 -1
- package/dist/cjs/FrappeFormConnections.cjs +3 -3
- package/dist/cjs/FrappeFormConnections.native.js +3 -3
- package/dist/cjs/FrappeFormConnections.native.js.map +1 -1
- package/dist/cjs/FrappeGantt.native.js.map +1 -1
- package/dist/cjs/FrappeImageView.native.js.map +1 -1
- package/dist/cjs/FrappeInsights.native.js.map +1 -1
- package/dist/cjs/FrappeKPICard.cjs +5 -3
- package/dist/cjs/FrappeKPICard.native.js +5 -3
- package/dist/cjs/FrappeKPICard.native.js.map +1 -1
- package/dist/cjs/FrappeKanban.native.js.map +1 -1
- package/dist/cjs/FrappeLikedBy.native.js.map +1 -1
- package/dist/cjs/FrappeList.cjs +3 -3
- package/dist/cjs/FrappeList.native.js +3 -3
- package/dist/cjs/FrappeList.native.js.map +1 -1
- package/dist/cjs/FrappeListView.native.js.map +1 -1
- package/dist/cjs/FrappeNotConfigured.native.js.map +1 -1
- package/dist/cjs/FrappeProvider.native.js.map +1 -1
- package/dist/cjs/FrappeReconnectIndicator.native.js.map +1 -1
- package/dist/cjs/FrappeRecordView.native.js.map +1 -1
- package/dist/cjs/FrappeReportBuilder.native.js.map +1 -1
- package/dist/cjs/FrappeReportView.native.js +3 -3
- package/dist/cjs/FrappeReportView.native.js.map +1 -1
- package/dist/cjs/FrappeRowsReader.native.js.map +1 -1
- package/dist/cjs/FrappeTable.cjs +19 -3
- package/dist/cjs/FrappeTable.native.js +19 -3
- package/dist/cjs/FrappeTable.native.js.map +1 -1
- package/dist/cjs/FrappeTreeView.native.js.map +1 -1
- package/dist/cjs/SyncErrorNotice.native.js.map +1 -1
- package/dist/cjs/commentActions.native.js.map +1 -1
- package/dist/cjs/components/attachments.native.js.map +1 -1
- package/dist/cjs/components/tags.native.js.map +1 -1
- package/dist/cjs/components/timeline.native.js.map +1 -1
- package/dist/cjs/dependsOn.native.js.map +1 -1
- package/dist/cjs/desk/DeskFormPage.native.js.map +1 -1
- package/dist/cjs/desk/DeskFormSidebar.native.js.map +1 -1
- package/dist/cjs/desk/DeskListPage.native.js.map +1 -1
- package/dist/cjs/desk/DeskShell.native.js.map +1 -1
- package/dist/cjs/desk/DeskSidebar.native.js.map +1 -1
- package/dist/cjs/desk/awesomebar.native.js.map +1 -1
- package/dist/cjs/fieldOverrides.native.js.map +1 -1
- package/dist/cjs/fieldRegistry.native.js +31 -31
- package/dist/cjs/fieldRegistry.native.js.map +1 -1
- package/dist/cjs/fields/Barcode/index.native.js.map +1 -1
- package/dist/cjs/fields/Check/index.native.js.map +1 -1
- package/dist/cjs/fields/CodeEditor/index.native.js.map +1 -1
- package/dist/cjs/fields/Color/index.native.js.map +1 -1
- package/dist/cjs/fields/Data/index.native.js.map +1 -1
- package/dist/cjs/fields/Date/catalog.native.js +1 -1
- package/dist/cjs/fields/Date/catalog.native.js.map +1 -1
- package/dist/cjs/fields/Date/index.native.js.map +1 -1
- package/dist/cjs/fields/Date/types.native.js.map +1 -1
- package/dist/cjs/fields/Date/wire.native.js.map +1 -1
- package/dist/cjs/fields/DateRange/index.native.js.map +1 -1
- package/dist/cjs/fields/Duration/index.native.js.map +1 -1
- package/dist/cjs/fields/DynamicLink.native.js.map +1 -1
- package/dist/cjs/fields/FileUpload.native.js.map +1 -1
- package/dist/cjs/fields/FileUploadField/index.native.js.map +1 -1
- package/dist/cjs/fields/Geolocation/index.native.js.map +1 -1
- package/dist/cjs/fields/HTML/index.native.js.map +1 -1
- package/dist/cjs/fields/Heading/index.native.js.map +1 -1
- package/dist/cjs/fields/Icon/index.native.js.map +1 -1
- package/dist/cjs/fields/Link.native.js.map +1 -1
- package/dist/cjs/fields/LinkTree.native.js.map +1 -1
- package/dist/cjs/fields/LongText/index.native.js.map +1 -1
- package/dist/cjs/fields/MentionInput/index.native.js.map +1 -1
- package/dist/cjs/fields/Numeric/index.native.js.map +1 -1
- package/dist/cjs/fields/OTPInput/index.native.js.map +1 -1
- package/dist/cjs/fields/Password/index.native.js.map +1 -1
- package/dist/cjs/fields/Phone/index.native.js.map +1 -1
- package/dist/cjs/fields/Progress/index.native.js.map +1 -1
- package/dist/cjs/fields/RadioGroup/index.native.js.map +1 -1
- package/dist/cjs/fields/Rating/index.native.js.map +1 -1
- package/dist/cjs/fields/ReadOnly/index.native.js.map +1 -1
- package/dist/cjs/fields/Select/index.native.js.map +1 -1
- package/dist/cjs/fields/Signature/index.native.js.map +1 -1
- package/dist/cjs/fields/Slider/index.native.js.map +1 -1
- package/dist/cjs/fields/SmallText/index.native.js.map +1 -1
- package/dist/cjs/fields/Switch/index.native.js.map +1 -1
- package/dist/cjs/fields/TableMultiSelect.native.js.map +1 -1
- package/dist/cjs/fields/TextEditor/types.native.js.map +1 -1
- package/dist/cjs/fields/TimePicker/index.native.js.map +1 -1
- package/dist/cjs/fields/ToggleGroup/index.native.js.map +1 -1
- package/dist/cjs/fields/shared/EditorPreviewPanes.native.js.map +1 -1
- package/dist/cjs/filterFields.native.js.map +1 -1
- package/dist/cjs/formEngine/createPrefill.native.js.map +1 -1
- package/dist/cjs/formEngine/dirtyTracking.native.js.map +1 -1
- package/dist/cjs/formEngine/docLifecycle.native.js.map +1 -1
- package/dist/cjs/formEngine/docPermissions.native.js.map +1 -1
- package/dist/cjs/formEngine/doctypeMeta.native.js.map +1 -1
- package/dist/cjs/formEngine/fetchFrom.native.js.map +1 -1
- package/dist/cjs/formEngine/fieldPermissions.native.js.map +1 -1
- package/dist/cjs/formEngine/formActions.native.js.map +1 -1
- package/dist/cjs/formEngine/formLayout.native.js.map +1 -1
- package/dist/cjs/formEngine/index.native.js.map +1 -1
- package/dist/cjs/formEngine/useAmendedAs.native.js.map +1 -1
- package/dist/cjs/formEngine/useDocRights.native.js.map +1 -1
- package/dist/cjs/formEngine/useFormEngine.native.js.map +1 -1
- package/dist/cjs/formEngine/useSessionRoles.native.js.map +1 -1
- package/dist/cjs/frappeConnections.native.js.map +1 -1
- package/dist/cjs/frappeEventColor.native.js.map +1 -1
- package/dist/cjs/frappeNavigation.native.js.map +1 -1
- package/dist/cjs/frappeStoryTarget.native.js.map +1 -1
- package/dist/cjs/frappeUsers.native.js.map +1 -1
- package/dist/cjs/index.native.js +34 -34
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/insights/InsightsFacetTags.native.js.map +1 -1
- package/dist/cjs/insights/InsightsKpiBand.native.js.map +1 -1
- package/dist/cjs/insights/InsightsLeaders.native.js.map +1 -1
- package/dist/cjs/insights/InsightsRecords.native.js.map +1 -1
- package/dist/cjs/insights/InsightsTable.native.js.map +1 -1
- package/dist/cjs/insights/insightsData.native.js.map +1 -1
- package/dist/cjs/insights/insightsRecord.native.js.map +1 -1
- package/dist/cjs/list/BandFilters.native.js.map +1 -1
- package/dist/cjs/list/FacetBadge.native.js.map +1 -1
- package/dist/cjs/list/FacetList.native.js.map +1 -1
- package/dist/cjs/list/FacetRail.native.js.map +1 -1
- package/dist/cjs/list/ImageWell.native.js.map +1 -1
- package/dist/cjs/list/ListControls.native.js.map +1 -1
- package/dist/cjs/list/ListControlsSheet.native.js.map +1 -1
- package/dist/cjs/list/ListFilterPanel.native.js.map +1 -1
- package/dist/cjs/list/ListFiltersButton.native.js.map +1 -1
- package/dist/cjs/list/ListSidebarToolbar.native.js.map +1 -1
- package/dist/cjs/list/ListToastHost.native.js.map +1 -1
- package/dist/cjs/list/ListToolsSheet.native.js.map +1 -1
- package/dist/cjs/list/RangeFilter.native.js.map +1 -1
- package/dist/cjs/list/ShufflePanel.native.js.map +1 -1
- package/dist/cjs/list/defaultProjection.native.js.map +1 -1
- package/dist/cjs/list/facetBadgeSteps.native.js.map +1 -1
- package/dist/cjs/list/facetReading.native.js.map +1 -1
- package/dist/cjs/list/favorites.native.js.map +1 -1
- package/dist/cjs/list/listColumns.native.js.map +1 -1
- package/dist/cjs/list/listControls.fixture.native.js.map +1 -1
- package/dist/cjs/list/listFields.native.js.map +1 -1
- package/dist/cjs/list/listFormat.native.js.map +1 -1
- package/dist/cjs/list/listState.native.js.map +1 -1
- package/dist/cjs/list/recordLook.native.js.map +1 -1
- package/dist/cjs/list/statusColors.native.js.map +1 -1
- package/dist/cjs/list/useListControls.native.js.map +1 -1
- package/dist/cjs/liveErrors.cjs +15 -0
- package/dist/cjs/liveErrors.native.js +15 -0
- package/dist/cjs/liveErrors.native.js.map +1 -1
- package/dist/cjs/measures.native.js.map +1 -1
- package/dist/cjs/record/RecordBars.native.js.map +1 -1
- package/dist/cjs/record/RecordGallery.native.js.map +1 -1
- package/dist/cjs/record/RecordHero.native.js.map +1 -1
- package/dist/cjs/record/RecordPage.native.js.map +1 -1
- package/dist/cjs/record/RecordPager.native.js.map +1 -1
- package/dist/cjs/record/RecordRows.native.js.map +1 -1
- package/dist/cjs/record/recordData.native.js.map +1 -1
- package/dist/cjs/record/recordSections.native.js.map +1 -1
- package/dist/cjs/recordShape.native.js.map +1 -1
- package/dist/cjs/report/ReportGrid.native.js.map +1 -1
- package/dist/cjs/report/ReportViewToolbar.native.js.map +1 -1
- package/dist/cjs/report/exportCsv.native.js.map +1 -1
- package/dist/cjs/report/queryReport.native.js.map +1 -1
- package/dist/cjs/report/queryReportColumns.native.js.map +1 -1
- package/dist/cjs/report/reportViewModel.native.js.map +1 -1
- package/dist/cjs/report/savedReports.native.js.map +1 -1
- package/dist/cjs/report/useFrappeReport.native.js.map +1 -1
- package/dist/cjs/report/useQueryReport.native.js.map +1 -1
- package/dist/cjs/resolveControl.native.js.map +1 -1
- package/dist/cjs/schemaForm/SchemaWizard.native.js.map +1 -1
- package/dist/cjs/schemaForm/applyFieldOrder.native.js.map +1 -1
- package/dist/cjs/schemaForm/index.cjs +12 -2
- package/dist/cjs/schemaForm/index.native.js +17 -3
- package/dist/cjs/schemaForm/index.native.js.map +1 -1
- package/dist/cjs/sessionUser.native.js.map +1 -1
- package/dist/cjs/shared/devWarn.native.js.map +1 -1
- package/dist/cjs/shared/useKeyboardInset.native.js.map +1 -1
- package/dist/cjs/syncError.native.js.map +1 -1
- package/dist/cjs/useConnectionFilters.native.js.map +1 -1
- package/dist/cjs/useFrappeAggregate.native.js.map +1 -1
- package/dist/cjs/useFrappeFacets.native.js.map +1 -1
- package/dist/cjs/useFrappeForm.native.js.map +1 -1
- package/dist/cjs/useFrappePagination.native.js.map +1 -1
- package/dist/cjs/useFrappeRows.native.js.map +1 -1
- package/dist/esm/FrappeChartCard.mjs +5 -3
- package/dist/esm/FrappeChartCard.mjs.map +1 -1
- package/dist/esm/FrappeChartCard.native.js +5 -3
- package/dist/esm/FrappeChartCard.native.js.map +1 -1
- package/dist/esm/FrappeForm.mjs +7 -3
- package/dist/esm/FrappeForm.mjs.map +1 -1
- package/dist/esm/FrappeForm.native.js +7 -3
- package/dist/esm/FrappeForm.native.js.map +1 -1
- package/dist/esm/FrappeFormConnections.mjs +4 -4
- package/dist/esm/FrappeFormConnections.mjs.map +1 -1
- package/dist/esm/FrappeFormConnections.native.js +4 -4
- package/dist/esm/FrappeFormConnections.native.js.map +1 -1
- package/dist/esm/FrappeKPICard.mjs +5 -3
- package/dist/esm/FrappeKPICard.mjs.map +1 -1
- package/dist/esm/FrappeKPICard.native.js +5 -3
- package/dist/esm/FrappeKPICard.native.js.map +1 -1
- package/dist/esm/FrappeList.mjs +4 -4
- package/dist/esm/FrappeList.mjs.map +1 -1
- package/dist/esm/FrappeList.native.js +4 -4
- package/dist/esm/FrappeList.native.js.map +1 -1
- package/dist/esm/FrappeTable.mjs +20 -4
- package/dist/esm/FrappeTable.mjs.map +1 -1
- package/dist/esm/FrappeTable.native.js +20 -4
- package/dist/esm/FrappeTable.native.js.map +1 -1
- package/dist/esm/liveErrors.mjs +15 -1
- package/dist/esm/liveErrors.mjs.map +1 -1
- package/dist/esm/liveErrors.native.js +15 -1
- package/dist/esm/liveErrors.native.js.map +1 -1
- package/dist/esm/schemaForm/index.mjs +12 -3
- package/dist/esm/schemaForm/index.mjs.map +1 -1
- package/dist/esm/schemaForm/index.native.js +16 -3
- package/dist/esm/schemaForm/index.native.js.map +1 -1
- package/dist/jsx/FrappeChartCard.mjs +5 -3
- package/dist/jsx/FrappeChartCard.mjs.map +1 -1
- package/dist/jsx/FrappeChartCard.native.js +5 -3
- package/dist/jsx/FrappeChartCard.native.js.map +1 -1
- package/dist/jsx/FrappeForm.mjs +7 -3
- package/dist/jsx/FrappeForm.mjs.map +1 -1
- package/dist/jsx/FrappeForm.native.js +6 -2
- package/dist/jsx/FrappeForm.native.js.map +1 -1
- package/dist/jsx/FrappeFormConnections.mjs +4 -4
- package/dist/jsx/FrappeFormConnections.mjs.map +1 -1
- package/dist/jsx/FrappeFormConnections.native.js +3 -3
- package/dist/jsx/FrappeFormConnections.native.js.map +1 -1
- package/dist/jsx/FrappeKPICard.mjs +5 -3
- package/dist/jsx/FrappeKPICard.mjs.map +1 -1
- package/dist/jsx/FrappeKPICard.native.js +5 -3
- package/dist/jsx/FrappeKPICard.native.js.map +1 -1
- package/dist/jsx/FrappeList.mjs +4 -4
- package/dist/jsx/FrappeList.mjs.map +1 -1
- package/dist/jsx/FrappeList.native.js +3 -3
- package/dist/jsx/FrappeList.native.js.map +1 -1
- package/dist/jsx/FrappeTable.mjs +20 -4
- package/dist/jsx/FrappeTable.mjs.map +1 -1
- package/dist/jsx/FrappeTable.native.js +19 -3
- package/dist/jsx/FrappeTable.native.js.map +1 -1
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/liveErrors.mjs +15 -1
- package/dist/jsx/liveErrors.mjs.map +1 -1
- package/dist/jsx/liveErrors.native.js +15 -0
- package/dist/jsx/liveErrors.native.js.map +1 -1
- package/dist/jsx/schemaForm/index.mjs +12 -3
- package/dist/jsx/schemaForm/index.mjs.map +1 -1
- package/dist/jsx/schemaForm/index.native.js +16 -2
- package/dist/jsx/schemaForm/index.native.js.map +1 -1
- package/package.json +16 -16
- package/src/FrappeChartCard.tsx +5 -5
- package/src/FrappeForm.routedPage.spec.tsx +2 -2
- package/src/FrappeForm.tsx +11 -3
- package/src/FrappeFormConnections.tsx +5 -3
- package/src/FrappeGuestMeta.spec.tsx +1 -1
- package/src/FrappeKPICard.tsx +5 -5
- package/src/FrappeList.tsx +4 -6
- package/src/FrappeListView.cards.spec.tsx +1 -1
- package/src/FrappeListView.permissionDenied.spec.tsx +1 -1
- package/src/FrappeListView.seed.spec.tsx +1 -1
- package/src/FrappeTable.infiniteLoadError.spec.tsx +2 -2
- package/src/FrappeTable.refusedCount.spec.tsx +2 -2
- package/src/FrappeTable.tsx +22 -4
- package/src/frappeRefusals.spec.tsx +168 -0
- package/src/list/listColumns.spec.tsx +3 -3
- package/src/list/listFields.spec.ts +2 -2
- package/src/liveErrors.ts +22 -0
- package/src/report/ReportGrid.phone.spec.tsx +5 -5
- package/src/schemaForm/SchemaForm.flat.spec.tsx +20 -11
- package/src/schemaForm/index.tsx +9 -2
- package/src/useFrappeRows.lateMount.spec.tsx +1 -1
- package/src/useFrappeRows.sharedPath.spec.tsx +2 -1
- package/types/FrappeChartCard.d.ts.map +1 -1
- package/types/FrappeFormConnections.d.ts.map +1 -1
- package/types/FrappeKPICard.d.ts.map +1 -1
- package/types/FrappeList.d.ts.map +1 -1
- package/types/FrappeTable.d.ts.map +1 -1
- package/types/liveErrors.d.ts +6 -0
- package/types/liveErrors.d.ts.map +1 -1
- package/types/schemaForm/index.d.ts +1 -0
- package/types/schemaForm/index.d.ts.map +1 -1
|
@@ -38,6 +38,7 @@ __export(schemaForm_exports, {
|
|
|
38
38
|
SchemaForm: () => SchemaForm,
|
|
39
39
|
applyFieldOrder: () => import_applyFieldOrder2.applyFieldOrder,
|
|
40
40
|
applyOrderToSchema: () => import_applyFieldOrder2.applyOrderToSchema,
|
|
41
|
+
columnHugs: () => columnHugs,
|
|
41
42
|
hugRuns: () => hugRuns,
|
|
42
43
|
sectionLabelRepeatsField: () => sectionLabelRepeatsField
|
|
43
44
|
});
|
|
@@ -61,6 +62,15 @@ function _type_of(obj) {
|
|
|
61
62
|
}
|
|
62
63
|
var layoutFieldTypes = /* @__PURE__ */new Set(["Section Break", "Column Break", "Tab Break", "Fold"]);
|
|
63
64
|
var numericFieldTypes = /* @__PURE__ */new Set(["Int", "Float", "Currency", "Percent"]);
|
|
65
|
+
var fixedWidthFieldTypes = /* @__PURE__ */new Set([...numericFieldTypes, "Attach Image", "Image", "Check"]);
|
|
66
|
+
function columnHugs(fields) {
|
|
67
|
+
var shown = fields.filter(function (f) {
|
|
68
|
+
return !f.hidden && !layoutFieldTypes.has(f.type);
|
|
69
|
+
});
|
|
70
|
+
return shown.length > 0 && shown.every(function (f) {
|
|
71
|
+
return fixedWidthFieldTypes.has(f.type);
|
|
72
|
+
});
|
|
73
|
+
}
|
|
64
74
|
function isOverrideFunction(override) {
|
|
65
75
|
return typeof override === "function";
|
|
66
76
|
}
|
|
@@ -363,10 +373,10 @@ function SchemaFormSectionCard(param) {
|
|
|
363
373
|
"data-mpo-schema-form-row": "",
|
|
364
374
|
children: section.columns.map(function (column, colIndex) {
|
|
365
375
|
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.YStack, {
|
|
366
|
-
...hugColumn,
|
|
376
|
+
...(columnHugs(column.fields) ? hugColumn : growColumn),
|
|
367
377
|
...knobProps.fieldGap,
|
|
368
378
|
"data-mpo-schema-form-col": "",
|
|
369
|
-
"data-mpo-schema-form-col-hug": "",
|
|
379
|
+
"data-mpo-schema-form-col-hug": columnHugs(column.fields) ? "" : void 0,
|
|
370
380
|
children: hugRuns(column.fields).map(function (run) {
|
|
371
381
|
return run.length > 1 ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
|
|
372
382
|
...knobProps.gapLg,
|
|
@@ -461,6 +471,10 @@ var hugColumn = {
|
|
|
461
471
|
flexBasis: "100%"
|
|
462
472
|
}
|
|
463
473
|
};
|
|
474
|
+
var growColumn = {
|
|
475
|
+
...hugColumn,
|
|
476
|
+
flexGrow: 1
|
|
477
|
+
};
|
|
464
478
|
var phoneFlatSection = {
|
|
465
479
|
padding: 0,
|
|
466
480
|
backgroundColor: "transparent",
|
|
@@ -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","schemaForm_exports","SchemaForm","applyFieldOrder","import_applyFieldOrder2","applyOrderToSchema","hugRuns","sectionLabelRepeatsField","module","exports","import_jsx_runtime","require","import_forms","import_theme","import_components","import_react","import_react_i18next","import_tamagui","import_dependsOn","import_Heading","import_fieldOverrides","import_applyFieldOrder","_type_of","obj","Symbol","constructor","layoutFieldTypes","Set","numericFieldTypes","isOverrideFunction","override","isOverrideComponent","isOverrideProps","param","schema","doc","setValue","errors","disabled","overrides","hideFields","readOnlyFields","requiredMarking","sectionHeadingLevel","renderFieldWrapper","order","layout","t","useTranslation","knobProps","useResolvedKnobs","resolveFieldComponent","useFieldResolver","orderedSchema","useMemo","dependsOnMap","map","Map","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","fields","iterator","_step","next","done","field","depends_on","evaluator","compileDependsOn","set","err","return","hiddenSet","readOnlySet","requiredMarkMode","flags","filter","f","has","type","hidden","required","computeRequiredMarkMode","renderField","_doc_optionsStr","fieldReadOnly","readOnly","optionsStr","options","doctype","onDoctypeChange","_doc_optionsStr1","String","onDoctypeChange2","fieldValue","baseProps","label","onChange","v","error","fieldMeta","multiple","commit","control","parentDoc","hug","jsx","default","Fragment","children","OverrideComponent","component","mergedProps","props","Component","Text","color","fontSize","fieldtype","Component1","jsxs","renderWrappedField","rendered","RequiredMarkingContext","Provider","mode","YStack","gapLg","sections","section","sectionIndex","sectionKey","SchemaFormSectionCard","headingLevel","flat","collapsible","columns","flatMap","column","length","norm","norm2","trim","toLowerCase","sectionProp","_section_collapsed","collapsed","setCollapsed","useState","useEffect","hideBorder","effectiveCollapsed","media","useMedia","phoneFlat","Card","borderWidth","backgroundColor","phoneFlatSection","style","boxShadow","Header","CompactSectionLabel","description","level","onCollapseChange","Heading"],"sources":["../../../src/schemaForm/index.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","schemaForm_exports","SchemaForm","applyFieldOrder","import_applyFieldOrder2","applyOrderToSchema","columnHugs","hugRuns","sectionLabelRepeatsField","module","exports","import_jsx_runtime","require","import_forms","import_theme","import_components","import_react","import_react_i18next","import_tamagui","import_dependsOn","import_Heading","import_fieldOverrides","import_applyFieldOrder","_type_of","obj","Symbol","constructor","layoutFieldTypes","Set","numericFieldTypes","fixedWidthFieldTypes","fields","shown","filter","f","hidden","has","type","length","every","isOverrideFunction","override","isOverrideComponent","isOverrideProps","param","schema","doc","setValue","errors","disabled","overrides","hideFields","readOnlyFields","requiredMarking","sectionHeadingLevel","renderFieldWrapper","order","layout","t","useTranslation","knobProps","useResolvedKnobs","resolveFieldComponent","useFieldResolver","orderedSchema","useMemo","dependsOnMap","map","Map","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","field","depends_on","evaluator","compileDependsOn","set","err","return","hiddenSet","readOnlySet","requiredMarkMode","flags","required","computeRequiredMarkMode","renderField","_doc_optionsStr","fieldReadOnly","readOnly","optionsStr","options","doctype","onDoctypeChange","_doc_optionsStr1","String","onDoctypeChange2","fieldValue","baseProps","label","onChange","v","error","fieldMeta","multiple","commit","control","parentDoc","hug","jsx","default","Fragment","children","OverrideComponent","component","mergedProps","props","Component","Text","color","fontSize","fieldtype","Component1","jsxs","renderWrappedField","rendered","RequiredMarkingContext","Provider","mode","YStack","gapLg","sections","section","sectionIndex","sectionKey","SchemaFormSectionCard","headingLevel","flat","collapsible","columns","flatMap","column","norm","norm2","trim","toLowerCase","sectionProp","_section_collapsed","collapsed","setCollapsed","useState","useEffect","hideBorder","effectiveCollapsed","media","useMedia","phoneFlat","Card","borderWidth","backgroundColor","phoneFlatSection","style","boxShadow","Header","CompactSectionLabel","description","level","onCollapseChange","Heading"],"sources":["../../../src/schemaForm/index.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.88.
|
|
3
|
+
"version": "7.88.2",
|
|
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.88.
|
|
76
|
-
"@multiplatform.one/desktop": "^7.88.
|
|
77
|
-
"@multiplatform.one/forms": "^7.88.
|
|
78
|
-
"@multiplatform.one/frappe": "^7.88.
|
|
79
|
-
"@multiplatform.one/i18n": "^7.88.
|
|
80
|
-
"@multiplatform.one/markdown": "^7.88.
|
|
81
|
-
"@multiplatform.one/platform": "^7.88.
|
|
82
|
-
"@multiplatform.one/rich-text": "^7.88.
|
|
83
|
-
"@multiplatform.one/router": "^7.88.
|
|
84
|
-
"@multiplatform.one/store": "^7.88.
|
|
85
|
-
"@multiplatform.one/table": "^7.88.
|
|
86
|
-
"@multiplatform.one/theme": "^7.88.
|
|
75
|
+
"@multiplatform.one/components": "^7.88.2",
|
|
76
|
+
"@multiplatform.one/desktop": "^7.88.2",
|
|
77
|
+
"@multiplatform.one/forms": "^7.88.2",
|
|
78
|
+
"@multiplatform.one/frappe": "^7.88.2",
|
|
79
|
+
"@multiplatform.one/i18n": "^7.88.2",
|
|
80
|
+
"@multiplatform.one/markdown": "^7.88.2",
|
|
81
|
+
"@multiplatform.one/platform": "^7.88.2",
|
|
82
|
+
"@multiplatform.one/rich-text": "^7.88.2",
|
|
83
|
+
"@multiplatform.one/router": "^7.88.2",
|
|
84
|
+
"@multiplatform.one/store": "^7.88.2",
|
|
85
|
+
"@multiplatform.one/table": "^7.88.2",
|
|
86
|
+
"@multiplatform.one/theme": "^7.88.2",
|
|
87
87
|
"@phosphor-icons/react": "^2.1.10",
|
|
88
88
|
"@tamagui/colors": "2.7.6",
|
|
89
89
|
"@tanstack/db": "0.11.3",
|
|
@@ -100,9 +100,9 @@
|
|
|
100
100
|
"tamagui": "2.7.6"
|
|
101
101
|
},
|
|
102
102
|
"devDependencies": {
|
|
103
|
-
"@multiplatform.one/config": "7.88.
|
|
104
|
-
"@multiplatform.one/storybook": "7.88.
|
|
105
|
-
"@multiplatform.one/test-utils": "7.88.
|
|
103
|
+
"@multiplatform.one/config": "7.88.2",
|
|
104
|
+
"@multiplatform.one/storybook": "7.88.2",
|
|
105
|
+
"@multiplatform.one/test-utils": "7.88.2",
|
|
106
106
|
"@tamagui/build": "2.7.6",
|
|
107
107
|
"@testing-library/jest-dom": "^7.0.1",
|
|
108
108
|
"@testing-library/react": "^16.3.3",
|
package/src/FrappeChartCard.tsx
CHANGED
|
@@ -35,6 +35,7 @@ import React, { useEffect, useMemo } from "react";
|
|
|
35
35
|
import { useTranslation } from "react-i18next";
|
|
36
36
|
import { YStack, type YStackProps } from "tamagui";
|
|
37
37
|
import { useResolvedKnobs } from "@multiplatform.one/theme";
|
|
38
|
+
import { failureReason } from "./liveErrors";
|
|
38
39
|
import { ChartCard } from "./ChartCard";
|
|
39
40
|
import { useFrappeConfig } from "./FrappeProvider";
|
|
40
41
|
import { frappeDevWarn } from "./shared/devWarn";
|
|
@@ -191,16 +192,15 @@ export function FrappeChartCard({
|
|
|
191
192
|
);
|
|
192
193
|
}
|
|
193
194
|
|
|
195
|
+
const errorReason = isPermissionError ? "permission_denied" : failureReason(error);
|
|
194
196
|
if (error) {
|
|
195
197
|
return (
|
|
196
198
|
<AsyncBoundary
|
|
197
199
|
size="$3"
|
|
198
200
|
error={error}
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
: t("Couldn't load {{title}}", { title: config.title })
|
|
203
|
-
}
|
|
201
|
+
reason={errorReason}
|
|
202
|
+
subject={config.title}
|
|
203
|
+
errorTitle={errorReason ? undefined : t("Couldn't load {{title}}", { title: config.title })}
|
|
204
204
|
{...(chartCardProps as YStackProps)}
|
|
205
205
|
/>
|
|
206
206
|
);
|
|
@@ -29,11 +29,11 @@ const meta = {
|
|
|
29
29
|
title_field: "pokemon_name",
|
|
30
30
|
image_field: "sprite_front",
|
|
31
31
|
fields: [
|
|
32
|
-
{ fieldname: "pokemon_name", fieldtype: "Data", label: "Pokemon
|
|
32
|
+
{ fieldname: "pokemon_name", fieldtype: "Data", label: "Pokemon name", reqd: 1 },
|
|
33
33
|
{ fieldname: "height", fieldtype: "Int", label: "Height (dm)" },
|
|
34
34
|
{ fieldname: "weight", fieldtype: "Int", label: "Weight (hg)" },
|
|
35
35
|
{ fieldname: "column_break_1", fieldtype: "Column Break" },
|
|
36
|
-
{ fieldname: "sprite_front", fieldtype: "Attach Image", label: "Sprite (
|
|
36
|
+
{ fieldname: "sprite_front", fieldtype: "Attach Image", label: "Sprite (front)" },
|
|
37
37
|
],
|
|
38
38
|
permissions: [{ role: "Pokemon Editor", read: 1, write: 1, create: 1 }],
|
|
39
39
|
};
|
package/src/FrappeForm.tsx
CHANGED
|
@@ -49,7 +49,7 @@ import { connectionFields, connectionsFromMeta, type FrappeConnection } from "./
|
|
|
49
49
|
import { FrappeFormConnections } from "./FrappeFormConnections";
|
|
50
50
|
import { FrappeNotConfigured } from "./FrappeNotConfigured";
|
|
51
51
|
import { FrappeRowsReader, type FrappeRowsSnapshot } from "./FrappeRowsReader";
|
|
52
|
-
import { isPermissionError } from "./liveErrors";
|
|
52
|
+
import { failureReason, isPermissionError } from "./liveErrors";
|
|
53
53
|
import { fieldsFromRecord } from "./recordShape";
|
|
54
54
|
import {
|
|
55
55
|
frappeRouteHref,
|
|
@@ -798,7 +798,11 @@ function FrappeFormView<TDoc extends { name: string; doctype: string }>({
|
|
|
798
798
|
<AsyncBoundary
|
|
799
799
|
{...knobProps.panelPadding}
|
|
800
800
|
error={metaError}
|
|
801
|
-
|
|
801
|
+
reason={failureReason(metaError)}
|
|
802
|
+
subject={doctype}
|
|
803
|
+
errorTitle={
|
|
804
|
+
failureReason(metaError) ? undefined : t("Failed to load {{doctype}} form", { doctype })
|
|
805
|
+
}
|
|
802
806
|
/>
|
|
803
807
|
),
|
|
804
808
|
);
|
|
@@ -819,7 +823,11 @@ function FrappeFormView<TDoc extends { name: string; doctype: string }>({
|
|
|
819
823
|
<AsyncBoundary
|
|
820
824
|
{...knobProps.panelPadding}
|
|
821
825
|
error={docError}
|
|
822
|
-
|
|
826
|
+
reason={failureReason(docError)}
|
|
827
|
+
subject={doctype}
|
|
828
|
+
errorTitle={
|
|
829
|
+
failureReason(docError) ? undefined : t("Failed to load {{doctype}}", { doctype })
|
|
830
|
+
}
|
|
823
831
|
/>,
|
|
824
832
|
);
|
|
825
833
|
}
|
|
@@ -5,7 +5,7 @@ import { useMemo } from "react";
|
|
|
5
5
|
import { useTranslation } from "react-i18next";
|
|
6
6
|
import { YStack } from "tamagui";
|
|
7
7
|
import { connectionFields, type FrappeConnection } from "./frappeConnections";
|
|
8
|
-
import {
|
|
8
|
+
import { failureReason } from "./liveErrors";
|
|
9
9
|
import { useFrappeRows, type FrappeRowsConnection } from "./useFrappeRows";
|
|
10
10
|
|
|
11
11
|
type ConnectionRow = Record<string, unknown> & { name: string; doctype: string };
|
|
@@ -98,9 +98,11 @@ export function FrappeFormConnectionSection({
|
|
|
98
98
|
size="$3"
|
|
99
99
|
loading={isLoading}
|
|
100
100
|
error={error}
|
|
101
|
+
reason={failureReason(error)}
|
|
102
|
+
subject={link.doctype}
|
|
101
103
|
errorTitle={
|
|
102
|
-
|
|
103
|
-
?
|
|
104
|
+
failureReason(error)
|
|
105
|
+
? undefined
|
|
104
106
|
: t("Error loading {{doctype}}", { doctype: link.doctype })
|
|
105
107
|
}
|
|
106
108
|
empty={rows.length === 0}
|
|
@@ -27,7 +27,7 @@ const roster = [
|
|
|
27
27
|
const pokemonMeta = {
|
|
28
28
|
name: "Pokemon",
|
|
29
29
|
title_field: "pokemon_name",
|
|
30
|
-
fields: [{ fieldname: "pokemon_name", fieldtype: "Data", label: "Pokemon
|
|
30
|
+
fields: [{ fieldname: "pokemon_name", fieldtype: "Data", label: "Pokemon name" }],
|
|
31
31
|
permissions: [{ role: "Guest", read: 1 }],
|
|
32
32
|
};
|
|
33
33
|
|
package/src/FrappeKPICard.tsx
CHANGED
|
@@ -30,6 +30,7 @@ import {
|
|
|
30
30
|
import React, { useEffect, useMemo } from "react";
|
|
31
31
|
import { useTranslation } from "react-i18next";
|
|
32
32
|
import { type YStackProps } from "tamagui";
|
|
33
|
+
import { failureReason } from "./liveErrors";
|
|
33
34
|
import { useFrappeConfig } from "./FrappeProvider";
|
|
34
35
|
import { frappeDevWarn } from "./shared/devWarn";
|
|
35
36
|
import {
|
|
@@ -161,16 +162,15 @@ export function FrappeKPICard({
|
|
|
161
162
|
return <KPICardSkeleton {...stackProps} />;
|
|
162
163
|
}
|
|
163
164
|
|
|
165
|
+
const errorReason = isPermissionError ? "permission_denied" : failureReason(error);
|
|
164
166
|
if (error) {
|
|
165
167
|
return (
|
|
166
168
|
<AsyncBoundary
|
|
167
169
|
size="$3"
|
|
168
170
|
error={error}
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
: t("Couldn't load {{title}}", { title: config.title })
|
|
173
|
-
}
|
|
171
|
+
reason={errorReason}
|
|
172
|
+
subject={config.title}
|
|
173
|
+
errorTitle={errorReason ? undefined : t("Couldn't load {{title}}", { title: config.title })}
|
|
174
174
|
{...stackProps}
|
|
175
175
|
/>
|
|
176
176
|
);
|
package/src/FrappeList.tsx
CHANGED
|
@@ -12,7 +12,7 @@ import { useTranslation } from "react-i18next";
|
|
|
12
12
|
import { YStack } from "tamagui";
|
|
13
13
|
import { useFrappeConfig } from "./FrappeProvider";
|
|
14
14
|
import { FrappeReconnectIndicator } from "./FrappeReconnectIndicator";
|
|
15
|
-
import {
|
|
15
|
+
import { failureReason } from "./liveErrors";
|
|
16
16
|
import { useFrappePagination, type UseFrappePaginationOptions } from "./useFrappePagination";
|
|
17
17
|
|
|
18
18
|
export interface FrappeListProps<TDoc extends { name: string; doctype: string }> extends Omit<
|
|
@@ -135,11 +135,9 @@ export function FrappeList<TDoc extends { name: string; doctype: string }>({
|
|
|
135
135
|
layout={layout === "grid" ? "generic" : "list"}
|
|
136
136
|
error={error}
|
|
137
137
|
onRetry={onRetry}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
: t("Error loading {{doctype}}", { doctype })
|
|
142
|
-
}
|
|
138
|
+
reason={failureReason(error)}
|
|
139
|
+
subject={doctype}
|
|
140
|
+
errorTitle={failureReason(error) ? undefined : t("Error loading {{doctype}}", { doctype })}
|
|
143
141
|
/>
|
|
144
142
|
);
|
|
145
143
|
}
|
|
@@ -168,7 +168,7 @@ describe("FrappeListView card grid states", () => {
|
|
|
168
168
|
const fixtures = createRosterFixtures();
|
|
169
169
|
vi.spyOn(fixtures, "getList").mockRejectedValue(new Error("Failed to fetch"));
|
|
170
170
|
renderCards(fixtures, { emptyState: <Text testID="roster-empty">empty</Text> });
|
|
171
|
-
await waitFor(() => expect(screen.getByText("
|
|
171
|
+
await waitFor(() => expect(screen.getByText("Pokemon didn't load")).toBeTruthy());
|
|
172
172
|
expect(screen.queryByTestId("roster-empty")).toBeNull();
|
|
173
173
|
expect(screen.getByRole("button", { name: /retry/i })).toBeTruthy();
|
|
174
174
|
});
|
|
@@ -26,7 +26,7 @@ describe("FrappeListView Cards / Permission Denied", () => {
|
|
|
26
26
|
it("shows the permission error, not the empty roster", async () => {
|
|
27
27
|
renderWithProviders(<PermissionDenied />);
|
|
28
28
|
await waitFor(() =>
|
|
29
|
-
expect(screen.getByText("
|
|
29
|
+
expect(screen.getByText("Pokemon isn't open to this account")).toBeTruthy(),
|
|
30
30
|
);
|
|
31
31
|
expect(screen.queryByText("No Pokemon records found")).toBeNull();
|
|
32
32
|
});
|
|
@@ -42,7 +42,7 @@ const pokemonMeta = {
|
|
|
42
42
|
name: "Pokemon",
|
|
43
43
|
title_field: "pokemon_name",
|
|
44
44
|
fields: [
|
|
45
|
-
{ fieldname: "pokemon_name", fieldtype: "Data", label: "Pokemon
|
|
45
|
+
{ fieldname: "pokemon_name", fieldtype: "Data", label: "Pokemon name", in_list_view: 1 },
|
|
46
46
|
{ fieldname: "poke_id", fieldtype: "Int", label: "Poke ID", in_list_view: 1 },
|
|
47
47
|
],
|
|
48
48
|
permissions: [{ role: "Guest", read: 1 }],
|
|
@@ -22,10 +22,10 @@ interface Pokemon {
|
|
|
22
22
|
|
|
23
23
|
const columns: DataTableColumn<Partial<Pokemon>>[] = [
|
|
24
24
|
{ id: "name", accessorKey: "name", header: "ID" },
|
|
25
|
-
{ id: "pokemon_name", accessorKey: "pokemon_name", header: "Pokemon
|
|
25
|
+
{ id: "pokemon_name", accessorKey: "pokemon_name", header: "Pokemon name" },
|
|
26
26
|
];
|
|
27
27
|
|
|
28
|
-
const filterFields = [{ id: "pokemon_name", label: "Pokemon
|
|
28
|
+
const filterFields = [{ id: "pokemon_name", label: "Pokemon name", type: "text" as const }];
|
|
29
29
|
const readOnly = { create: false, write: false, delete: false };
|
|
30
30
|
const settle = { timeout: 8000 };
|
|
31
31
|
|
|
@@ -21,10 +21,10 @@ interface Pokemon {
|
|
|
21
21
|
|
|
22
22
|
const columns: DataTableColumn<Partial<Pokemon>>[] = [
|
|
23
23
|
{ id: "name", accessorKey: "name", header: "ID" },
|
|
24
|
-
{ id: "pokemon_name", accessorKey: "pokemon_name", header: "Pokemon
|
|
24
|
+
{ id: "pokemon_name", accessorKey: "pokemon_name", header: "Pokemon name" },
|
|
25
25
|
];
|
|
26
26
|
|
|
27
|
-
const filterFields = [{ id: "pokemon_name", label: "Pokemon
|
|
27
|
+
const filterFields = [{ id: "pokemon_name", label: "Pokemon name", type: "text" as const }];
|
|
28
28
|
const readOnly = { create: false, write: false, delete: false };
|
|
29
29
|
const settle = { timeout: 8000 };
|
|
30
30
|
|
package/src/FrappeTable.tsx
CHANGED
|
@@ -29,7 +29,7 @@ import { buildPermLevelMatrix } from "./formEngine/fieldPermissions";
|
|
|
29
29
|
import { useDocRights } from "./formEngine/useDocRights";
|
|
30
30
|
import { buildListColumns } from "./list/listColumns";
|
|
31
31
|
import { listFieldsToFetch } from "./list/listFields";
|
|
32
|
-
import { isPermissionError } from "./liveErrors";
|
|
32
|
+
import { failureReason, isPermissionError } from "./liveErrors";
|
|
33
33
|
import { useFrappeRows } from "./useFrappeRows";
|
|
34
34
|
|
|
35
35
|
/**
|
|
@@ -756,6 +756,12 @@ export function FrappeTable<TDoc extends { name: string; doctype: string }>({
|
|
|
756
756
|
// `limit: null` keeps the bench's own page length rather than the hook's
|
|
757
757
|
// default — FrappeTable paginates on the rows it is handed, and moving its
|
|
758
758
|
// row ceiling here would move it for every existing consumer.
|
|
759
|
+
// Retry on the live path parks the read for one render: the last release
|
|
760
|
+
// evicts the errored collection, so the next acquire is one fresh sync.
|
|
761
|
+
const [retryParked, setRetryParked] = useState(false);
|
|
762
|
+
useEffect(() => {
|
|
763
|
+
if (retryParked) setRetryParked(false);
|
|
764
|
+
}, [retryParked]);
|
|
759
765
|
const rowsMessages = useMemo(
|
|
760
766
|
() => ({
|
|
761
767
|
permission: t("You do not have permission to view {{doctype}}", { doctype }),
|
|
@@ -772,7 +778,7 @@ export function FrappeTable<TDoc extends { name: string; doctype: string }>({
|
|
|
772
778
|
fields: clientFields,
|
|
773
779
|
filters: activeFilters,
|
|
774
780
|
limit: null,
|
|
775
|
-
enabled: !serverSide && !columnsPending,
|
|
781
|
+
enabled: !serverSide && !columnsPending && !retryParked,
|
|
776
782
|
messages: rowsMessages,
|
|
777
783
|
});
|
|
778
784
|
|
|
@@ -854,11 +860,20 @@ export function FrappeTable<TDoc extends { name: string; doctype: string }>({
|
|
|
854
860
|
// while a refetch is in flight — that was the named blank-the-list defect.
|
|
855
861
|
const boundaryState = resolvedError
|
|
856
862
|
? { error: resolvedError }
|
|
857
|
-
: isRowsLoadingResolved || columnsPending
|
|
863
|
+
: isRowsLoadingResolved || columnsPending || retryParked
|
|
858
864
|
? { loading: loading ?? true }
|
|
859
865
|
: rowData.length === 0 && !infiniteServerMode && !isFetching
|
|
860
866
|
? { empty: true }
|
|
861
867
|
: null;
|
|
868
|
+
const errorReason = failureReason(resolvedError);
|
|
869
|
+
const retryLoad = () => {
|
|
870
|
+
if (!serverSide) {
|
|
871
|
+
setRetryParked(true);
|
|
872
|
+
return;
|
|
873
|
+
}
|
|
874
|
+
lastFetchKey.current = "";
|
|
875
|
+
if (lastStateRef.current) fetchServerData(lastStateRef.current);
|
|
876
|
+
};
|
|
862
877
|
if (boundaryState) {
|
|
863
878
|
return (
|
|
864
879
|
<YStack
|
|
@@ -874,7 +889,10 @@ export function FrappeTable<TDoc extends { name: string; doctype: string }>({
|
|
|
874
889
|
<FrappeReconnectIndicator config={connectionConfig} />
|
|
875
890
|
<AsyncBoundary
|
|
876
891
|
layout={layout === "list" || layout === "cards" ? "list" : "table"}
|
|
877
|
-
|
|
892
|
+
reason={errorReason}
|
|
893
|
+
subject={doctype}
|
|
894
|
+
onRetry={resolvedError && !infiniteServerMode ? retryLoad : undefined}
|
|
895
|
+
errorTitle={errorReason ? undefined : t("Error loading {{doctype}}", { doctype })}
|
|
878
896
|
emptyTitle={t("No {{doctype}} records found", { doctype })}
|
|
879
897
|
{...boundaryState}
|
|
880
898
|
/>
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
2
|
+
import { cleanup, fireEvent, screen } from "@testing-library/react";
|
|
3
|
+
import i18next from "i18next";
|
|
4
|
+
import { initReactI18next } from "react-i18next";
|
|
5
|
+
import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
|
|
6
|
+
import { FrappeChartCard } from "./FrappeChartCard";
|
|
7
|
+
import { FrappeFormConnectionSection } from "./FrappeFormConnections";
|
|
8
|
+
import { FrappeKPICard } from "./FrappeKPICard";
|
|
9
|
+
import { FrappeList } from "./FrappeList";
|
|
10
|
+
import { FrappeProvider } from "./FrappeProvider";
|
|
11
|
+
import { FrappeTable } from "./FrappeTable";
|
|
12
|
+
import { failureReason, toLiveLoadError } from "./liveErrors";
|
|
13
|
+
|
|
14
|
+
const state = vi.hoisted(() => ({ error: null as unknown, permission: false }));
|
|
15
|
+
|
|
16
|
+
vi.mock("./useFrappeRows", async (importOriginal) => {
|
|
17
|
+
const real = await importOriginal<typeof import("./useFrappeRows")>();
|
|
18
|
+
return {
|
|
19
|
+
...real,
|
|
20
|
+
useFrappeRows: () => ({
|
|
21
|
+
rows: [],
|
|
22
|
+
syncError: state.error,
|
|
23
|
+
isLoading: false,
|
|
24
|
+
isQueryLoading: false,
|
|
25
|
+
isError: state.error !== null,
|
|
26
|
+
error: state.error,
|
|
27
|
+
collection: undefined,
|
|
28
|
+
}),
|
|
29
|
+
};
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
vi.mock("./useFrappePagination", () => ({
|
|
33
|
+
useFrappePagination: () => ({
|
|
34
|
+
items: [],
|
|
35
|
+
isLoading: false,
|
|
36
|
+
onLoadMore: () => {},
|
|
37
|
+
hasMore: false,
|
|
38
|
+
error: state.error,
|
|
39
|
+
}),
|
|
40
|
+
}));
|
|
41
|
+
|
|
42
|
+
vi.mock("./useFrappeAggregate", async (importOriginal) => {
|
|
43
|
+
const real = await importOriginal<typeof import("./useFrappeAggregate")>();
|
|
44
|
+
return {
|
|
45
|
+
...real,
|
|
46
|
+
useFrappeAggregate: () => ({
|
|
47
|
+
groups: [],
|
|
48
|
+
value: undefined,
|
|
49
|
+
isLoading: false,
|
|
50
|
+
isStale: false,
|
|
51
|
+
error: state.error,
|
|
52
|
+
isPermissionError: state.permission,
|
|
53
|
+
}),
|
|
54
|
+
};
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
beforeAll(async () => {
|
|
58
|
+
await i18next.use(initReactI18next).init({
|
|
59
|
+
lng: "en",
|
|
60
|
+
interpolation: { escapeValue: false },
|
|
61
|
+
resources: { en: { translation: {} } },
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
beforeEach(() => {
|
|
66
|
+
state.error = null;
|
|
67
|
+
state.permission = false;
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
afterEach(cleanup);
|
|
71
|
+
|
|
72
|
+
const host = "https://refusals.mock.test";
|
|
73
|
+
const messages = {
|
|
74
|
+
permissionMessage: "You do not have permission to view Customer",
|
|
75
|
+
genericMessage: "Error loading Customer",
|
|
76
|
+
};
|
|
77
|
+
const refused = () =>
|
|
78
|
+
toLiveLoadError(Object.assign(new Error("Not permitted"), { status: 403 }), messages);
|
|
79
|
+
const unreachable = () => toLiveLoadError(new TypeError("Failed to fetch"), messages);
|
|
80
|
+
|
|
81
|
+
function expectRefusal(container: HTMLElement, subject: string) {
|
|
82
|
+
const node = container.querySelector('[data-async-state="refused"]');
|
|
83
|
+
expect(node).not.toBeNull();
|
|
84
|
+
expect(container.querySelector('[data-empty-intent="neutral"]')).not.toBeNull();
|
|
85
|
+
expect(screen.getByText(`${subject} isn't open to this account`)).toBeTruthy();
|
|
86
|
+
expect(screen.queryByText(/Retry/)).toBeNull();
|
|
87
|
+
expect(container.textContent).not.toMatch(/Not permitted|do not have permission/);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
const customerColumns = [{ id: "customer_name", header: "Name", accessorKey: "customer_name" }];
|
|
91
|
+
|
|
92
|
+
function table() {
|
|
93
|
+
return renderWithProviders(
|
|
94
|
+
<FrappeProvider baseURL={host}>
|
|
95
|
+
<FrappeTable doctype="Customer" columns={customerColumns as never} />
|
|
96
|
+
</FrappeProvider>,
|
|
97
|
+
);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
describe("failureReason (FZ-9227)", () => {
|
|
101
|
+
it.each([
|
|
102
|
+
[refused(), "permission_denied"],
|
|
103
|
+
[Object.assign(new Error("x"), { status: 504 }), "timeout"],
|
|
104
|
+
[new Error("Request timed out"), "timeout"],
|
|
105
|
+
[unreachable(), "unreachable"],
|
|
106
|
+
[Object.assign(new Error("x"), { status: 503 }), "down"],
|
|
107
|
+
[Object.assign(new Error("x"), { status: 429 }), "busy"],
|
|
108
|
+
[new Error("Customer CUST-1 not found"), undefined],
|
|
109
|
+
[null, undefined],
|
|
110
|
+
])("%s -> %s", (error, reason) => {
|
|
111
|
+
expect(failureReason(error)).toBe(reason);
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
describe("frappe-ui refusals render LC-165's neutral state (FZ-9227)", () => {
|
|
116
|
+
it("FrappeTable: a 403 is a neutral refusal with no Retry and no server suffix", () => {
|
|
117
|
+
state.error = refused();
|
|
118
|
+
const { container } = table();
|
|
119
|
+
expectRefusal(container, "Customer");
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
it("FrappeTable: a network failure names the cause and offers Retry, with no exception type", () => {
|
|
123
|
+
state.error = unreachable();
|
|
124
|
+
const { container } = table();
|
|
125
|
+
expect(screen.getByText("Customer didn't load")).toBeTruthy();
|
|
126
|
+
expect(screen.getByText(/Can't reach the server\. Tap Retry to try again\./)).toBeTruthy();
|
|
127
|
+
expect(screen.getByText("Retry")).toBeTruthy();
|
|
128
|
+
expect(container.textContent).not.toMatch(/TypeError|Failed to fetch/);
|
|
129
|
+
fireEvent.click(screen.getByText("Retry"));
|
|
130
|
+
});
|
|
131
|
+
|
|
132
|
+
it("FrappeList: a refusal is neutral", () => {
|
|
133
|
+
state.error = refused();
|
|
134
|
+
const { container } = renderWithProviders(
|
|
135
|
+
<FrappeProvider baseURL={host}>
|
|
136
|
+
<FrappeList doctype="Customer" renderItem={() => null} onRetry={() => {}} />
|
|
137
|
+
</FrappeProvider>,
|
|
138
|
+
);
|
|
139
|
+
expectRefusal(container, "Customer");
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
it.each([
|
|
143
|
+
["FrappeKPICard", FrappeKPICard],
|
|
144
|
+
["FrappeChartCard", FrappeChartCard],
|
|
145
|
+
] as const)("%s: a refusal is neutral", (_name, Card) => {
|
|
146
|
+
state.error = new Error("Not permitted");
|
|
147
|
+
state.permission = true;
|
|
148
|
+
const config = { id: "open", title: "Open ToDos", value: 0, format: "number" as const };
|
|
149
|
+
const { container } = renderWithProviders(
|
|
150
|
+
<FrappeProvider baseURL={host}>
|
|
151
|
+
<Card config={config as never} dataSource={{ doctype: "ToDo" } as never} />
|
|
152
|
+
</FrappeProvider>,
|
|
153
|
+
);
|
|
154
|
+
expectRefusal(container, "Open ToDos");
|
|
155
|
+
});
|
|
156
|
+
|
|
157
|
+
it("FrappeFormConnectionSection: a refusal is neutral", () => {
|
|
158
|
+
state.error = refused();
|
|
159
|
+
const { container } = renderWithProviders(
|
|
160
|
+
<FrappeFormConnectionSection
|
|
161
|
+
connection={{ baseURL: host } as never}
|
|
162
|
+
link={{ doctype: "Sales Invoice", fieldname: "customer" } as never}
|
|
163
|
+
name="CUST-1"
|
|
164
|
+
/>,
|
|
165
|
+
);
|
|
166
|
+
expectRefusal(container, "Sales Invoice");
|
|
167
|
+
});
|
|
168
|
+
});
|