@docusaurus/theme-classic 0.0.0-5008 → 0.0.0-5009

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.
@@ -23,15 +23,15 @@ import DocSidebarItems from '@theme/DocSidebarItems';
23
23
  import useIsBrowser from '@docusaurus/useIsBrowser'; // If we navigate to a category and it becomes active, it should automatically
24
24
  // expand itself
25
25
 
26
- function useAutoExpandActiveCategory({isActive, collapsed, setCollapsed}) {
26
+ function useAutoExpandActiveCategory({isActive, collapsed, updateCollapsed}) {
27
27
  const wasActive = usePrevious(isActive);
28
28
  useEffect(() => {
29
29
  const justBecameActive = isActive && !wasActive;
30
30
 
31
31
  if (justBecameActive && collapsed) {
32
- setCollapsed(false);
32
+ updateCollapsed(false);
33
33
  }
34
- }, [isActive, wasActive, collapsed, setCollapsed]);
34
+ }, [isActive, wasActive, collapsed, updateCollapsed]);
35
35
  }
36
36
  /**
37
37
  * When a collapsible category has no link, we still link it to its first child
@@ -88,6 +88,11 @@ export default function DocSidebarItemCategory({
88
88
  ...props
89
89
  }) {
90
90
  const {items, label, collapsible, className, href} = item;
91
+ const {
92
+ docs: {
93
+ sidebar: {autoCollapseCategories},
94
+ },
95
+ } = useThemeConfig();
91
96
  const hrefWithSSRFallback = useCategoryHrefWithSSRFallback(item);
92
97
  const isActive = isActiveSidebarItem(item, activePath);
93
98
  const isCurrentPage = isSamePath(href, activePath);
@@ -102,23 +107,18 @@ export default function DocSidebarItemCategory({
102
107
  return isActive ? false : item.collapsed;
103
108
  },
104
109
  });
105
- useAutoExpandActiveCategory({
106
- isActive,
107
- collapsed,
108
- setCollapsed,
109
- });
110
- const {expandedItem, setExpandedItem} = useDocSidebarItemsExpandedState();
110
+ const {expandedItem, setExpandedItem} = useDocSidebarItemsExpandedState(); // Use this instead of `setCollapsed`, because it is also reactive
111
111
 
112
- function updateCollapsed(toCollapsed = !collapsed) {
112
+ const updateCollapsed = (toCollapsed = !collapsed) => {
113
113
  setExpandedItem(toCollapsed ? null : index);
114
114
  setCollapsed(toCollapsed);
115
- }
115
+ };
116
116
 
117
- const {
118
- docs: {
119
- sidebar: {autoCollapseCategories},
120
- },
121
- } = useThemeConfig();
117
+ useAutoExpandActiveCategory({
118
+ isActive,
119
+ collapsed,
120
+ updateCollapsed,
121
+ });
122
122
  useEffect(() => {
123
123
  if (
124
124
  collapsible &&
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@docusaurus/theme-classic",
3
- "version": "0.0.0-5008",
3
+ "version": "0.0.0-5009",
4
4
  "description": "Classic theme for Docusaurus",
5
5
  "main": "lib/index.js",
6
6
  "types": "src/theme-classic.d.ts",
@@ -21,15 +21,15 @@
21
21
  "format:lib-next": "prettier --config ../../.prettierrc --write \"lib-next/**/*.{js,ts,jsx,tsc}\""
22
22
  },
