@docusaurus/theme-classic 3.8.1-canary-6367 → 3.8.1-canary-6373

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.
@@ -25,14 +25,29 @@ import useIsBrowser from '@docusaurus/useIsBrowser';
25
25
  import DocSidebarItems from '@theme/DocSidebarItems';
26
26
  // If we navigate to a category and it becomes active, it should automatically
27
27
  // expand itself
28
- function useAutoExpandActiveCategory({isActive, collapsed, updateCollapsed}) {
28
+ function useAutoExpandActiveCategory({
29
+ isActive,
30
+ collapsed,
31
+ updateCollapsed,
32
+ activePath,
33
+ }) {
29
34
  const wasActive = usePrevious(isActive);
35
+ const previousActivePath = usePrevious(activePath);
30
36
  useEffect(() => {
31
37
  const justBecameActive = isActive && !wasActive;
32
- if (justBecameActive && collapsed) {
38
+ const stillActiveButPathChanged =
39
+ isActive && wasActive && activePath !== previousActivePath;
40
+ if ((justBecameActive || stillActiveButPathChanged) && collapsed) {
33
41
  updateCollapsed(false);
34
42
  }
35
- }, [isActive, wasActive, collapsed, updateCollapsed]);
43
+ }, [
44
+ isActive,
45
+ wasActive,
46
+ collapsed,
47
+ updateCollapsed,
48
+ activePath,
49
+ previousActivePath,
50
+ ]);
36
51
  }
37
52
  /**
38
53
  * When a collapsible category has no link, we still link it to its first child
@@ -118,7 +133,12 @@ export default function DocSidebarItemCategory({
118
133
  setExpandedItem(toCollapsed ? null : index);
119
134
  setCollapsed(toCollapsed);
120
135
  };
121
- useAutoExpandActiveCategory({isActive, collapsed, updateCollapsed});
136
+ useAutoExpandActiveCategory({
137
+ isActive,
138
+ collapsed,
139
+ updateCollapsed,
140
+ activePath,
141
+ });
122
142
  useEffect(() => {
123
143
  if (
124
144
  collapsible &&
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@docusaurus/theme-classic",
3
- "version": "3.8.1-canary-6367",
3
+ "version": "3.8.1-canary-6373",
4
4
  "description": "Classic theme for Docusaurus",
5
5
  "main": "lib/index.js",
6
6
  "types": "src/theme-classic.d.ts",
@@ -20,19 +20,19 @@
20
20
  "copy:watch": "node ../../admin/scripts/copyUntypedFiles.js --watch"
21
21
  },
22
22
  "dependencies": {
23
- "@docusaurus/core": "3.8.1-canary-6367",
24
- "@docusaurus/logger": "3.8.1-canary-6367",
25
- "@docusaurus/mdx-loader": "3.8.1-canary-6367",
26
- "@docusaurus/module-type-aliases": "3.8.1-canary-6367",
27
- "@docusaurus/plugin-content-blog": "3.8.1-canary-6367",
28
- "@docusaurus/plugin-content-docs": "3.8.1-canary-6367",
29
- "@docusaurus/plugin-content-pages": "3.8.1-canary-6367",
30
- "@docusaurus/theme-common": "3.8.1-canary-6367",
31
- "@docusaurus/theme-translations": "3.8.1-canary-6367",
32
- "@docusaurus/types": "3.8.1-canary-6367",
33
- "@docusaurus/utils": "3.8.1-canary-6367",
34
- "@docusaurus/utils-common": "3.8.1-canary-6367",
35
- "@docusaurus/utils-validation": "3.8.1-canary-6367",
23
+ "@docusaurus/core": "3.8.1-canary-6373",
24
+ "@docusaurus/logger": "3.8.1-canary-6373",
25
+ "@docusaurus/mdx-loader": "3.8.1-canary-6373",
26
+ "@docusaurus/module-type-aliases": "3.8.1-canary-6373",
27
+ "@docusaurus/plugin-content-blog": "3.8.1-canary-6373",
28
+ "@docusaurus/plugin-content-docs": "3.8.1-canary-6373",
29
+ "@docusaurus/plugin-content-pages": "3.8.1-canary-6373",
30
+ "@docusaurus/theme-common": "3.8.1-canary-6373",
31
+ "@docusaurus/theme-translations": "3.8.1-canary-6373",
32
+ "@docusaurus/types": "3.8.1-canary-6373",
33
+ "@docusaurus/utils": "3.8.1-canary-6373",
34
+ "@docusaurus/utils-common": "3.8.1-canary-6373",
35
+ "@docusaurus/utils-validation": "3.8.1-canary-6373",
36
36
  "@mdx-js/react": "^3.0.0",
37
37
  "clsx": "^2.0.0",
38
38
  "copy-text-to-clipboard": "^3.2.0",
@@ -62,5 +62,5 @@
62
62
  "engines": {
63
63
  "node": ">=18.0"
64
64
  },
65
- "gitHead": "5b61ba8aaf39d8400fbb3e19b431caf7afc5671a"
65
+ "gitHead": "e7cd5f17e74b237f5b60934fa035f1bcd7361c6a"
66
66
  }
@@ -37,18 +37,30 @@ function useAutoExpandActiveCategory({
37
37
  isActive,
38
38
  collapsed,
39
39
  updateCollapsed,
40
+ activePath,
40
41
  }: {
41
42
  isActive: boolean;
42
43
  collapsed: boolean;
43
44
  updateCollapsed: (b: boolean) => void;
45
+ activePath: string;
44
46
  }) {
45
47
  const wasActive = usePrevious(isActive);
48
+ const previousActivePath = usePrevious(activePath);
46
49
  useEffect(() => {
47
50
  const justBecameActive = isActive && !wasActive;
48
- if (justBecameActive && collapsed) {
51
+ const stillActiveButPathChanged =
52
+ isActive && wasActive && activePath !== previousActivePath;
53
+ if ((justBecameActive || stillActiveButPathChanged) && collapsed) {
49
54
  updateCollapsed(false);
50
55
  }
51
- }, [isActive, wasActive, collapsed, updateCollapsed]);
56
+ }, [
57
+ isActive,
58
+ wasActive,
59
+ collapsed,
60
+ updateCollapsed,
61
+ activePath,
62
+ previousActivePath,
63
+ ]);
52
64
  }
53
65
 
54
66
  /**
@@ -150,7 +162,12 @@ export default function DocSidebarItemCategory({
150
162
  setExpandedItem(toCollapsed ? null : index);
151
163
  setCollapsed(toCollapsed);
152
164
  };
153
- useAutoExpandActiveCategory({isActive, collapsed, updateCollapsed});
165
+ useAutoExpandActiveCategory({
166
+ isActive,
167
+ collapsed,
168
+ updateCollapsed,
169
+ activePath,
170
+ });
154
171
  useEffect(() => {
155
172
  if (
156
173
  collapsible &&