@payloadcms/ui 3.0.0-beta.79 → 3.0.0-beta.80
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/elements/Nav/context.d.ts +3 -0
- package/dist/elements/Nav/context.d.ts.map +1 -1
- package/dist/elements/Nav/context.js +16 -7
- package/dist/elements/Nav/context.js.map +1 -1
- package/dist/exports/client/index.js +7 -7
- package/dist/exports/client/index.js.map +3 -3
- package/dist/fields/Array/index.js +1 -1
- package/dist/fields/Array/index.js.map +1 -1
- package/dist/fields/Blocks/index.js +1 -1
- package/dist/fields/Blocks/index.js.map +1 -1
- package/dist/fields/Code/index.js +1 -1
- package/dist/fields/Code/index.js.map +1 -1
- package/dist/fields/Collapsible/index.js +1 -1
- package/dist/fields/Collapsible/index.js.map +1 -1
- package/dist/fields/DateTime/index.js +1 -1
- package/dist/fields/DateTime/index.js.map +1 -1
- package/dist/fields/Group/index.js +1 -1
- package/dist/fields/Group/index.js.map +1 -1
- package/dist/fields/JSON/index.d.ts.map +1 -1
- package/dist/fields/JSON/index.js +1 -1
- package/dist/fields/JSON/index.js.map +1 -1
- package/dist/fields/Point/index.js +1 -1
- package/dist/fields/Point/index.js.map +1 -1
- package/dist/fields/Relationship/index.js +1 -1
- package/dist/fields/Relationship/index.js.map +1 -1
- package/dist/fields/Row/index.d.ts.map +1 -1
- package/dist/fields/Row/index.js +1 -1
- package/dist/fields/Row/index.js.map +1 -1
- package/dist/fields/Tabs/index.js +1 -1
- package/dist/fields/Tabs/index.js.map +1 -1
- package/dist/fields/Text/index.js +1 -1
- package/dist/fields/Text/index.js.map +1 -1
- package/dist/fields/Textarea/index.js +1 -1
- package/dist/fields/Textarea/index.js.map +1 -1
- package/dist/fields/Upload/index.js +1 -1
- package/dist/fields/Upload/index.js.map +1 -1
- package/dist/providers/Root/index.d.ts +1 -0
- package/dist/providers/Root/index.d.ts.map +1 -1
- package/dist/providers/Root/index.js +2 -1
- package/dist/providers/Root/index.js.map +1 -1
- package/package.json +4 -4
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
type NavContextType = {
|
|
3
|
+
hydrated: boolean;
|
|
3
4
|
navOpen: boolean;
|
|
4
5
|
navRef: React.RefObject<HTMLDivElement | null>;
|
|
5
6
|
setNavOpen: (value: boolean) => void;
|
|
7
|
+
shouldAnimate: boolean;
|
|
6
8
|
};
|
|
7
9
|
export declare const NavContext: React.Context<NavContextType>;
|
|
8
10
|
export declare const useNav: () => NavContextType;
|
|
9
11
|
export declare const NavProvider: React.FC<{
|
|
10
12
|
children: React.ReactNode;
|
|
13
|
+
initialIsOpen?: boolean;
|
|
11
14
|
}>;
|
|
12
15
|
export {};
|
|
13
16
|
//# sourceMappingURL=context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/elements/Nav/context.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA4B,MAAM,OAAO,CAAA;AAIhD,KAAK,cAAc,GAAG;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;IAC9C,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/elements/Nav/context.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA4B,MAAM,OAAO,CAAA;AAIhD,KAAK,cAAc,GAAG;IACpB,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;IAC9C,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IACpC,aAAa,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,UAAU,+BAMrB,CAAA;AAEF,eAAO,MAAM,MAAM,sBAAqC,CAAA;AAYxD,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC;IACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,CAsEA,CAAA"}
|
|
@@ -5,9 +5,11 @@ import { clearAllBodyScrollLocks, disableBodyScroll, enableBodyScroll } from 'bo
|
|
|
5
5
|
import React, { useEffect, useRef } from 'react';
|
|
6
6
|
import { usePreferences } from '../../providers/Preferences/index.js';
|
|
7
7
|
export const NavContext = /*#__PURE__*/ React.createContext({
|
|
8
|
+
hydrated: false,
|
|
8
9
|
navOpen: true,
|
|
9
10
|
navRef: null,
|
|
10
|
-
setNavOpen: ()=>{}
|
|
11
|
+
setNavOpen: ()=>{},
|
|
12
|
+
shouldAnimate: false
|
|
11
13
|
});
|
|
12
14
|
export const useNav = ()=>React.useContext(NavContext);
|
|
13
15
|
const getNavPreference = async (getPreference)=>{
|
|
@@ -19,7 +21,7 @@ const getNavPreference = async (getPreference)=>{
|
|
|
19
21
|
return true;
|
|
20
22
|
}
|
|
21
23
|
};
|
|
22
|
-
export const NavProvider = ({ children })=>{
|
|
24
|
+
export const NavProvider = ({ children, initialIsOpen })=>{
|
|
23
25
|
const { breakpoints: { l: largeBreak, m: midBreak, s: smallBreak } } = useWindowInfo();
|
|
24
26
|
const { getPreference } = usePreferences();
|
|
25
27
|
const navRef = useRef(null);
|
|
@@ -27,7 +29,9 @@ export const NavProvider = ({ children })=>{
|
|
|
27
29
|
// this is because getting the preference is async
|
|
28
30
|
// so instead of closing it after the preference is loaded
|
|
29
31
|
// we will open it after the preference is loaded
|
|
30
|
-
const [navOpen, setNavOpen] = React.useState(
|
|
32
|
+
const [navOpen, setNavOpen] = React.useState(initialIsOpen);
|
|
33
|
+
const [shouldAnimate, setShouldAnimate] = React.useState(false);
|
|
34
|
+
const [hydrated, setHydrated] = React.useState(false);
|
|
31
35
|
// on load check the user's preference and set "initial" state
|
|
32
36
|
useEffect(()=>{
|
|
33
37
|
if (largeBreak === false) {
|
|
@@ -35,8 +39,7 @@ export const NavProvider = ({ children })=>{
|
|
|
35
39
|
const preferredState = await getNavPreference(getPreference);
|
|
36
40
|
setNavOpen(preferredState);
|
|
37
41
|
};
|
|
38
|
-
setNavFromPreferences()
|
|
39
|
-
;
|
|
42
|
+
void setNavFromPreferences();
|
|
40
43
|
}
|
|
41
44
|
}, [
|
|
42
45
|
largeBreak,
|
|
@@ -63,9 +66,13 @@ export const NavProvider = ({ children })=>{
|
|
|
63
66
|
// close the nav when the user resizes down to mobile
|
|
64
67
|
// the sidebar is a modal on mobile
|
|
65
68
|
useEffect(()=>{
|
|
66
|
-
if (largeBreak ===
|
|
69
|
+
if (largeBreak === true || midBreak === true || smallBreak === true) {
|
|
67
70
|
setNavOpen(false);
|
|
68
71
|
}
|
|
72
|
+
setHydrated(true);
|
|
73
|
+
setTimeout(()=>{
|
|
74
|
+
setShouldAnimate(true);
|
|
75
|
+
}, 100);
|
|
69
76
|
}, [
|
|
70
77
|
largeBreak,
|
|
71
78
|
midBreak,
|
|
@@ -79,9 +86,11 @@ export const NavProvider = ({ children })=>{
|
|
|
79
86
|
}, []);
|
|
80
87
|
return /*#__PURE__*/ _jsx(NavContext.Provider, {
|
|
81
88
|
value: {
|
|
89
|
+
hydrated,
|
|
82
90
|
navOpen,
|
|
83
91
|
navRef,
|
|
84
|
-
setNavOpen
|
|
92
|
+
setNavOpen,
|
|
93
|
+
shouldAnimate
|
|
85
94
|
},
|
|
86
95
|
children: children
|
|
87
96
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/Nav/context.tsx"],"sourcesContent":["'use client'\nimport { useWindowInfo } from '@faceless-ui/window-info'\nimport { clearAllBodyScrollLocks, disableBodyScroll, enableBodyScroll } from 'body-scroll-lock'\nimport React, { useEffect, useRef } from 'react'\n\nimport { usePreferences } from '../../providers/Preferences/index.js'\n\ntype NavContextType = {\n navOpen: boolean\n navRef: React.RefObject<HTMLDivElement | null>\n setNavOpen: (value: boolean) => void\n}\n\nexport const NavContext = React.createContext<NavContextType>({\n navOpen: true,\n navRef: null,\n setNavOpen: () => {},\n})\n\nexport const useNav = () => React.useContext(NavContext)\n\nconst getNavPreference = async (getPreference): Promise<boolean> => {\n const navPrefs = await getPreference('nav')\n const preferredState = navPrefs?.open\n if (typeof preferredState === 'boolean') {\n return preferredState\n } else {\n return true\n }\n}\n\nexport const NavProvider: React.FC<{\n children: React.ReactNode\n}> = ({ children }) => {\n const {\n breakpoints: { l: largeBreak, m: midBreak, s: smallBreak },\n } = useWindowInfo()\n\n const { getPreference } = usePreferences()\n const navRef = useRef(null)\n\n // initialize the nav to be closed\n // this is because getting the preference is async\n // so instead of closing it after the preference is loaded\n // we will open it after the preference is loaded\n const [navOpen, setNavOpen] = React.useState(false)\n\n // on load check the user's preference and set \"initial\" state\n useEffect(() => {\n if (largeBreak === false) {\n const setNavFromPreferences = async () => {\n const preferredState = await getNavPreference(getPreference)\n setNavOpen(preferredState)\n }\n\n setNavFromPreferences()
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/Nav/context.tsx"],"sourcesContent":["'use client'\nimport { useWindowInfo } from '@faceless-ui/window-info'\nimport { clearAllBodyScrollLocks, disableBodyScroll, enableBodyScroll } from 'body-scroll-lock'\nimport React, { useEffect, useRef } from 'react'\n\nimport { usePreferences } from '../../providers/Preferences/index.js'\n\ntype NavContextType = {\n hydrated: boolean\n navOpen: boolean\n navRef: React.RefObject<HTMLDivElement | null>\n setNavOpen: (value: boolean) => void\n shouldAnimate: boolean\n}\n\nexport const NavContext = React.createContext<NavContextType>({\n hydrated: false,\n navOpen: true,\n navRef: null,\n setNavOpen: () => {},\n shouldAnimate: false,\n})\n\nexport const useNav = () => React.useContext(NavContext)\n\nconst getNavPreference = async (getPreference): Promise<boolean> => {\n const navPrefs = await getPreference('nav')\n const preferredState = navPrefs?.open\n if (typeof preferredState === 'boolean') {\n return preferredState\n } else {\n return true\n }\n}\n\nexport const NavProvider: React.FC<{\n children: React.ReactNode\n initialIsOpen?: boolean\n}> = ({ children, initialIsOpen }) => {\n const {\n breakpoints: { l: largeBreak, m: midBreak, s: smallBreak },\n } = useWindowInfo()\n\n const { getPreference } = usePreferences()\n const navRef = useRef(null)\n\n // initialize the nav to be closed\n // this is because getting the preference is async\n // so instead of closing it after the preference is loaded\n // we will open it after the preference is loaded\n const [navOpen, setNavOpen] = React.useState(initialIsOpen)\n\n const [shouldAnimate, setShouldAnimate] = React.useState(false)\n const [hydrated, setHydrated] = React.useState(false)\n\n // on load check the user's preference and set \"initial\" state\n useEffect(() => {\n if (largeBreak === false) {\n const setNavFromPreferences = async () => {\n const preferredState = await getNavPreference(getPreference)\n setNavOpen(preferredState)\n }\n\n void setNavFromPreferences()\n }\n }, [largeBreak, getPreference, setNavOpen])\n\n // TODO: on smaller screens where the nav is a modal\n // close the nav when the user navigates away\n\n // on open and close, lock the body scroll\n // do not do this on desktop, the sidebar is not a modal\n useEffect(() => {\n if (navRef.current) {\n if (navOpen && midBreak) {\n disableBodyScroll(navRef.current)\n } else {\n enableBodyScroll(navRef.current)\n }\n }\n }, [navOpen, midBreak])\n\n // on smaller screens where the nav is a modal\n // close the nav when the user resizes down to mobile\n // the sidebar is a modal on mobile\n useEffect(() => {\n if (largeBreak === true || midBreak === true || smallBreak === true) {\n setNavOpen(false)\n }\n setHydrated(true)\n\n setTimeout(() => {\n setShouldAnimate(true)\n }, 100)\n }, [largeBreak, midBreak, smallBreak])\n\n // when the component unmounts, clear all body scroll locks\n useEffect(() => {\n return () => {\n clearAllBodyScrollLocks()\n }\n }, [])\n\n return (\n <NavContext.Provider value={{ hydrated, navOpen, navRef, setNavOpen, shouldAnimate }}>\n {children}\n </NavContext.Provider>\n )\n}\n"],"names":["useWindowInfo","clearAllBodyScrollLocks","disableBodyScroll","enableBodyScroll","React","useEffect","useRef","usePreferences","NavContext","createContext","hydrated","navOpen","navRef","setNavOpen","shouldAnimate","useNav","useContext","getNavPreference","getPreference","navPrefs","preferredState","open","NavProvider","children","initialIsOpen","breakpoints","l","largeBreak","m","midBreak","s","smallBreak","useState","setShouldAnimate","setHydrated","setNavFromPreferences","current","setTimeout","Provider","value"],"mappings":"AAAA;;AACA,SAASA,aAAa,QAAQ,2BAA0B;AACxD,SAASC,uBAAuB,EAAEC,iBAAiB,EAAEC,gBAAgB,QAAQ,mBAAkB;AAC/F,OAAOC,SAASC,SAAS,EAAEC,MAAM,QAAQ,QAAO;AAEhD,SAASC,cAAc,QAAQ,uCAAsC;AAUrE,OAAO,MAAMC,2BAAaJ,MAAMK,aAAa,CAAiB;IAC5DC,UAAU;IACVC,SAAS;IACTC,QAAQ;IACRC,YAAY,KAAO;IACnBC,eAAe;AACjB,GAAE;AAEF,OAAO,MAAMC,SAAS,IAAMX,MAAMY,UAAU,CAACR,YAAW;AAExD,MAAMS,mBAAmB,OAAOC;IAC9B,MAAMC,WAAW,MAAMD,cAAc;IACrC,MAAME,iBAAiBD,UAAUE;IACjC,IAAI,OAAOD,mBAAmB,WAAW;QACvC,OAAOA;IACT,OAAO;QACL,OAAO;IACT;AACF;AAEA,OAAO,MAAME,cAGR,CAAC,EAAEC,QAAQ,EAAEC,aAAa,EAAE;IAC/B,MAAM,EACJC,aAAa,EAAEC,GAAGC,UAAU,EAAEC,GAAGC,QAAQ,EAAEC,GAAGC,UAAU,EAAE,EAC3D,GAAG/B;IAEJ,MAAM,EAAEkB,aAAa,EAAE,GAAGX;IAC1B,MAAMK,SAASN,OAAO;IAEtB,kCAAkC;IAClC,kDAAkD;IAClD,0DAA0D;IAC1D,iDAAiD;IACjD,MAAM,CAACK,SAASE,WAAW,GAAGT,MAAM4B,QAAQ,CAACR;IAE7C,MAAM,CAACV,eAAemB,iBAAiB,GAAG7B,MAAM4B,QAAQ,CAAC;IACzD,MAAM,CAACtB,UAAUwB,YAAY,GAAG9B,MAAM4B,QAAQ,CAAC;IAE/C,8DAA8D;IAC9D3B,UAAU;QACR,IAAIsB,eAAe,OAAO;YACxB,MAAMQ,wBAAwB;gBAC5B,MAAMf,iBAAiB,MAAMH,iBAAiBC;gBAC9CL,WAAWO;YACb;YAEA,KAAKe;QACP;IACF,GAAG;QAACR;QAAYT;QAAeL;KAAW;IAE1C,oDAAoD;IACpD,6CAA6C;IAE7C,0CAA0C;IAC1C,wDAAwD;IACxDR,UAAU;QACR,IAAIO,OAAOwB,OAAO,EAAE;YAClB,IAAIzB,WAAWkB,UAAU;gBACvB3B,kBAAkBU,OAAOwB,OAAO;YAClC,OAAO;gBACLjC,iBAAiBS,OAAOwB,OAAO;YACjC;QACF;IACF,GAAG;QAACzB;QAASkB;KAAS;IAEtB,8CAA8C;IAC9C,qDAAqD;IACrD,mCAAmC;IACnCxB,UAAU;QACR,IAAIsB,eAAe,QAAQE,aAAa,QAAQE,eAAe,MAAM;YACnElB,WAAW;QACb;QACAqB,YAAY;QAEZG,WAAW;YACTJ,iBAAiB;QACnB,GAAG;IACL,GAAG;QAACN;QAAYE;QAAUE;KAAW;IAErC,2DAA2D;IAC3D1B,UAAU;QACR,OAAO;YACLJ;QACF;IACF,GAAG,EAAE;IAEL,qBACE,KAACO,WAAW8B,QAAQ;QAACC,OAAO;YAAE7B;YAAUC;YAASC;YAAQC;YAAYC;QAAc;kBAChFS;;AAGP,EAAC"}
|