@docusaurus/theme-classic 0.0.0-4806 → 0.0.0-4811

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.
@@ -7,16 +7,17 @@
7
7
  import React from 'react';
8
8
  import clsx from 'clsx';
9
9
  import Link from '@docusaurus/Link';
10
- import styles from './styles.module.css';
11
10
  import {translate} from '@docusaurus/Translate';
12
- export default function BlogSidebar({sidebar}) {
13
- if (sidebar.items.length === 0) {
14
- return null;
15
- }
11
+ import {
12
+ NavbarSecondaryMenuFiller,
13
+ useWindowSize,
14
+ } from '@docusaurus/theme-common';
15
+ import styles from './styles.module.css';
16
16
 
17
+ function BlogSidebarContent({sidebar, className}) {
17
18
  return (
18
19
  <nav
19
- className={clsx(styles.sidebar, 'thin-scrollbar')}
20
+ className={clsx(styles.sidebar, 'thin-scrollbar', className)}
20
21
  aria-label={translate({
21
22
  id: 'theme.blog.sidebar.navAriaLabel',
22
23
  message: 'Blog recent posts navigation',
@@ -41,3 +42,22 @@ export default function BlogSidebar({sidebar}) {
41
42
  </nav>
42
43
  );
43
44
  }
45
+
46
+ export default function BlogSidebar(props) {
47
+ const windowSize = useWindowSize();
48
+
49
+ if (props.sidebar.items.length === 0) {
50
+ return null;
51
+ } // Mobile sidebar doesn't need to be server-rendered
52
+
53
+ if (windowSize === 'mobile') {
54
+ return (
55
+ <NavbarSecondaryMenuFiller
56
+ component={BlogSidebarContent}
57
+ props={{...props, className: 'margin-left--md'}}
58
+ />
59
+ );
60
+ }
61
+
62
+ return <BlogSidebarContent {...props} className={styles.sidebarDesktop} />;
63
+ }
@@ -40,7 +40,11 @@
40
40
  }
41
41
 
42
42
  @media (max-width: 996px) {
43
- .sidebar {
43
+ .sidebarDesktop {
44
44
  display: none;
45
45
  }
46
+
47
+ .sidebar {
48
+ top: 0;
49
+ }
46
50
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@docusaurus/theme-classic",
3
- "version": "0.0.0-4806",
3
+ "version": "0.0.0-4811",
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-4806",
25
- "@docusaurus/plugin-content-blog": "0.0.0-4806",
26
- "@docusaurus/plugin-content-docs": "0.0.0-4806",
27
- "@docusaurus/plugin-content-pages": "0.0.0-4806",
28
- "@docusaurus/theme-common": "0.0.0-4806",
29
- "@docusaurus/theme-translations": "0.0.0-4806",
30
- "@docusaurus/utils": "0.0.0-4806",
31
- "@docusaurus/utils-common": "0.0.0-4806",
32
- "@docusaurus/utils-validation": "0.0.0-4806",
24
+ "@docusaurus/core": "0.0.0-4811",
25
+ "@docusaurus/plugin-content-blog": "0.0.0-4811",
26
+ "@docusaurus/plugin-content-docs": "0.0.0-4811",
27
+ "@docusaurus/plugin-content-pages": "0.0.0-4811",
28
+ "@docusaurus/theme-common": "0.0.0-4811",
29
+ "@docusaurus/theme-translations": "0.0.0-4811",
30
+ "@docusaurus/utils": "0.0.0-4811",
31
+ "@docusaurus/utils-common": "0.0.0-4811",
32
+ "@docusaurus/utils-validation": "0.0.0-4811",
33
33
  "@mdx-js/react": "^1.6.22",
34
34
  "clsx": "^1.1.1",
35
35
  "copy-text-to-clipboard": "^3.0.1",
@@ -42,11 +42,11 @@
42
42
  "rtlcss": "^3.5.0"
43
43
  },
44
44
  "devDependencies": {
45
- "@docusaurus/module-type-aliases": "0.0.0-4806",
46
- "@docusaurus/types": "0.0.0-4806",
45
+ "@docusaurus/module-type-aliases": "0.0.0-4811",
46
+ "@docusaurus/types": "0.0.0-4811",
47
47
  "@types/mdx-js__react": "^1.5.5",
48
48
  "@types/prismjs": "^1.26.0",
49
- "@types/rtlcss": "^3.1.2",
49
+ "@types/rtlcss": "^3.1.3",
50
50
  "cross-env": "^7.0.3",
51
51
  "fs-extra": "^10.0.1",
52
52
  "react-test-renderer": "^17.0.2",
@@ -59,5 +59,5 @@
59
59
  "engines": {
60
60
  "node": ">=14"
61
61
  },
62
- "gitHead": "1799759a71c558b3dc5d63640599046dd472e95e"
62
+ "gitHead": "f174c77967abd972ab9685ba682119b38c6ac55b"
63
63
  }
@@ -8,17 +8,21 @@
8
8
  import React from 'react';
9
9
  import clsx from 'clsx';
10
10
  import Link from '@docusaurus/Link';
11
+ import {translate} from '@docusaurus/Translate';
12
+ import {
13
+ NavbarSecondaryMenuFiller,
14
+ useWindowSize,
15
+ } from '@docusaurus/theme-common';
11
16
  import type {Props} from '@theme/BlogSidebar';
12
17
  import styles from './styles.module.css';
13
- import {translate} from '@docusaurus/Translate';
14
18
 
15
- export default function BlogSidebar({sidebar}: Props): JSX.Element | null {
16
- if (sidebar.items.length === 0) {
17
- return null;
18
- }
19
+ function BlogSidebarContent({
20
+ sidebar,
21
+ className,
22
+ }: Props & {className?: string}): JSX.Element {
19
23
  return (
20
24
  <nav
21
- className={clsx(styles.sidebar, 'thin-scrollbar')}
25
+ className={clsx(styles.sidebar, 'thin-scrollbar', className)}
22
26
  aria-label={translate({
23
27
  id: 'theme.blog.sidebar.navAriaLabel',
24
28
  message: 'Blog recent posts navigation',
@@ -43,3 +47,20 @@ export default function BlogSidebar({sidebar}: Props): JSX.Element | null {
43
47
  </nav>
44
48
  );
45
49
  }
50
+
51
+ export default function BlogSidebar(props: Props): JSX.Element | null {
52
+ const windowSize = useWindowSize();
53
+ if (props.sidebar.items.length === 0) {
54
+ return null;
55
+ }
56
+ // Mobile sidebar doesn't need to be server-rendered
57
+ if (windowSize === 'mobile') {
58
+ return (
59
+ <NavbarSecondaryMenuFiller
60
+ component={BlogSidebarContent}
61
+ props={{...props, className: 'margin-left--md'}}
62
+ />
63
+ );
64
+ }
65
+ return <BlogSidebarContent {...props} className={styles.sidebarDesktop} />;
66
+ }
@@ -40,7 +40,11 @@
40
40
  }
41
41
 
42
42
  @media (max-width: 996px) {
43
- .sidebar {
43
+ .sidebarDesktop {
44
44
  display: none;
45
45
  }
46
+
47
+ .sidebar {
48
+ top: 0;
49
+ }
46
50
  }