@lasterp/shared 1.0.0-beta.2 → 1.0.0-beta.5
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.
|
@@ -644,12 +644,4 @@ interface ProductContext {
|
|
|
644
644
|
}
|
|
645
645
|
import { camelize, decamelize, camelizeKeys, decamelizeKeys } from "humps";
|
|
646
646
|
declare function equalsIgnoreCase(str1: string, str2: string): boolean;
|
|
647
|
-
|
|
648
|
-
interface ServerProviderProps {
|
|
649
|
-
frappeUrl: string;
|
|
650
|
-
siteName?: string;
|
|
651
|
-
resource: string;
|
|
652
|
-
children: ReactNode;
|
|
653
|
-
}
|
|
654
|
-
declare function ServerProvider({ frappeUrl, siteName, resource, children }: ServerProviderProps): JSX.Element;
|
|
655
|
-
export { useVariantSelector, useSearch, useFrappeUpdateDoc, useFrappePutCall, useFrappePrefetchDoc, useFrappePostCall, useFrappeGetDocList, useFrappeGetDocCount, useFrappeGetDoc, useFrappeGetCall, useFrappeFileUpload, useFrappeEventListener, useFrappeDocumentEventListener, useFrappeDocTypeEventListener, useFrappeDeleteDoc, useFrappeDeleteCall, useFrappeCreateDoc, useFrappeAuth, equalsIgnoreCase, decamelizeKeys, decamelize, camelizeKeys, camelize, ViewerEventData, VariantSelectorResult, VariantSelectorProps, VariantSelectorOption, UseFrappeFileUploadReturnType, TopbarItem, Topbar, TokenParams, ShopContext, ServerProvider, SearchResult, ProductVariant, ProductContext, Product, Page, NavbarSubItemGroup, NavbarSubItem, NavbarItem, Model, ItemVariant, Item, Hero, Header, Globals, FrappeProviderProps, FrappeProvider, FrappeMutationResult, FrappeFileUploadResponse, FrappeError, FrappeContext, FrappeConfig, FooterItemGroup, FooterItem, Footer, DocumentUpdateEventData, DocTypeListUpdateEventData, Colour, Category, Brand, Block };
|
|
647
|
+
export { useVariantSelector, useSearch, useFrappeUpdateDoc, useFrappePutCall, useFrappePrefetchDoc, useFrappePostCall, useFrappeGetDocList, useFrappeGetDocCount, useFrappeGetDoc, useFrappeGetCall, useFrappeFileUpload, useFrappeEventListener, useFrappeDocumentEventListener, useFrappeDocTypeEventListener, useFrappeDeleteDoc, useFrappeDeleteCall, useFrappeCreateDoc, useFrappeAuth, equalsIgnoreCase, decamelizeKeys, decamelize, camelizeKeys, camelize, ViewerEventData, VariantSelectorResult, VariantSelectorProps, VariantSelectorOption, UseFrappeFileUploadReturnType, TopbarItem, Topbar, TokenParams, ShopContext, SearchResult, ProductVariant, ProductContext, Product, Page, NavbarSubItemGroup, NavbarSubItem, NavbarItem, Model, ItemVariant, Item, Hero, Header, Globals, FrappeProviderProps, FrappeProvider, FrappeMutationResult, FrappeFileUploadResponse, FrappeError, FrappeContext, FrappeConfig, FooterItemGroup, FooterItem, Footer, DocumentUpdateEventData, DocTypeListUpdateEventData, Colour, Category, Brand, Block };
|
|
@@ -575,54 +575,6 @@ import { camelize, decamelize, camelizeKeys, decamelizeKeys } from "humps";
|
|
|
575
575
|
function equalsIgnoreCase(str1, str2) {
|
|
576
576
|
return str1.localeCompare(str2, undefined, { sensitivity: "accent" }) === 0;
|
|
577
577
|
}
|
|
578
|
-
// src/context/server-provider.rn.tsx
|
|
579
|
-
import {
|
|
580
|
-
useCallback as useCallback5,
|
|
581
|
-
useEffect as useEffect4,
|
|
582
|
-
useRef
|
|
583
|
-
} from "react";
|
|
584
|
-
import { useLogto } from "@logto/rn";
|
|
585
|
-
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
586
|
-
var TOKEN_STALE_MS = 50 * 60 * 1000;
|
|
587
|
-
function ServerProvider({
|
|
588
|
-
frappeUrl,
|
|
589
|
-
siteName,
|
|
590
|
-
resource,
|
|
591
|
-
children
|
|
592
|
-
}) {
|
|
593
|
-
const { getAccessToken, isAuthenticated } = useLogto();
|
|
594
|
-
const tokenRef = useRef("");
|
|
595
|
-
const fetchedAtRef = useRef(0);
|
|
596
|
-
const isRefreshingRef = useRef(false);
|
|
597
|
-
const refresh = useCallback5(async () => {
|
|
598
|
-
const token = await getAccessToken(resource);
|
|
599
|
-
if (token) {
|
|
600
|
-
tokenRef.current = token;
|
|
601
|
-
fetchedAtRef.current = Date.now();
|
|
602
|
-
}
|
|
603
|
-
}, [getAccessToken, resource]);
|
|
604
|
-
useEffect4(() => {
|
|
605
|
-
if (isAuthenticated)
|
|
606
|
-
refresh();
|
|
607
|
-
}, [isAuthenticated, refresh]);
|
|
608
|
-
const getToken = useCallback5(() => {
|
|
609
|
-
if (!isRefreshingRef.current && fetchedAtRef.current > 0 && Date.now() - fetchedAtRef.current > TOKEN_STALE_MS) {
|
|
610
|
-
isRefreshingRef.current = true;
|
|
611
|
-
refresh().finally(() => {
|
|
612
|
-
isRefreshingRef.current = false;
|
|
613
|
-
});
|
|
614
|
-
}
|
|
615
|
-
return tokenRef.current;
|
|
616
|
-
}, [refresh]);
|
|
617
|
-
return /* @__PURE__ */ jsx2(FrappeProvider, {
|
|
618
|
-
url: frappeUrl,
|
|
619
|
-
siteName,
|
|
620
|
-
customHeaders: siteName ? { "X-Frappe-Site-Name": siteName } : undefined,
|
|
621
|
-
enableSocket: false,
|
|
622
|
-
tokenParams: { useToken: true, token: getToken, type: "Bearer" },
|
|
623
|
-
children
|
|
624
|
-
});
|
|
625
|
-
}
|
|
626
578
|
export {
|
|
627
579
|
useVariantSelector,
|
|
628
580
|
useSearch,
|
|
@@ -647,7 +599,6 @@ export {
|
|
|
647
599
|
decamelize,
|
|
648
600
|
camelizeKeys,
|
|
649
601
|
camelize,
|
|
650
|
-
ServerProvider,
|
|
651
602
|
FrappeProvider,
|
|
652
603
|
FrappeContext
|
|
653
604
|
};
|
|
@@ -644,12 +644,4 @@ interface ProductContext {
|
|
|
644
644
|
}
|
|
645
645
|
import { camelize, decamelize, camelizeKeys, decamelizeKeys } from "humps";
|
|
646
646
|
declare function equalsIgnoreCase(str1: string, str2: string): boolean;
|
|
647
|
-
|
|
648
|
-
interface ServerProviderProps {
|
|
649
|
-
frappeUrl: string;
|
|
650
|
-
siteName?: string;
|
|
651
|
-
resource: string;
|
|
652
|
-
children: ReactNode;
|
|
653
|
-
}
|
|
654
|
-
declare function ServerProvider({ frappeUrl, siteName, resource, children }: ServerProviderProps): JSX.Element;
|
|
655
|
-
export { useVariantSelector, useSearch, useFrappeUpdateDoc, useFrappePutCall, useFrappePrefetchDoc, useFrappePostCall, useFrappeGetDocList, useFrappeGetDocCount, useFrappeGetDoc, useFrappeGetCall, useFrappeFileUpload, useFrappeEventListener, useFrappeDocumentEventListener, useFrappeDocTypeEventListener, useFrappeDeleteDoc, useFrappeDeleteCall, useFrappeCreateDoc, useFrappeAuth, equalsIgnoreCase, decamelizeKeys, decamelize, camelizeKeys, camelize, ViewerEventData, VariantSelectorResult, VariantSelectorProps, VariantSelectorOption, UseFrappeFileUploadReturnType, TopbarItem, Topbar, TokenParams, ShopContext, ServerProvider, SearchResult, ProductVariant, ProductContext, Product, Page, NavbarSubItemGroup, NavbarSubItem, NavbarItem, Model, ItemVariant, Item, Hero, Header, Globals, FrappeProviderProps, FrappeProvider, FrappeMutationResult, FrappeFileUploadResponse, FrappeError, FrappeContext, FrappeConfig, FooterItemGroup, FooterItem, Footer, DocumentUpdateEventData, DocTypeListUpdateEventData, Colour, Category, Brand, Block };
|
|
647
|
+
export { useVariantSelector, useSearch, useFrappeUpdateDoc, useFrappePutCall, useFrappePrefetchDoc, useFrappePostCall, useFrappeGetDocList, useFrappeGetDocCount, useFrappeGetDoc, useFrappeGetCall, useFrappeFileUpload, useFrappeEventListener, useFrappeDocumentEventListener, useFrappeDocTypeEventListener, useFrappeDeleteDoc, useFrappeDeleteCall, useFrappeCreateDoc, useFrappeAuth, equalsIgnoreCase, decamelizeKeys, decamelize, camelizeKeys, camelize, ViewerEventData, VariantSelectorResult, VariantSelectorProps, VariantSelectorOption, UseFrappeFileUploadReturnType, TopbarItem, Topbar, TokenParams, ShopContext, SearchResult, ProductVariant, ProductContext, Product, Page, NavbarSubItemGroup, NavbarSubItem, NavbarItem, Model, ItemVariant, Item, Hero, Header, Globals, FrappeProviderProps, FrappeProvider, FrappeMutationResult, FrappeFileUploadResponse, FrappeError, FrappeContext, FrappeConfig, FooterItemGroup, FooterItem, Footer, DocumentUpdateEventData, DocTypeListUpdateEventData, Colour, Category, Brand, Block };
|
|
@@ -575,54 +575,6 @@ import { camelize, decamelize, camelizeKeys, decamelizeKeys } from "humps";
|
|
|
575
575
|
function equalsIgnoreCase(str1, str2) {
|
|
576
576
|
return str1.localeCompare(str2, undefined, { sensitivity: "accent" }) === 0;
|
|
577
577
|
}
|
|
578
|
-
// src/context/server-provider.node.tsx
|
|
579
|
-
import {
|
|
580
|
-
useCallback as useCallback5,
|
|
581
|
-
useEffect as useEffect4,
|
|
582
|
-
useRef
|
|
583
|
-
} from "react";
|
|
584
|
-
import { useLogto } from "@logto/react";
|
|
585
|
-
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
586
|
-
var TOKEN_STALE_MS = 50 * 60 * 1000;
|
|
587
|
-
function ServerProvider({
|
|
588
|
-
frappeUrl,
|
|
589
|
-
siteName,
|
|
590
|
-
resource,
|
|
591
|
-
children
|
|
592
|
-
}) {
|
|
593
|
-
const { getAccessToken, isAuthenticated } = useLogto();
|
|
594
|
-
const tokenRef = useRef("");
|
|
595
|
-
const fetchedAtRef = useRef(0);
|
|
596
|
-
const isRefreshingRef = useRef(false);
|
|
597
|
-
const refresh = useCallback5(async () => {
|
|
598
|
-
const token = await getAccessToken(resource);
|
|
599
|
-
if (token) {
|
|
600
|
-
tokenRef.current = token;
|
|
601
|
-
fetchedAtRef.current = Date.now();
|
|
602
|
-
}
|
|
603
|
-
}, [getAccessToken, resource]);
|
|
604
|
-
useEffect4(() => {
|
|
605
|
-
if (isAuthenticated)
|
|
606
|
-
refresh();
|
|
607
|
-
}, [isAuthenticated, refresh]);
|
|
608
|
-
const getToken = useCallback5(() => {
|
|
609
|
-
if (!isRefreshingRef.current && fetchedAtRef.current > 0 && Date.now() - fetchedAtRef.current > TOKEN_STALE_MS) {
|
|
610
|
-
isRefreshingRef.current = true;
|
|
611
|
-
refresh().finally(() => {
|
|
612
|
-
isRefreshingRef.current = false;
|
|
613
|
-
});
|
|
614
|
-
}
|
|
615
|
-
return tokenRef.current;
|
|
616
|
-
}, [refresh]);
|
|
617
|
-
return /* @__PURE__ */ jsx2(FrappeProvider, {
|
|
618
|
-
url: frappeUrl,
|
|
619
|
-
siteName,
|
|
620
|
-
customHeaders: siteName ? { "X-Frappe-Site-Name": siteName } : undefined,
|
|
621
|
-
enableSocket: false,
|
|
622
|
-
tokenParams: { useToken: true, token: getToken, type: "Bearer" },
|
|
623
|
-
children
|
|
624
|
-
});
|
|
625
|
-
}
|
|
626
578
|
export {
|
|
627
579
|
useVariantSelector,
|
|
628
580
|
useSearch,
|
|
@@ -647,7 +599,6 @@ export {
|
|
|
647
599
|
decamelize,
|
|
648
600
|
camelizeKeys,
|
|
649
601
|
camelize,
|
|
650
|
-
ServerProvider,
|
|
651
602
|
FrappeProvider,
|
|
652
603
|
FrappeContext
|
|
653
604
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lasterp/shared",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.5",
|
|
4
4
|
"description": "Shared repo for webapp and native app",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"files": [
|
|
@@ -23,19 +23,11 @@
|
|
|
23
23
|
"react": ">=18.0.0",
|
|
24
24
|
"react-dom": ">=18.0.0",
|
|
25
25
|
"typescript": ">=4.5.0",
|
|
26
|
-
"@tanstack/react-query": "^5.90.21"
|
|
27
|
-
"@logto/react": "^4.0.13",
|
|
28
|
-
"@logto/rn": "^1.1.0"
|
|
26
|
+
"@tanstack/react-query": "^5.90.21"
|
|
29
27
|
},
|
|
30
28
|
"peerDependenciesMeta": {
|
|
31
29
|
"typescript": {
|
|
32
30
|
"optional": true
|
|
33
|
-
},
|
|
34
|
-
"@logto/react": {
|
|
35
|
-
"optional": true
|
|
36
|
-
},
|
|
37
|
-
"@logto/rn": {
|
|
38
|
-
"optional": true
|
|
39
31
|
}
|
|
40
32
|
},
|
|
41
33
|
"type": "module",
|