@docusaurus/theme-common 2.2.0 → 2.3.1
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/lib/hooks/useSearchPage.d.ts.map +1 -1
- package/lib/hooks/useSearchPage.js +4 -2
- package/lib/hooks/useSearchPage.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/internal.d.ts +3 -2
- package/lib/internal.d.ts.map +1 -1
- package/lib/internal.js +2 -2
- package/lib/internal.js.map +1 -1
- package/lib/utils/historyUtils.d.ts +12 -1
- package/lib/utils/historyUtils.d.ts.map +1 -1
- package/lib/utils/historyUtils.js +23 -0
- package/lib/utils/historyUtils.js.map +1 -1
- package/lib/utils/scrollUtils.d.ts.map +1 -1
- package/lib/utils/scrollUtils.js +4 -1
- package/lib/utils/scrollUtils.js.map +1 -1
- package/lib/utils/storageUtils.d.ts +4 -0
- package/lib/utils/storageUtils.d.ts.map +1 -1
- package/lib/utils/storageUtils.js +77 -7
- package/lib/utils/storageUtils.js.map +1 -1
- package/lib/utils/tabsUtils.d.ts +46 -0
- package/lib/utils/tabsUtils.d.ts.map +1 -0
- package/lib/utils/tabsUtils.js +153 -0
- package/lib/utils/tabsUtils.js.map +1 -0
- package/package.json +11 -10
- package/src/hooks/useSearchPage.ts +10 -5
- package/src/index.ts +5 -1
- package/src/internal.ts +7 -5
- package/src/utils/historyUtils.ts +33 -1
- package/src/utils/scrollUtils.tsx +4 -1
- package/src/utils/storageUtils.ts +115 -7
- package/src/utils/tabsUtils.tsx +270 -0
- package/lib/contexts/tabGroupChoice.d.ts +0 -21
- package/lib/contexts/tabGroupChoice.d.ts.map +0 -1
- package/lib/contexts/tabGroupChoice.js +0 -49
- package/lib/contexts/tabGroupChoice.js.map +0 -1
- package/src/contexts/tabGroupChoice.tsx +0 -85
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSearchPage.d.ts","sourceRoot":"","sources":["../../src/hooks/useSearchPage.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"useSearchPage.d.ts","sourceRoot":"","sources":["../../src/hooks/useSearchPage.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,oDAAoD;AACpD,wBAAgB,aAAa,IAAI;IAC/B;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,cAAc,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD;;;OAGG;IACH,sBAAsB,EAAE,CAAC,iBAAiB,EAAE,MAAM,KAAK,MAAM,CAAC;CAC/D,CAoDA"}
|
|
@@ -11,7 +11,8 @@ const SEARCH_PARAM_QUERY = 'q';
|
|
|
11
11
|
/** Some utility functions around search queries. */
|
|
12
12
|
export function useSearchPage() {
|
|
13
13
|
const history = useHistory();
|
|
14
|
-
const { siteConfig: { baseUrl }, } = useDocusaurusContext();
|
|
14
|
+
const { siteConfig: { baseUrl, themeConfig }, } = useDocusaurusContext();
|
|
15
|
+
const { algolia: { searchPagePath }, } = themeConfig;
|
|
15
16
|
const [searchQuery, setSearchQueryState] = useState('');
|
|
16
17
|
// Init search query just after React hydration
|
|
17
18
|
useEffect(() => {
|
|
@@ -33,7 +34,8 @@ export function useSearchPage() {
|
|
|
33
34
|
}, [history]);
|
|
34
35
|
const generateSearchPageLink = useCallback((targetSearchQuery) =>
|
|
35
36
|
// Refer to https://github.com/facebook/docusaurus/pull/2838
|
|
36
|
-
|
|
37
|
+
// Note: if searchPagePath is falsy, useSearchPage() will not be called
|
|
38
|
+
`${baseUrl}${searchPagePath}?${SEARCH_PARAM_QUERY}=${encodeURIComponent(targetSearchQuery)}`, [baseUrl, searchPagePath]);
|
|
37
39
|
return {
|
|
38
40
|
searchQuery,
|
|
39
41
|
setSearchQuery,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSearchPage.js","sourceRoot":"","sources":["../../src/hooks/useSearchPage.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AACvD,OAAO,EAAC,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAC9C,OAAO,oBAAoB,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"useSearchPage.js","sourceRoot":"","sources":["../../src/hooks/useSearchPage.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AACvD,OAAO,EAAC,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAC9C,OAAO,oBAAoB,MAAM,kCAAkC,CAAC;AAGpE,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAE/B,oDAAoD;AACpD,MAAM,UAAU,aAAa;IAiB3B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,EACJ,UAAU,EAAE,EAAC,OAAO,EAAE,WAAW,EAAC,GACnC,GAAG,oBAAoB,EAAE,CAAC;IAC3B,MAAM,EACJ,OAAO,EAAE,EAAC,cAAc,EAAC,GAC1B,GAAG,WAAiC,CAAC;IAEtC,MAAM,CAAC,WAAW,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAExD,+CAA+C;IAC/C,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,sBAAsB,GAC1B,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;QAE5E,mBAAmB,CAAC,sBAAsB,CAAC,CAAC;IAC9C,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,cAAc,GAAG,WAAW,CAChC,CAAC,cAAsB,EAAE,EAAE;QACzB,MAAM,YAAY,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAEjE,IAAI,cAAc,EAAE;YAClB,YAAY,CAAC,GAAG,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;SACtD;aAAM;YACL,YAAY,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;SACzC;QAED,OAAO,CAAC,OAAO,CAAC;YACd,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE;SAChC,CAAC,CAAC;QACH,mBAAmB,CAAC,cAAc,CAAC,CAAC;IACtC,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,MAAM,sBAAsB,GAAG,WAAW,CACxC,CAAC,iBAAyB,EAAE,EAAE;IAC5B,4DAA4D;IAC5D,uEAAuE;IACvE,GAAG,OAAO,GACR,cACF,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,iBAAiB,CAAC,EAAE,EACnE,CAAC,OAAO,EAAE,cAAc,CAAC,CAC1B,CAAC;IAEF,OAAO;QACL,WAAW;QACX,cAAc;QACd,sBAAsB;KACvB,CAAC;AACJ,CAAC"}
|
package/lib/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
export { useThemeConfig, type ThemeConfig, type UserThemeConfig, type Navbar, type NavbarItem, type NavbarLogo, type MultiColumnFooter, type SimpleFooter, type Footer, type FooterLogo, type FooterLinkItem, type ColorModeConfig, } from './utils/useThemeConfig';
|
|
8
|
-
export { createStorageSlot, listStorageKeys } from './utils/storageUtils';
|
|
8
|
+
export { createStorageSlot, useStorageSlot, listStorageKeys, } from './utils/storageUtils';
|
|
9
9
|
export { useContextualSearchFilters } from './utils/searchUtils';
|
|
10
10
|
export { useCurrentSidebarCategory, filterDocCardListItems, } from './utils/docsUtils';
|
|
11
11
|
export { usePluralForm } from './utils/usePluralForm';
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EACL,cAAc,EACd,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,MAAM,EACX,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,MAAM,EACX,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EACL,cAAc,EACd,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,MAAM,EACX,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,MAAM,EACX,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAC,0BAA0B,EAAC,MAAM,qBAAqB,CAAC;AAE/D,OAAO,EACL,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAC,cAAc,EAAE,WAAW,EAAC,MAAM,0BAA0B,CAAC;AAErE,OAAO,EAAC,eAAe,EAAC,MAAM,yBAAyB,CAAC;AAExD,OAAO,EACL,yBAAyB,EACzB,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAC,YAAY,EAAE,qBAAqB,EAAC,MAAM,uBAAuB,CAAC;AAE1E,OAAO,EAAC,YAAY,EAAE,KAAK,SAAS,EAAC,MAAM,sBAAsB,CAAC;AAElE,OAAO,EACL,yBAAyB,EACzB,KAAK,4BAA4B,GAClC,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;AAOpD,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,KAAK,cAAc,GACpB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAC,wBAAwB,EAAC,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAC,mBAAmB,EAAC,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAC,UAAU,EAAE,IAAI,EAAC,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAC,uBAAuB,EAAC,MAAM,iCAAiC,CAAC;AAExE,OAAO,EAAC,sBAAsB,EAAC,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EACL,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* APIs to document
|
|
9
9
|
*/
|
|
10
10
|
export { useThemeConfig, } from './utils/useThemeConfig';
|
|
11
|
-
export { createStorageSlot, listStorageKeys } from './utils/storageUtils';
|
|
11
|
+
export { createStorageSlot, useStorageSlot, listStorageKeys, } from './utils/storageUtils';
|
|
12
12
|
export { useContextualSearchFilters } from './utils/searchUtils';
|
|
13
13
|
export { useCurrentSidebarCategory, filterDocCardListItems, } from './utils/docsUtils';
|
|
14
14
|
export { usePluralForm } from './utils/usePluralForm';
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AAEH,OAAO,EACL,cAAc,GAYf,MAAM,wBAAwB,CAAC;AAEhC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AAEH,OAAO,EACL,cAAc,GAYf,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAC,0BAA0B,EAAC,MAAM,qBAAqB,CAAC;AAE/D,OAAO,EACL,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAC,cAAc,EAAE,WAAW,EAAC,MAAM,0BAA0B,CAAC;AAErE,OAAO,EAAC,eAAe,EAAC,MAAM,yBAAyB,CAAC;AAExD,OAAO,EACL,yBAAyB,EACzB,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAC,YAAY,EAAE,qBAAqB,EAAC,MAAM,uBAAuB,CAAC;AAE1E,OAAO,EAAC,YAAY,EAAiB,MAAM,sBAAsB,CAAC;AAElE,OAAO,EACL,yBAAyB,GAE1B,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;AAEpD;;;GAGG;AAEH,OAAO,EACL,sBAAsB,EACtB,iBAAiB,GAElB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAC,wBAAwB,EAAC,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAC,mBAAmB,EAAC,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAC,UAAU,EAAE,IAAI,EAAC,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAC,uBAAuB,EAAC,MAAM,iCAAiC,CAAC;AAExE,OAAO,EAAC,sBAAsB,EAAC,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EACL,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC"}
|
package/lib/internal.d.ts
CHANGED
|
@@ -12,7 +12,8 @@ export { DocProvider, useDoc, type DocContextValue } from './contexts/doc';
|
|
|
12
12
|
export { BlogPostProvider, useBlogPost, type BlogPostContextValue, } from './contexts/blogPost';
|
|
13
13
|
export { useDocsPreferredVersionByPluginId, DocsPreferredVersionContextProvider, } from './contexts/docsPreferredVersion';
|
|
14
14
|
export { AnnouncementBarProvider, useAnnouncementBar, } from './contexts/announcementBar';
|
|
15
|
-
export {
|
|
15
|
+
export { useTabs } from './utils/tabsUtils';
|
|
16
|
+
export type { TabValue, TabsProps, TabItemProps } from './utils/tabsUtils';
|
|
16
17
|
export { useNavbarMobileSidebar } from './contexts/navbarMobileSidebar';
|
|
17
18
|
export { useNavbarSecondaryMenu } from './contexts/navbarSecondaryMenu/display';
|
|
18
19
|
export { ColorModeProvider } from './contexts/colorMode';
|
|
@@ -23,7 +24,7 @@ export { isDocsPluginEnabled, useDocById, findSidebarCategory, findFirstCategory
|
|
|
23
24
|
export { useTitleFormatter } from './utils/generalUtils';
|
|
24
25
|
export { useLocationChange } from './utils/useLocationChange';
|
|
25
26
|
export { useLocalPathname } from './utils/useLocalPathname';
|
|
26
|
-
export { useHistoryPopHandler } from './utils/historyUtils';
|
|
27
|
+
export { useHistoryPopHandler, useHistorySelector, useQueryStringValue, } from './utils/historyUtils';
|
|
27
28
|
export { useFilteredAndTreeifiedTOC, useTreeifiedTOC, type TOCTreeNode, } from './utils/tocUtils';
|
|
28
29
|
export { ScrollControllerProvider, useScrollController, useScrollPosition, useScrollPositionBlocker, useSmoothScrollTo, } from './utils/scrollUtils';
|
|
29
30
|
export { useHomePageRoute, isSamePath } from './utils/routesUtils';
|
package/lib/internal.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAaH,cAAc,SAAS,CAAC;AAExB,OAAO,EACL,oCAAoC,EACpC,+BAA+B,GAChC,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAC,mBAAmB,EAAE,cAAc,EAAC,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAC,mBAAmB,EAAE,cAAc,EAAC,MAAM,wBAAwB,CAAC;AAE3E,OAAO,EAAC,WAAW,EAAE,MAAM,EAAE,KAAK,eAAe,EAAC,MAAM,gBAAgB,CAAC;AACzE,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,KAAK,oBAAoB,GAC1B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,iCAAiC,EACjC,mCAAmC,GACpC,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAaH,cAAc,SAAS,CAAC;AAExB,OAAO,EACL,oCAAoC,EACpC,+BAA+B,GAChC,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAC,mBAAmB,EAAE,cAAc,EAAC,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAC,mBAAmB,EAAE,cAAc,EAAC,MAAM,wBAAwB,CAAC;AAE3E,OAAO,EAAC,WAAW,EAAE,MAAM,EAAE,KAAK,eAAe,EAAC,MAAM,gBAAgB,CAAC;AACzE,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,KAAK,oBAAoB,GAC1B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,iCAAiC,EACjC,mCAAmC,GACpC,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAC,OAAO,EAAC,MAAM,mBAAmB,CAAC;AAC1C,YAAY,EAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAEzE,OAAO,EAAC,sBAAsB,EAAC,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAC,sBAAsB,EAAC,MAAM,wCAAwC,CAAC;AAE9E,OAAO,EAAC,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAC,qBAAqB,EAAC,MAAM,+BAA+B,CAAC;AAEpE,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAC,mBAAmB,EAAE,kBAAkB,EAAC,MAAM,qBAAqB,CAAC;AAE5E,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAC,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAC,iBAAiB,EAAC,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,0BAA0B,EAC1B,eAAe,EACf,KAAK,WAAW,GACjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAC,gBAAgB,EAAE,UAAU,EAAC,MAAM,qBAAqB,CAAC;AAEjE,OAAO,EAAC,2BAA2B,EAAC,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAAC,gBAAgB,EAAE,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAErE,OAAO,EACL,eAAe,EACf,KAAK,kBAAkB,GACxB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAC,iBAAiB,EAAC,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EACL,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAC,iBAAiB,EAAC,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAC,eAAe,EAAC,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAC,oBAAoB,EAAC,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC"}
|
package/lib/internal.js
CHANGED
|
@@ -23,7 +23,7 @@ export { DocProvider, useDoc } from './contexts/doc';
|
|
|
23
23
|
export { BlogPostProvider, useBlogPost, } from './contexts/blogPost';
|
|
24
24
|
export { useDocsPreferredVersionByPluginId, DocsPreferredVersionContextProvider, } from './contexts/docsPreferredVersion';
|
|
25
25
|
export { AnnouncementBarProvider, useAnnouncementBar, } from './contexts/announcementBar';
|
|
26
|
-
export {
|
|
26
|
+
export { useTabs } from './utils/tabsUtils';
|
|
27
27
|
export { useNavbarMobileSidebar } from './contexts/navbarMobileSidebar';
|
|
28
28
|
export { useNavbarSecondaryMenu } from './contexts/navbarSecondaryMenu/display';
|
|
29
29
|
export { ColorModeProvider } from './contexts/colorMode';
|
|
@@ -34,7 +34,7 @@ export { isDocsPluginEnabled, useDocById, findSidebarCategory, findFirstCategory
|
|
|
34
34
|
export { useTitleFormatter } from './utils/generalUtils';
|
|
35
35
|
export { useLocationChange } from './utils/useLocationChange';
|
|
36
36
|
export { useLocalPathname } from './utils/useLocalPathname';
|
|
37
|
-
export { useHistoryPopHandler } from './utils/historyUtils';
|
|
37
|
+
export { useHistoryPopHandler, useHistorySelector, useQueryStringValue, } from './utils/historyUtils';
|
|
38
38
|
export { useFilteredAndTreeifiedTOC, useTreeifiedTOC, } from './utils/tocUtils';
|
|
39
39
|
export { ScrollControllerProvider, useScrollController, useScrollPosition, useScrollPositionBlocker, useSmoothScrollTo, } from './utils/scrollUtils';
|
|
40
40
|
export { useHomePageRoute, isSamePath } from './utils/routesUtils';
|
package/lib/internal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,4EAA4E;AAC5E,6EAA6E;AAC7E,2EAA2E;AAC3E,uDAAuD;AACvD,EAAE;AACF,6DAA6D;AAC7D,gFAAgF;AAChF,yEAAyE;AACzE,oDAAoD;AACpD,EAAE;AACF,gDAAgD;AAChD,cAAc,SAAS,CAAC;AAExB,OAAO,EACL,oCAAoC,EACpC,+BAA+B,GAChC,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAC,mBAAmB,EAAE,cAAc,EAAC,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAC,mBAAmB,EAAE,cAAc,EAAC,MAAM,wBAAwB,CAAC;AAE3E,OAAO,EAAC,WAAW,EAAE,MAAM,EAAuB,MAAM,gBAAgB,CAAC;AACzE,OAAO,EACL,gBAAgB,EAChB,WAAW,GAEZ,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,iCAAiC,EACjC,mCAAmC,GACpC,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,
|
|
1
|
+
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,4EAA4E;AAC5E,6EAA6E;AAC7E,2EAA2E;AAC3E,uDAAuD;AACvD,EAAE;AACF,6DAA6D;AAC7D,gFAAgF;AAChF,yEAAyE;AACzE,oDAAoD;AACpD,EAAE;AACF,gDAAgD;AAChD,cAAc,SAAS,CAAC;AAExB,OAAO,EACL,oCAAoC,EACpC,+BAA+B,GAChC,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAC,mBAAmB,EAAE,cAAc,EAAC,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EAAC,mBAAmB,EAAE,cAAc,EAAC,MAAM,wBAAwB,CAAC;AAE3E,OAAO,EAAC,WAAW,EAAE,MAAM,EAAuB,MAAM,gBAAgB,CAAC;AACzE,OAAO,EACL,gBAAgB,EAChB,WAAW,GAEZ,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,iCAAiC,EACjC,mCAAmC,GACpC,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAC,OAAO,EAAC,MAAM,mBAAmB,CAAC;AAG1C,OAAO,EAAC,sBAAsB,EAAC,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAC,sBAAsB,EAAC,MAAM,wCAAwC,CAAC;AAE9E,OAAO,EAAC,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAC,qBAAqB,EAAC,MAAM,+BAA+B,CAAC;AAEpE,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAC,mBAAmB,EAAE,kBAAkB,EAAC,MAAM,qBAAqB,CAAC;AAE5E,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAC,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAC,iBAAiB,EAAC,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,0BAA0B,EAC1B,eAAe,GAEhB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAC,gBAAgB,EAAE,UAAU,EAAC,MAAM,qBAAqB,CAAC;AAEjE,OAAO,EAAC,2BAA2B,EAAC,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAAC,gBAAgB,EAAE,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAErE,OAAO,EACL,eAAe,GAEhB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAC,iBAAiB,EAAC,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EACL,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAC,iBAAiB,EAAC,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAC,eAAe,EAAC,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAC,oBAAoB,EAAC,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
|
-
import type { Location, Action } from 'history';
|
|
7
|
+
import type { History, Location, Action } from 'history';
|
|
8
8
|
declare type HistoryBlockHandler = (location: Location, action: Action) => void | false;
|
|
9
9
|
/**
|
|
10
10
|
* Permits to register a handler that will be called on history pop navigation
|
|
@@ -13,5 +13,16 @@ declare type HistoryBlockHandler = (location: Location, action: Action) => void
|
|
|
13
13
|
* "direction" (backward/forward) of the POP event.
|
|
14
14
|
*/
|
|
15
15
|
export declare function useHistoryPopHandler(handler: HistoryBlockHandler): void;
|
|
16
|
+
/**
|
|
17
|
+
* Permits to efficiently subscribe to a slice of the history
|
|
18
|
+
* See https://thisweekinreact.com/articles/useSyncExternalStore-the-underrated-react-api
|
|
19
|
+
* @param selector
|
|
20
|
+
*/
|
|
21
|
+
export declare function useHistorySelector<Value>(selector: (history: History<unknown>) => Value): Value;
|
|
22
|
+
/**
|
|
23
|
+
* Permits to efficiently subscribe to a specific querystring value
|
|
24
|
+
* @param key
|
|
25
|
+
*/
|
|
26
|
+
export declare function useQueryStringValue(key: string | null): string | null;
|
|
16
27
|
export {};
|
|
17
28
|
//# sourceMappingURL=historyUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"historyUtils.d.ts","sourceRoot":"","sources":["../../src/utils/historyUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"historyUtils.d.ts","sourceRoot":"","sources":["../../src/utils/historyUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,KAAK,EAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAC,MAAM,SAAS,CAAC;AAEvD,aAAK,mBAAmB,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,KAAK,CAAC;AAiBhF;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CASvE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EACtC,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,KAAK,GAC7C,KAAK,CAOP;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAOrE"}
|
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { useEffect } from 'react';
|
|
8
8
|
import { useHistory } from '@docusaurus/router';
|
|
9
|
+
// @ts-expect-error: TODO temporary until React 18 upgrade
|
|
10
|
+
import { useSyncExternalStore } from 'use-sync-external-store/shim';
|
|
9
11
|
import { useEvent } from './reactUtils';
|
|
10
12
|
/**
|
|
11
13
|
* Permits to register a handler that will be called on history actions (pop,
|
|
@@ -35,4 +37,25 @@ export function useHistoryPopHandler(handler) {
|
|
|
35
37
|
return undefined;
|
|
36
38
|
});
|
|
37
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Permits to efficiently subscribe to a slice of the history
|
|
42
|
+
* See https://thisweekinreact.com/articles/useSyncExternalStore-the-underrated-react-api
|
|
43
|
+
* @param selector
|
|
44
|
+
*/
|
|
45
|
+
export function useHistorySelector(selector) {
|
|
46
|
+
const history = useHistory();
|
|
47
|
+
return useSyncExternalStore(history.listen, () => selector(history), () => selector(history));
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Permits to efficiently subscribe to a specific querystring value
|
|
51
|
+
* @param key
|
|
52
|
+
*/
|
|
53
|
+
export function useQueryStringValue(key) {
|
|
54
|
+
return useHistorySelector((history) => {
|
|
55
|
+
if (key === null) {
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
return new URLSearchParams(history.location.search).get(key);
|
|
59
|
+
});
|
|
60
|
+
}
|
|
38
61
|
//# sourceMappingURL=historyUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"historyUtils.js","sourceRoot":"","sources":["../../src/utils/historyUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAChC,OAAO,EAAC,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAC,QAAQ,EAAC,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"historyUtils.js","sourceRoot":"","sources":["../../src/utils/historyUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAChC,OAAO,EAAC,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAC9C,0DAA0D;AAC1D,OAAO,EAAC,oBAAoB,EAAC,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAC,QAAQ,EAAC,MAAM,cAAc,CAAC;AAMtC;;;;GAIG;AACH,SAAS,uBAAuB,CAAC,OAA4B;IAC3D,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IACxC,SAAS;IACP,kFAAkF;IAClF,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,EAC1E,CAAC,OAAO,EAAE,aAAa,CAAC,CACzB,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAA4B;IAC/D,uBAAuB,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;QAC3C,IAAI,MAAM,KAAK,KAAK,EAAE;YACpB,kDAAkD;YAClD,OAAO,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;SAClC;QACD,uCAAuC;QACvC,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAA8C;IAE9C,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,OAAO,oBAAoB,CACzB,OAAO,CAAC,MAAM,EACd,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EACvB,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CACxB,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAkB;IACpD,OAAO,kBAAkB,CAAC,CAAC,OAAO,EAAE,EAAE;QACpC,IAAI,GAAG,KAAK,IAAI,EAAE;YAChB,OAAO,IAAI,CAAC;SACb;QACD,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scrollUtils.d.ts","sourceRoot":"","sources":["../../src/utils/scrollUtils.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,EAOZ,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAKf,aAAK,gBAAgB,GAAG;IACtB,gEAAgE;IAChE,sBAAsB,EAAE,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACxD,mDAAmD;IACnD,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,oDAAoD;IACpD,mBAAmB,EAAE,MAAM,IAAI,CAAC;CACjC,CAAC;AAuBF,wBAAgB,wBAAwB,CAAC,EACvC,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;CACrB,GAAG,GAAG,CAAC,OAAO,CAOd;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,IAAI,gBAAgB,CAMtD;AAED,aAAK,cAAc,GAAG;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,CAAC;AAUzD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,CACN,QAAQ,EAAE,cAAc,EACxB,YAAY,EAAE,cAAc,GAAG,IAAI,KAChC,IAAI,EACT,IAAI,GAAE,OAAO,EAAO,GACnB,IAAI,CA0BN;AA6CD;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,IAAI;IAC1C;;;OAGG;IACH,yCAAyC,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,IAAI,CAAC;CACtE,
|
|
1
|
+
{"version":3,"file":"scrollUtils.d.ts","sourceRoot":"","sources":["../../src/utils/scrollUtils.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,EAOZ,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAKf,aAAK,gBAAgB,GAAG;IACtB,gEAAgE;IAChE,sBAAsB,EAAE,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACxD,mDAAmD;IACnD,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,oDAAoD;IACpD,mBAAmB,EAAE,MAAM,IAAI,CAAC;CACjC,CAAC;AAuBF,wBAAgB,wBAAwB,CAAC,EACvC,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;CACrB,GAAG,GAAG,CAAC,OAAO,CAOd;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,IAAI,gBAAgB,CAMtD;AAED,aAAK,cAAc,GAAG;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,CAAC;AAUzD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,CACN,QAAQ,EAAE,cAAc,EACxB,YAAY,EAAE,cAAc,GAAG,IAAI,KAChC,IAAI,EACT,IAAI,GAAE,OAAO,EAAO,GACnB,IAAI,CA0BN;AA6CD;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,IAAI;IAC1C;;;OAGG;IACH,yCAAyC,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,IAAI,CAAC;CACtE,CA2CA;AAED,aAAK,eAAe,GAAG,MAAM,IAAI,CAAC;AA6BlC;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,IAAI;IACnC;;;;OAIG;IACH,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC;;;;OAIG;IACH,YAAY,EAAE,eAAe,CAAC;CAC/B,CAoBA"}
|
package/lib/utils/scrollUtils.js
CHANGED
|
@@ -140,7 +140,10 @@ export function useScrollPositionBlocker() {
|
|
|
140
140
|
};
|
|
141
141
|
}, [scrollController, scrollPositionSaver]);
|
|
142
142
|
useLayoutEffect(() => {
|
|
143
|
-
|
|
143
|
+
// Queuing permits to restore scroll position after all useLayoutEffect
|
|
144
|
+
// have run, and yet preserve the sync nature of the scroll restoration
|
|
145
|
+
// See https://github.com/facebook/docusaurus/issues/8625
|
|
146
|
+
queueMicrotask(() => nextLayoutEffectCallbackRef.current?.());
|
|
144
147
|
});
|
|
145
148
|
return {
|
|
146
149
|
blockElementScrollPositionUntilNextRender,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scrollUtils.js","sourceRoot":"","sources":["../../src/utils/scrollUtils.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"scrollUtils.js","sourceRoot":"","sources":["../../src/utils/scrollUtils.tsx"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ export declare type StorageSlot = {
|
|
|
10
10
|
get: () => string | null;
|
|
11
11
|
set: (value: string) => void;
|
|
12
12
|
del: () => void;
|
|
13
|
+
listen: (onChange: (event: StorageEvent) => void) => () => void;
|
|
13
14
|
};
|
|
14
15
|
/**
|
|
15
16
|
* Creates an interface to work on a particular key in the storage model.
|
|
@@ -24,6 +25,9 @@ export declare type StorageSlot = {
|
|
|
24
25
|
export declare function createStorageSlot(key: string, options?: {
|
|
25
26
|
persistence?: StorageType;
|
|
26
27
|
}): StorageSlot;
|
|
28
|
+
export declare function useStorageSlot(key: string | null, options?: {
|
|
29
|
+
persistence?: StorageType;
|
|
30
|
+
}): [string | null, StorageSlot];
|
|
27
31
|
/**
|
|
28
32
|
* Returns a list of all the keys currently stored in browser storage,
|
|
29
33
|
* or an empty list if browser storage can't be accessed.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storageUtils.d.ts","sourceRoot":"","sources":["../../src/utils/storageUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"storageUtils.d.ts","sourceRoot":"","sources":["../../src/utils/storageUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,QAAA,MAAM,YAAY,qDAAsD,CAAC;AAEzE,oBAAY,WAAW,GAAG,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AAoFtD,oBAAY,WAAW,GAAG;IACxB,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACzB,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;CACjE,CAAC;AAyBF;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE;IAAC,WAAW,CAAC,EAAE,WAAW,CAAA;CAAC,GACpC,WAAW,CA6Db;AAED,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,OAAO,CAAC,EAAE;IAAC,WAAW,CAAC,EAAE,WAAW,CAAA;CAAC,GACpC,CAAC,MAAM,GAAG,IAAI,EAAE,WAAW,CAAC,CAiC9B;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,WAAW,GAAE,WAAgC,GAC5C,MAAM,EAAE,CAcV"}
|
|
@@ -4,8 +4,28 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
|
+
import { useCallback, useRef } from 'react';
|
|
8
|
+
// @ts-expect-error: TODO temp error until React 18 upgrade
|
|
9
|
+
import { useSyncExternalStore } from 'use-sync-external-store/shim';
|
|
7
10
|
const StorageTypes = ['localStorage', 'sessionStorage', 'none'];
|
|
8
11
|
const DefaultStorageType = 'localStorage';
|
|
12
|
+
// window.addEventListener('storage') only works for different windows...
|
|
13
|
+
// so for current window we have to dispatch the event manually
|
|
14
|
+
// Now we can listen for both cross-window / current-window storage changes!
|
|
15
|
+
// see https://stackoverflow.com/a/71177640/82609
|
|
16
|
+
// see https://stackoverflow.com/questions/26974084/listen-for-changes-with-localstorage-on-the-same-window
|
|
17
|
+
function dispatchChangeEvent({ key, oldValue, newValue, storage, }) {
|
|
18
|
+
// If we set multiple times the same storage value, events should not be fired
|
|
19
|
+
// The native events behave this way, so our manual event dispatch should
|
|
20
|
+
// rather behave exactly the same. Not doing so might create infinite loops.
|
|
21
|
+
// See https://github.com/facebook/docusaurus/issues/8594
|
|
22
|
+
if (oldValue === newValue) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const event = document.createEvent('StorageEvent');
|
|
26
|
+
event.initStorageEvent('storage', false, false, key, oldValue, newValue, window.location.href, storage);
|
|
27
|
+
window.dispatchEvent(event);
|
|
28
|
+
}
|
|
9
29
|
/**
|
|
10
30
|
* Will return `null` if browser storage is unavailable (like running Docusaurus
|
|
11
31
|
* in an iframe). This should NOT be called in SSR.
|
|
@@ -44,6 +64,7 @@ const NoopStorageSlot = {
|
|
|
44
64
|
get: () => null,
|
|
45
65
|
set: () => { },
|
|
46
66
|
del: () => { },
|
|
67
|
+
listen: () => () => { },
|
|
47
68
|
};
|
|
48
69
|
// Fail-fast, as storage APIs should not be used during the SSR process
|
|
49
70
|
function createServerStorageSlot(key) {
|
|
@@ -56,6 +77,7 @@ Please only call storage APIs in effects and event handlers.`);
|
|
|
56
77
|
get: throwError,
|
|
57
78
|
set: throwError,
|
|
58
79
|
del: throwError,
|
|
80
|
+
listen: throwError,
|
|
59
81
|
};
|
|
60
82
|
}
|
|
61
83
|
/**
|
|
@@ -72,38 +94,86 @@ export function createStorageSlot(key, options) {
|
|
|
72
94
|
if (typeof window === 'undefined') {
|
|
73
95
|
return createServerStorageSlot(key);
|
|
74
96
|
}
|
|
75
|
-
const
|
|
76
|
-
if (
|
|
97
|
+
const storage = getBrowserStorage(options?.persistence);
|
|
98
|
+
if (storage === null) {
|
|
77
99
|
return NoopStorageSlot;
|
|
78
100
|
}
|
|
79
101
|
return {
|
|
80
102
|
get: () => {
|
|
81
103
|
try {
|
|
82
|
-
return
|
|
104
|
+
return storage.getItem(key);
|
|
83
105
|
}
|
|
84
106
|
catch (err) {
|
|
85
107
|
console.error(`Docusaurus storage error, can't get key=${key}`, err);
|
|
86
108
|
return null;
|
|
87
109
|
}
|
|
88
110
|
},
|
|
89
|
-
set: (
|
|
111
|
+
set: (newValue) => {
|
|
90
112
|
try {
|
|
91
|
-
|
|
113
|
+
const oldValue = storage.getItem(key);
|
|
114
|
+
storage.setItem(key, newValue);
|
|
115
|
+
dispatchChangeEvent({
|
|
116
|
+
key,
|
|
117
|
+
oldValue,
|
|
118
|
+
newValue,
|
|
119
|
+
storage,
|
|
120
|
+
});
|
|
92
121
|
}
|
|
93
122
|
catch (err) {
|
|
94
|
-
console.error(`Docusaurus storage error, can't set ${key}=${
|
|
123
|
+
console.error(`Docusaurus storage error, can't set ${key}=${newValue}`, err);
|
|
95
124
|
}
|
|
96
125
|
},
|
|
97
126
|
del: () => {
|
|
98
127
|
try {
|
|
99
|
-
|
|
128
|
+
const oldValue = storage.getItem(key);
|
|
129
|
+
storage.removeItem(key);
|
|
130
|
+
dispatchChangeEvent({ key, oldValue, newValue: null, storage });
|
|
100
131
|
}
|
|
101
132
|
catch (err) {
|
|
102
133
|
console.error(`Docusaurus storage error, can't delete key=${key}`, err);
|
|
103
134
|
}
|
|
104
135
|
},
|
|
136
|
+
listen: (onChange) => {
|
|
137
|
+
try {
|
|
138
|
+
const listener = (event) => {
|
|
139
|
+
if (event.storageArea === storage && event.key === key) {
|
|
140
|
+
onChange(event);
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
window.addEventListener('storage', listener);
|
|
144
|
+
return () => window.removeEventListener('storage', listener);
|
|
145
|
+
}
|
|
146
|
+
catch (err) {
|
|
147
|
+
console.error(`Docusaurus storage error, can't listen for changes of key=${key}`, err);
|
|
148
|
+
return () => { };
|
|
149
|
+
}
|
|
150
|
+
},
|
|
105
151
|
};
|
|
106
152
|
}
|
|
153
|
+
export function useStorageSlot(key, options) {
|
|
154
|
+
// Not ideal but good enough: assumes storage slot config is constant
|
|
155
|
+
const storageSlot = useRef(() => {
|
|
156
|
+
if (key === null) {
|
|
157
|
+
return NoopStorageSlot;
|
|
158
|
+
}
|
|
159
|
+
return createStorageSlot(key, options);
|
|
160
|
+
}).current();
|
|
161
|
+
const listen = useCallback((onChange) => {
|
|
162
|
+
// Do not try to add a listener during SSR
|
|
163
|
+
if (typeof window === 'undefined') {
|
|
164
|
+
return () => { };
|
|
165
|
+
}
|
|
166
|
+
return storageSlot.listen(onChange);
|
|
167
|
+
}, [storageSlot]);
|
|
168
|
+
const currentValue = useSyncExternalStore(listen, () => {
|
|
169
|
+
// TODO this check should be useless after React 18
|
|
170
|
+
if (typeof window === 'undefined') {
|
|
171
|
+
return null;
|
|
172
|
+
}
|
|
173
|
+
return storageSlot.get();
|
|
174
|
+
}, () => null);
|
|
175
|
+
return [currentValue, storageSlot];
|
|
176
|
+
}
|
|
107
177
|
/**
|
|
108
178
|
* Returns a list of all the keys currently stored in browser storage,
|
|
109
179
|
* or an empty list if browser storage can't be accessed.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storageUtils.js","sourceRoot":"","sources":["../../src/utils/storageUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,YAAY,GAAG,CAAC,cAAc,EAAE,gBAAgB,EAAE,MAAM,CAAU,CAAC;AAIzE,MAAM,kBAAkB,GAAgB,cAAc,CAAC;AAEvD;;;;;GAKG;AACH,SAAS,iBAAiB,CACxB,cAA2B,kBAAkB;IAE7C,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QACjC,MAAM,IAAI,KAAK,CACb,qEAAqE,CACtE,CAAC;KACH;IACD,IAAI,WAAW,KAAK,MAAM,EAAE;QAC1B,OAAO,IAAI,CAAC;KACb;IACD,IAAI;QACF,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC;KAC5B;IAAC,OAAO,GAAG,EAAE;QACZ,wCAAwC,CAAC,GAAY,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC;KACb;AACH,CAAC;AAED,IAAI,0CAA0C,GAAG,KAAK,CAAC;AACvD;;;;GAIG;AACH,SAAS,wCAAwC,CAAC,KAAY;IAC5D,IAAI,CAAC,0CAA0C,EAAE;QAC/C,OAAO,CAAC,IAAI,CACV;kIAC4H,EAC5H,KAAK,CACN,CAAC;QACF,0CAA0C,GAAG,IAAI,CAAC;KACnD;AACH,CAAC;
|
|
1
|
+
{"version":3,"file":"storageUtils.js","sourceRoot":"","sources":["../../src/utils/storageUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
import { type ReactNode, type ReactElement } from 'react';
|
|
8
|
+
/**
|
|
9
|
+
* TabValue is the "config" of a given Tab
|
|
10
|
+
* Provided through <Tabs> "values" prop or through the children <TabItem> props
|
|
11
|
+
*/
|
|
12
|
+
export interface TabValue {
|
|
13
|
+
readonly value: string;
|
|
14
|
+
readonly label?: string;
|
|
15
|
+
readonly attributes?: {
|
|
16
|
+
[key: string]: unknown;
|
|
17
|
+
};
|
|
18
|
+
readonly default?: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface TabsProps {
|
|
21
|
+
readonly lazy?: boolean;
|
|
22
|
+
readonly block?: boolean;
|
|
23
|
+
readonly children: readonly ReactElement<TabItemProps>[] | ReactElement<TabItemProps>;
|
|
24
|
+
readonly defaultValue?: string | null;
|
|
25
|
+
readonly values?: readonly TabValue[];
|
|
26
|
+
readonly groupId?: string;
|
|
27
|
+
readonly className?: string;
|
|
28
|
+
readonly queryString?: string | boolean;
|
|
29
|
+
}
|
|
30
|
+
export interface TabItemProps {
|
|
31
|
+
readonly children: ReactNode;
|
|
32
|
+
readonly value: string;
|
|
33
|
+
readonly default?: boolean;
|
|
34
|
+
readonly label?: string;
|
|
35
|
+
readonly hidden?: boolean;
|
|
36
|
+
readonly className?: string;
|
|
37
|
+
readonly attributes?: {
|
|
38
|
+
[key: string]: unknown;
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
export declare function useTabs(props: TabsProps): {
|
|
42
|
+
selectedValue: string;
|
|
43
|
+
selectValue: (value: string) => void;
|
|
44
|
+
tabValues: readonly TabValue[];
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=tabsUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tabsUtils.d.ts","sourceRoot":"","sources":["../../src/utils/tabsUtils.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAc,EAKZ,KAAK,SAAS,EACd,KAAK,YAAY,EAElB,MAAM,OAAO,CAAC;AAKf;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAC,CAAC;IAC/C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,QAAQ,EACb,SAAS,YAAY,CAAC,YAAY,CAAC,EAAE,GACrC,YAAY,CAAC,YAAY,CAAC,CAAC;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACzC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAC,CAAC;CAChD;AAuKD,wBAAgB,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG;IACzC,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAC;CAChC,CA8CA"}
|