chore: upgrade website to docusaurus@2.0.0-beta.8

This commit is contained in:
Yangshun 2021-10-23 12:37:32 +08:00
parent 425b9b4e4a
commit ae337ed3c7
4 changed files with 1622 additions and 571 deletions

View File

@ -10,12 +10,12 @@
"deploy": "docusaurus deploy"
},
"dependencies": {
"@docusaurus/core": "^2.0.0-beta.6",
"@docusaurus/plugin-client-redirects": "^2.0.0-beta.6",
"@docusaurus/preset-classic": "^2.0.0-beta.6",
"@docusaurus/core": "^2.0.0-beta.8",
"@docusaurus/plugin-client-redirects": "^2.0.0-beta.8",
"@docusaurus/preset-classic": "^2.0.0-beta.8",
"classnames": "^2.2.6",
"react": "^16.13.1",
"react-dom": "^16.13.1"
"react": "^17.0.2",
"react-dom": "^17.0.2"
},
"browserslist": {
"production": [

View File

@ -10,9 +10,10 @@ import {
useThemeConfig,
useAnnouncementBar,
MobileSecondaryMenuFiller,
ThemeClassNames,
useScrollPosition,
} from '@docusaurus/theme-common';
import useWindowSize from '@theme/hooks/useWindowSize';
import useScrollPosition from '@theme/hooks/useScrollPosition';
import Logo from '@theme/Logo';
import IconArrow from '@theme/IconArrow';
import {translate} from '@docusaurus/Translate';
@ -21,14 +22,17 @@ import styles from './styles.module.css';
import SidebarAd from '../../components/SidebarAd';
function useShowAnnouncementBar() {
const {isClosed} = useAnnouncementBar();
const [showAnnouncementBar, setShowAnnouncementBar] = useState(!isClosed);
useScrollPosition(({scrollY}) => {
if (!isClosed) {
setShowAnnouncementBar(scrollY === 0);
}
});
return showAnnouncementBar;
const {isActive} = useAnnouncementBar();
const [showAnnouncementBar, setShowAnnouncementBar] = useState(isActive);
useScrollPosition(
({scrollY}) => {
if (isActive) {
setShowAnnouncementBar(scrollY === 0);
}
},
[isActive],
);
return isActive && showAnnouncementBar;
}
function HideableSidebarButton({onClick}) {
@ -61,7 +65,6 @@ function DocSidebarDesktop({path, sidebar, onCollapse, isHidden}) {
navbar: {hideOnScroll},
hideableSidebar,
} = useThemeConfig();
const {isClosed: isAnnouncementBarClosed} = useAnnouncementBar();
return (
<div
className={clsx(styles.sidebar, {
@ -71,11 +74,10 @@ function DocSidebarDesktop({path, sidebar, onCollapse, isHidden}) {
{hideOnScroll && <Logo tabIndex={-1} className={styles.sidebarLogo} />}
<nav
className={clsx('menu thin-scrollbar', styles.menu, {
[styles.menuWithAnnouncementBar]:
!isAnnouncementBarClosed && showAnnouncementBar,
[styles.menuWithAnnouncementBar]: showAnnouncementBar,
})}>
<ul className="menu__list">
<DocSidebarItems items={sidebar} activePath={path} />
<ul className={clsx(ThemeClassNames.docs.docSidebarMenu, 'menu__list')}>
<DocSidebarItems items={sidebar} activePath={path} level={1} />
</ul>
<div className="margin--md">
<SidebarAd />
@ -88,11 +90,12 @@ function DocSidebarDesktop({path, sidebar, onCollapse, isHidden}) {
const DocSidebarMobileSecondaryMenu = ({toggleSidebar, sidebar, path}) => {
return (
<ul className="menu__list">
<ul className={clsx(ThemeClassNames.docs.docSidebarMenu, 'menu__list')}>
<DocSidebarItems
items={sidebar}
activePath={path}
onItemClick={() => toggleSidebar()}
level={1}
/>
<div className="margin--md">
<SidebarAd />

View File

@ -11,7 +11,9 @@ import {
usePrevious,
Collapsible,
useCollapsible,
ThemeClassNames,
} from '@docusaurus/theme-common';
import Link from '@docusaurus/Link';
import isInternalUrl from '@docusaurus/isInternalUrl';
import IconExternalLink from '@theme/IconExternalLink';
import styles from './styles.module.css';
@ -74,8 +76,14 @@ function useAutoExpandActiveCategory({isActive, collapsed, setCollapsed}) {
}, [isActive, wasActive, collapsed]);
}
function DocSidebarItemCategory({item, onItemClick, activePath, ...props}) {
const {items, label, collapsible} = item;
function DocSidebarItemCategory({
item,
onItemClick,
activePath,
level,
...props
}) {
const {items, label, collapsible, className} = item;
const isActive = isActiveSidebarItem(item, activePath);
const {collapsed, setCollapsed, toggleCollapsed} = useCollapsible({
// active categories are always initialized as expanded
@ -95,9 +103,15 @@ function DocSidebarItemCategory({item, onItemClick, activePath, ...props}) {
});
return (
<li
className={clsx('menu__list-item', {
'menu__list-item--collapsed': collapsed,
})}>
className={clsx(
ThemeClassNames.docs.docSidebarItemCategory,
ThemeClassNames.docs.docSidebarItemCategoryLevel(level),
'menu__list-item',
{
'menu__list-item--collapsed': collapsed,
},
className,
)}>
{/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}
<a
className={clsx('menu__link', {
@ -124,22 +138,34 @@ function DocSidebarItemCategory({item, onItemClick, activePath, ...props}) {
tabIndex={collapsed ? -1 : 0}
onItemClick={onItemClick}
activePath={activePath}
level={level + 1}
/>
</Collapsible>
</li>
);
}
function DocSidebarItemLink({item, onItemClick, activePath, ...props}) {
const {href, label} = item;
function DocSidebarItemLink({item, onItemClick, activePath, level, ...props}) {
const {href, label, className} = item;
const isActive = isActiveSidebarItem(item, activePath);
return (
<li className="menu__list-item" key={label}>
<li
className={clsx(
ThemeClassNames.docs.docSidebarItemLink,
ThemeClassNames.docs.docSidebarItemLinkLevel(level),
'menu__list-item',
className,
)}
key={label}>
<a
className={clsx('menu__link', {
'menu__link--active': isActive,
})}
aria-current={isActive ? 'page' : undefined}
href={href}
{...(isInternalUrl(href) && {
onClick: onItemClick,
})}
{...props}>
{isInternalUrl(href) ? (
label

File diff suppressed because it is too large Load Diff