23
23
  "dependencies": {
24
- "@docusaurus/core": "0.0.0-5008",
25
- "@docusaurus/plugin-content-blog": "0.0.0-5008",
26
- "@docusaurus/plugin-content-docs": "0.0.0-5008",
27
- "@docusaurus/plugin-content-pages": "0.0.0-5008",
28
- "@docusaurus/theme-common": "0.0.0-5008",
29
- "@docusaurus/theme-translations": "0.0.0-5008",
30
- "@docusaurus/utils": "0.0.0-5008",
31
- "@docusaurus/utils-common": "0.0.0-5008",
32
- "@docusaurus/utils-validation": "0.0.0-5008",
24
+ "@docusaurus/core": "0.0.0-5009",
25
+ "@docusaurus/plugin-content-blog": "0.0.0-5009",
26
+ "@docusaurus/plugin-content-docs": "0.0.0-5009",
27
+ "@docusaurus/plugin-content-pages": "0.0.0-5009",
28
+ "@docusaurus/theme-common": "0.0.0-5009",
29
+ "@docusaurus/theme-translations": "0.0.0-5009",
30
+ "@docusaurus/utils": "0.0.0-5009",
31
+ "@docusaurus/utils-common": "0.0.0-5009",
32
+ "@docusaurus/utils-validation": "0.0.0-5009",
33
33
  "@mdx-js/react": "^1.6.22",
34
34
  "clsx": "^1.1.1",
35
35
  "copy-text-to-clipboard": "^3.0.1",
@@ -46,8 +46,8 @@
46
46
  "@babel/cli": "^7.17.10",
47
47
  "@babel/core": "^7.17.10",
48
48
  "@babel/preset-typescript": "^7.16.7",
49
- "@docusaurus/module-type-aliases": "0.0.0-5008",
50
- "@docusaurus/types": "0.0.0-5008",
49
+ "@docusaurus/module-type-aliases": "0.0.0-5009",
50
+ "@docusaurus/types": "0.0.0-5009",
51
51
  "@types/mdx-js__react": "^1.5.5",
52
52
  "@types/nprogress": "^0.2.0",
53
53
  "@types/prismjs": "^1.26.0",
@@ -64,5 +64,5 @@
64
64
  "engines": {
65
65
  "node": ">=14"
66
66
  },
67
- "gitHead": "240ae8300c8a16a1ff854aac3a62456ca00855c0"
67
+ "gitHead": "b3d1590b3b6a0d270bf339c637574152cc4d51dc"
68
68
  }
@@ -31,19 +31,19 @@ import useIsBrowser from '@docusaurus/useIsBrowser';
31
31
  function useAutoExpandActiveCategory({
32
32
  isActive,
33
33
  collapsed,
34
- setCollapsed,
34
+ updateCollapsed,
35
35
  }: {
36
36
  isActive: boolean;
37
37
  collapsed: boolean;
38
- setCollapsed: (b: boolean) => void;
38
+ updateCollapsed: (b: boolean) => void;
39
39
  }) {
40
40
  const wasActive = usePrevious(isActive);
41
41
  useEffect(() => {
42
42
  const justBecameActive = isActive && !wasActive;
43
43
  if (justBecameActive && collapsed) {
44
- setCollapsed(false);
44
+ updateCollapsed(false);
45
45
  }
46
- }, [isActive, wasActive, collapsed, setCollapsed]);
46
+ }, [isActive, wasActive, collapsed, updateCollapsed]);
47
47
  }
48
48
 
49
49
  /**
@@ -105,6 +105,11 @@ export default function DocSidebarItemCategory({
105
105
  ...props
106
106
  }: Props): JSX.Element {
107
107
  const {items, label, collapsible, className, href} = item;
108
+ const {
109
+ docs: {
110
+ sidebar: {autoCollapseCategories},
111
+ },
112
+ } = useThemeConfig();
108
113
  const hrefWithSSRFallback = useCategoryHrefWithSSRFallback(item);
109
114
 
110
115
  const isActive = isActiveSidebarItem(item, activePath);
@@ -121,17 +126,13 @@ export default function DocSidebarItemCategory({
121
126
  },
122
127
  });
123
128
 
124
- useAutoExpandActiveCategory({isActive, collapsed, setCollapsed});
125
129
  const {expandedItem, setExpandedItem} = useDocSidebarItemsExpandedState();
126
- function updateCollapsed(toCollapsed: boolean = !collapsed) {
130
+ // Use this instead of `setCollapsed`, because it is also reactive
131
+ const updateCollapsed = (toCollapsed: boolean = !collapsed) => {
127
132
  setExpandedItem(toCollapsed ? null : index);
128
133
  setCollapsed(toCollapsed);
129
- }
130
- const {
131
- docs: {
132
- sidebar: {autoCollapseCategories},
133
- },
134
- } = useThemeConfig();
134
+ };
135
+ useAutoExpandActiveCategory({isActive, collapsed, updateCollapsed});
135
136
  useEffect(() => {
136
137
  if (
137
138
  collapsible &&