@multiplatform.one/frappe-ui 7.84.7 → 7.85.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/useFrappeRows.cjs +4 -2
- package/dist/cjs/useFrappeRows.native.js +4 -2
- package/dist/cjs/useFrappeRows.native.js.map +1 -1
- package/dist/esm/useFrappeRows.mjs +5 -3
- package/dist/esm/useFrappeRows.mjs.map +1 -1
- package/dist/esm/useFrappeRows.native.js +5 -3
- package/dist/esm/useFrappeRows.native.js.map +1 -1
- package/dist/jsx/useFrappeRows.mjs +5 -3
- package/dist/jsx/useFrappeRows.mjs.map +1 -1
- package/dist/jsx/useFrappeRows.native.js +4 -2
- package/dist/jsx/useFrappeRows.native.js.map +1 -1
- package/package.json +16 -16
- package/src/FrappeListView.permissionDenied.spec.tsx +33 -0
- package/src/useFrappeRows.lateMount.spec.tsx +74 -0
- package/src/useFrappeRows.ts +8 -4
- package/types/useFrappeRows.d.ts.map +1 -1
|
@@ -70,9 +70,11 @@ function useFrappeRows(connection, doctype, options = {}) {
|
|
|
70
70
|
onSyncError: handleSyncError
|
|
71
71
|
}), [fields, filters, orderBy, resolvedLimit, handleSyncError]);
|
|
72
72
|
const collection = (0, import_frappe.useFrappeCollection)(active ? connection : void 0, active ? doctype : "", collectionOptions);
|
|
73
|
-
(0, import_react.
|
|
73
|
+
const [errorCollection, setErrorCollection] = (0, import_react.useState)(collection);
|
|
74
|
+
if (errorCollection !== collection) {
|
|
75
|
+
setErrorCollection(collection);
|
|
74
76
|
setSyncError(null);
|
|
75
|
-
}
|
|
77
|
+
}
|
|
76
78
|
const {
|
|
77
79
|
data: rawData,
|
|
78
80
|
isLoading: isQueryLoading,
|
|
@@ -76,9 +76,11 @@ function useFrappeRows(connection, doctype) {
|
|
|
76
76
|
};
|
|
77
77
|
}, [fields, filters, orderBy, resolvedLimit, handleSyncError]);
|
|
78
78
|
var collection = (0, import_frappe.useFrappeCollection)(active ? connection : void 0, active ? doctype : "", collectionOptions);
|
|
79
|
-
(0, import_react.
|
|
79
|
+
var [errorCollection, setErrorCollection] = (0, import_react.useState)(collection);
|
|
80
|
+
if (errorCollection !== collection) {
|
|
81
|
+
setErrorCollection(collection);
|
|
80
82
|
setSyncError(null);
|
|
81
|
-
}
|
|
83
|
+
}
|
|
82
84
|
var {
|
|
83
85
|
data: rawData,
|
|
84
86
|
isLoading: isQueryLoading,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","useFrappeRows_exports","__export","DEFAULT_FRAPPE_ROWS_LIMIT","useFrappeConnection","useFrappeRows","module","exports","import_frappe","require","import_react","import_FrappeProvider","import_liveErrors","defaultMessages","permission","generic","connection","doctype","options","arguments","length","_ref","_ref1","_ref2","fields","filters","orderBy","limit","enabled","messages","mapError","active","permissionMessage","genericMessage","queryFailedMessage","queryFailed","syncError","setSyncError","useState","mapErrorRef","useRef","current","handleSyncError","useCallback","err","toLiveLoadError","resolvedLimit","collectionOptions","useMemo","onSyncError","collection","useFrappeCollection","
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","useFrappeRows_exports","__export","DEFAULT_FRAPPE_ROWS_LIMIT","useFrappeConnection","useFrappeRows","module","exports","import_frappe","require","import_react","import_FrappeProvider","import_liveErrors","defaultMessages","permission","generic","connection","doctype","options","arguments","length","_ref","_ref1","_ref2","fields","filters","orderBy","limit","enabled","messages","mapError","active","permissionMessage","genericMessage","queryFailedMessage","queryFailed","syncError","setSyncError","useState","mapErrorRef","useRef","current","handleSyncError","useCallback","err","toLiveLoadError","resolvedLimit","collectionOptions","useMemo","onSyncError","collection","useFrappeCollection","errorCollection","setErrorCollection","data","rawData","isLoading","isQueryLoading","isError","useLiveQuery","q","from","_list","rows","error","Error"],"sources":["../../src/useFrappeRows.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useFrappeCollection, useLiveQuery } from "@multiplatform.one/frappe";
|
|
2
|
-
import { useCallback,
|
|
2
|
+
import { useCallback, useMemo, useRef, useState } from "react";
|
|
3
3
|
import { useFrappeConfig } from "./FrappeProvider.mjs";
|
|
4
4
|
import { toLiveLoadError } from "./liveErrors.mjs";
|
|
5
5
|
const DEFAULT_FRAPPE_ROWS_LIMIT = 100;
|
|
@@ -41,9 +41,11 @@ function useFrappeRows(connection, doctype, options = {}) {
|
|
|
41
41
|
onSyncError: handleSyncError
|
|
42
42
|
}), [fields, filters, orderBy, resolvedLimit, handleSyncError]);
|
|
43
43
|
const collection = useFrappeCollection(active ? connection : void 0, active ? doctype : "", collectionOptions);
|
|
44
|
-
|
|
44
|
+
const [errorCollection, setErrorCollection] = useState(collection);
|
|
45
|
+
if (errorCollection !== collection) {
|
|
46
|
+
setErrorCollection(collection);
|
|
45
47
|
setSyncError(null);
|
|
46
|
-
}
|
|
48
|
+
}
|
|
47
49
|
const {
|
|
48
50
|
data: rawData,
|
|
49
51
|
isLoading: isQueryLoading,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useFrappeCollection","useLiveQuery","useCallback","
|
|
1
|
+
{"version":3,"names":["useFrappeCollection","useLiveQuery","useCallback","useMemo","useRef","useState","useFrappeConfig","toLiveLoadError","DEFAULT_FRAPPE_ROWS_LIMIT","defaultMessages","permission","generic","useFrappeRows","connection","doctype","options","fields","filters","orderBy","limit","enabled","messages","mapError","active","permissionMessage","genericMessage","queryFailedMessage","queryFailed","syncError","setSyncError","mapErrorRef","current","handleSyncError","err","resolvedLimit","collectionOptions","onSyncError","collection","errorCollection","setErrorCollection","data","rawData","isLoading","isQueryLoading","isError","q","from","_list","rows","error","Error","useFrappeConnection","overrides","config","baseURL","auth","syncOptions","socketPort","siteName","socketBaseURL","fixtures"],"sources":["../../src/useFrappeRows.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useFrappeCollection, useLiveQuery } from "@multiplatform.one/frappe";
|
|
2
|
-
import { useCallback,
|
|
2
|
+
import { useCallback, useMemo, useRef, useState } from "react";
|
|
3
3
|
import { useFrappeConfig } from "./FrappeProvider.native.js";
|
|
4
4
|
import { toLiveLoadError } from "./liveErrors.native.js";
|
|
5
5
|
var DEFAULT_FRAPPE_ROWS_LIMIT = 100;
|
|
@@ -45,9 +45,11 @@ function useFrappeRows(connection, doctype) {
|
|
|
45
45
|
};
|
|
46
46
|
}, [fields, filters, orderBy, resolvedLimit, handleSyncError]);
|
|
47
47
|
var collection = useFrappeCollection(active ? connection : void 0, active ? doctype : "", collectionOptions);
|
|
48
|
-
|
|
48
|
+
var [errorCollection, setErrorCollection] = useState(collection);
|
|
49
|
+
if (errorCollection !== collection) {
|
|
50
|
+
setErrorCollection(collection);
|
|
49
51
|
setSyncError(null);
|
|
50
|
-
}
|
|
52
|
+
}
|
|
51
53
|
var {
|
|
52
54
|
data: rawData,
|
|
53
55
|
isLoading: isQueryLoading,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useFrappeCollection","useLiveQuery","useCallback","
|
|
1
|
+
{"version":3,"names":["useFrappeCollection","useLiveQuery","useCallback","useMemo","useRef","useState","useFrappeConfig","toLiveLoadError","DEFAULT_FRAPPE_ROWS_LIMIT","defaultMessages","permission","generic","useFrappeRows","connection","doctype","options","arguments","length","_ref","_ref1","_ref2","fields","filters","orderBy","limit","enabled","messages","mapError","active","permissionMessage","genericMessage","queryFailedMessage","queryFailed","syncError","setSyncError","mapErrorRef","current","handleSyncError","err","resolvedLimit","collectionOptions","onSyncError","collection","errorCollection","setErrorCollection","data","rawData","isLoading","isQueryLoading","isError","q","from","_list","rows","error","Error","useFrappeConnection","overrides"],"sources":["../../src/useFrappeRows.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useFrappeCollection, useLiveQuery } from "@multiplatform.one/frappe";
|
|
2
|
-
import { useCallback,
|
|
2
|
+
import { useCallback, useMemo, useRef, useState } from "react";
|
|
3
3
|
import { useFrappeConfig } from "./FrappeProvider.mjs";
|
|
4
4
|
import { toLiveLoadError } from "./liveErrors.mjs";
|
|
5
5
|
const DEFAULT_FRAPPE_ROWS_LIMIT = 100;
|
|
@@ -41,9 +41,11 @@ function useFrappeRows(connection, doctype, options = {}) {
|
|
|
41
41
|
onSyncError: handleSyncError
|
|
42
42
|
}), [fields, filters, orderBy, resolvedLimit, handleSyncError]);
|
|
43
43
|
const collection = useFrappeCollection(active ? connection : void 0, active ? doctype : "", collectionOptions);
|
|
44
|
-
|
|
44
|
+
const [errorCollection, setErrorCollection] = useState(collection);
|
|
45
|
+
if (errorCollection !== collection) {
|
|
46
|
+
setErrorCollection(collection);
|
|
45
47
|
setSyncError(null);
|
|
46
|
-
}
|
|
48
|
+
}
|
|
47
49
|
const {
|
|
48
50
|
data: rawData,
|
|
49
51
|
isLoading: isQueryLoading,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useFrappeCollection","useLiveQuery","useCallback","
|
|
1
|
+
{"version":3,"names":["useFrappeCollection","useLiveQuery","useCallback","useMemo","useRef","useState","useFrappeConfig","toLiveLoadError","DEFAULT_FRAPPE_ROWS_LIMIT","defaultMessages","permission","generic","useFrappeRows","connection","doctype","options","fields","filters","orderBy","limit","enabled","messages","mapError","active","permissionMessage","genericMessage","queryFailedMessage","queryFailed","syncError","setSyncError","mapErrorRef","current","handleSyncError","err","resolvedLimit","collectionOptions","onSyncError","collection","errorCollection","setErrorCollection","data","rawData","isLoading","isQueryLoading","isError","q","from","_list","rows","error","Error","useFrappeConnection","overrides","config","baseURL","auth","syncOptions","socketPort","siteName","socketBaseURL","fixtures"],"sources":["../../src/useFrappeRows.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -76,9 +76,11 @@ function useFrappeRows(connection, doctype) {
|
|
|
76
76
|
};
|
|
77
77
|
}, [fields, filters, orderBy, resolvedLimit, handleSyncError]);
|
|
78
78
|
var collection = (0, import_frappe.useFrappeCollection)(active ? connection : void 0, active ? doctype : "", collectionOptions);
|
|
79
|
-
(0, import_react.
|
|
79
|
+
var [errorCollection, setErrorCollection] = (0, import_react.useState)(collection);
|
|
80
|
+
if (errorCollection !== collection) {
|
|
81
|
+
setErrorCollection(collection);
|
|
80
82
|
setSyncError(null);
|
|
81
|
-
}
|
|
83
|
+
}
|
|
82
84
|
var {
|
|
83
85
|
data: rawData,
|
|
84
86
|
isLoading: isQueryLoading,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","useFrappeRows_exports","DEFAULT_FRAPPE_ROWS_LIMIT","useFrappeConnection","useFrappeRows","module","exports","import_frappe","require","import_react","import_FrappeProvider","import_liveErrors","defaultMessages","permission","generic","connection","doctype","options","arguments","length","_ref","_ref1","_ref2","fields","filters","orderBy","limit","enabled","messages","mapError","active","permissionMessage","genericMessage","queryFailedMessage","queryFailed","syncError","setSyncError","useState","mapErrorRef","useRef","current","handleSyncError","useCallback","err","toLiveLoadError","resolvedLimit","collectionOptions","useMemo","onSyncError","collection","useFrappeCollection","
|
|
1
|
+
{"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","useFrappeRows_exports","DEFAULT_FRAPPE_ROWS_LIMIT","useFrappeConnection","useFrappeRows","module","exports","import_frappe","require","import_react","import_FrappeProvider","import_liveErrors","defaultMessages","permission","generic","connection","doctype","options","arguments","length","_ref","_ref1","_ref2","fields","filters","orderBy","limit","enabled","messages","mapError","active","permissionMessage","genericMessage","queryFailedMessage","queryFailed","syncError","setSyncError","useState","mapErrorRef","useRef","current","handleSyncError","useCallback","err","toLiveLoadError","resolvedLimit","collectionOptions","useMemo","onSyncError","collection","useFrappeCollection","errorCollection","setErrorCollection","data","rawData","isLoading","isQueryLoading","isError","useLiveQuery","q","_list"],"sources":["../../src/useFrappeRows.ts"],"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.85.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.85.0",
|
|
76
|
+
"@multiplatform.one/desktop": "^7.85.0",
|
|
77
|
+
"@multiplatform.one/forms": "^7.85.0",
|
|
78
|
+
"@multiplatform.one/frappe": "^7.85.0",
|
|
79
|
+
"@multiplatform.one/i18n": "^7.85.0",
|
|
80
|
+
"@multiplatform.one/markdown": "^7.85.0",
|
|
81
|
+
"@multiplatform.one/platform": "^7.85.0",
|
|
82
|
+
"@multiplatform.one/rich-text": "^7.85.0",
|
|
83
|
+
"@multiplatform.one/router": "^7.85.0",
|
|
84
|
+
"@multiplatform.one/store": "^7.85.0",
|
|
85
|
+
"@multiplatform.one/table": "^7.85.0",
|
|
86
|
+
"@multiplatform.one/theme": "^7.85.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.85.0",
|
|
104
|
+
"@multiplatform.one/storybook": "7.85.0",
|
|
105
|
+
"@multiplatform.one/test-utils": "7.85.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",
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// The card grid's Permission Denied story, rendered as Storybook renders it:
|
|
2
|
+
// a denied read must reach FrappeList's error panel, never the empty roster
|
|
3
|
+
// (LC-84, FZ-9195).
|
|
4
|
+
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
5
|
+
import { cleanup, screen, waitFor } from "@testing-library/react";
|
|
6
|
+
import i18next from "i18next";
|
|
7
|
+
import { initReactI18next } from "react-i18next";
|
|
8
|
+
import { afterEach, beforeAll, describe, expect, it, vi } from "vitest";
|
|
9
|
+
import { PermissionDenied } from "./FrappeListView.cards.stories";
|
|
10
|
+
|
|
11
|
+
vi.mock("@multiplatform.one/storybook", () => ({ action: () => () => undefined }));
|
|
12
|
+
|
|
13
|
+
beforeAll(async () => {
|
|
14
|
+
await i18next.use(initReactI18next).init({
|
|
15
|
+
lng: "en",
|
|
16
|
+
interpolation: { escapeValue: false },
|
|
17
|
+
resources: { en: { translation: {} } },
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
afterEach(() => {
|
|
22
|
+
cleanup();
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
describe("FrappeListView Cards / Permission Denied", () => {
|
|
26
|
+
it("shows the permission error, not the empty roster", async () => {
|
|
27
|
+
renderWithProviders(<PermissionDenied />);
|
|
28
|
+
await waitFor(() =>
|
|
29
|
+
expect(screen.getByText("You do not have permission to view Pokemon")).toBeTruthy(),
|
|
30
|
+
);
|
|
31
|
+
expect(screen.queryByText("No Pokemon records found")).toBeNull();
|
|
32
|
+
});
|
|
33
|
+
});
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
// A reader that mounts onto a read whose first sync already failed must
|
|
2
|
+
// still report that failure. The shared collection replays the held error
|
|
3
|
+
// when the late reader retains it, and the reader must not wipe it in the
|
|
4
|
+
// same commit (FZ-9195, LC-84).
|
|
5
|
+
import { InMemoryFixtureProvider } from "@multiplatform.one/frappe";
|
|
6
|
+
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
7
|
+
import { cleanup, screen, waitFor } from "@testing-library/react";
|
|
8
|
+
import i18next from "i18next";
|
|
9
|
+
import { initReactI18next } from "react-i18next";
|
|
10
|
+
import { Text } from "tamagui";
|
|
11
|
+
import { afterEach, beforeAll, describe, expect, it, vi } from "vitest";
|
|
12
|
+
import { FrappeList } from "./FrappeList";
|
|
13
|
+
import { FrappeProvider } from "./FrappeProvider";
|
|
14
|
+
|
|
15
|
+
interface Customer {
|
|
16
|
+
name: string;
|
|
17
|
+
doctype: string;
|
|
18
|
+
customer_name: string;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
beforeAll(async () => {
|
|
22
|
+
await i18next.use(initReactI18next).init({
|
|
23
|
+
lng: "en",
|
|
24
|
+
interpolation: { escapeValue: false },
|
|
25
|
+
resources: { en: { translation: {} } },
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
afterEach(() => {
|
|
30
|
+
cleanup();
|
|
31
|
+
vi.restoreAllMocks();
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
function deniedCorpus() {
|
|
35
|
+
const fixtures = new InMemoryFixtureProvider({
|
|
36
|
+
Customer: [{ name: "CUST-001", doctype: "Customer", customer_name: "Acme Corp" }],
|
|
37
|
+
});
|
|
38
|
+
vi.spyOn(fixtures, "getList").mockRejectedValue(
|
|
39
|
+
Object.assign(new Error("PermissionError"), { status: 403 }),
|
|
40
|
+
);
|
|
41
|
+
return fixtures;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function Roster() {
|
|
45
|
+
return (
|
|
46
|
+
<FrappeList<Customer>
|
|
47
|
+
doctype="Customer"
|
|
48
|
+
fields={["name", "customer_name"]}
|
|
49
|
+
renderItem={(item) => <Text>{item.customer_name}</Text>}
|
|
50
|
+
/>
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
describe("useFrappeRows on a read that already failed", () => {
|
|
55
|
+
it("a reader mounted after the failure still shows the permission error", async () => {
|
|
56
|
+
const fixtures = deniedCorpus();
|
|
57
|
+
const denied = "You do not have permission to view Customer";
|
|
58
|
+
const view = renderWithProviders(
|
|
59
|
+
<FrappeProvider fixtures={fixtures}>
|
|
60
|
+
<Roster />
|
|
61
|
+
</FrappeProvider>,
|
|
62
|
+
);
|
|
63
|
+
await waitFor(() => expect(screen.getAllByText(denied)).toHaveLength(1));
|
|
64
|
+
|
|
65
|
+
view.rerender(
|
|
66
|
+
<FrappeProvider fixtures={fixtures}>
|
|
67
|
+
<Roster />
|
|
68
|
+
<Roster />
|
|
69
|
+
</FrappeProvider>,
|
|
70
|
+
);
|
|
71
|
+
await waitFor(() => expect(screen.getAllByText(denied)).toHaveLength(2));
|
|
72
|
+
expect(screen.queryByText("No Customer records found")).toBeNull();
|
|
73
|
+
});
|
|
74
|
+
});
|
package/src/useFrappeRows.ts
CHANGED
|
@@ -64,7 +64,7 @@ import {
|
|
|
64
64
|
type Order,
|
|
65
65
|
type FixtureProvider,
|
|
66
66
|
} from "@multiplatform.one/frappe";
|
|
67
|
-
import { useCallback,
|
|
67
|
+
import { useCallback, useMemo, useRef, useState } from "react";
|
|
68
68
|
import { useFrappeConfig } from "./FrappeProvider";
|
|
69
69
|
import { toLiveLoadError } from "./liveErrors";
|
|
70
70
|
|
|
@@ -231,10 +231,14 @@ export function useFrappeRows<TDoc extends { name: string; doctype: string }>(
|
|
|
231
231
|
collectionOptions as any,
|
|
232
232
|
);
|
|
233
233
|
|
|
234
|
-
// A new collection (doctype / filter / field change) starts clean.
|
|
235
|
-
|
|
234
|
+
// A new collection (doctype / filter / field change) starts clean. The
|
|
235
|
+
// reset runs during render: as an effect it ran after the collection's
|
|
236
|
+
// retain effect, wiping the held error that retain had just replayed.
|
|
237
|
+
const [errorCollection, setErrorCollection] = useState(collection);
|
|
238
|
+
if (errorCollection !== collection) {
|
|
239
|
+
setErrorCollection(collection);
|
|
236
240
|
setSyncError(null);
|
|
237
|
-
}
|
|
241
|
+
}
|
|
238
242
|
|
|
239
243
|
const {
|
|
240
244
|
data: rawData,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFrappeRows.d.ts","sourceRoot":"","sources":["../src/useFrappeRows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AAEH,OAAO,EACL,mBAAmB,EAEnB,KAAK,KAAK,EACV,KAAK,eAAe,EACrB,MAAM,2BAA2B,CAAC;AAKnC;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAE7C;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE;QACL,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B;AAED,kFAAkF;AAClF,MAAM,WAAW,kBAAkB;IACjC,+EAA+E;IAC/E,UAAU,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB,CAAC,IAAI;IACxC,+EAA+E;IAC/E,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,IAAI,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IACpE,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC,CAAC;IAC9D;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,iEAAiE;IACjE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,KAAK,CAAC;CACpC;AAED,MAAM,WAAW,mBAAmB,CAAC,IAAI;IACvC,mEAAmE;IACnE,IAAI,EAAE,IAAI,EAAE,CAAC;IACb;;;;OAIG;IACH,SAAS,EAAE,KAAK,GAAG,IAAI,CAAC;IACxB,kDAAkD;IAClD,SAAS,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,cAAc,EAAE,OAAO,CAAC;IACxB,gEAAgE;IAChE,OAAO,EAAE,OAAO,CAAC;IACjB,sEAAsE;IACtE,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB;;;;OAIG;IACH,UAAU,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;CACzD;AAOD;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,IAAI,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAC1E,UAAU,EAAE,oBAAoB,GAAG,SAAS,EAC5C,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,oBAAoB,CAAC,IAAI,CAAM,GACvC,mBAAmB,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"useFrappeRows.d.ts","sourceRoot":"","sources":["../src/useFrappeRows.ts"],"names":[],"mappings":"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"}
|