From 174cd8dc6ff40356885bfeeecaaaccdd362e6574 Mon Sep 17 00:00:00 2001 From: Alexey Pyltsyn Date: Fri, 5 Jun 2020 10:09:13 +0300 Subject: [PATCH] refactor(v2): combine nested theme providers into one (#2870) --- .../src/theme/AnnouncementBar/index.js | 4 +- .../theme/AnnouncementBarProvider/index.js | 24 ------ .../src/theme/DocSidebar/index.js | 4 +- .../src/theme/Layout/index.js | 74 +++++++++---------- .../src/theme/TabGroupChoiceContext.js | 15 ---- .../src/theme/TabGroupChoiceProvider/index.js | 24 ------ .../src/theme/Tabs/index.js | 4 +- ...arContext.js => UserPreferencesContext.js} | 9 ++- .../theme/UserPreferencesProvider/index.js | 31 ++++++++ .../theme/hooks/useTabGroupChoiceContext.js | 16 ---- ...ontext.js => useUserPreferencesContext.js} | 9 ++- 11 files changed, 83 insertions(+), 131 deletions(-) delete mode 100644 packages/docusaurus-theme-classic/src/theme/AnnouncementBarProvider/index.js delete mode 100644 packages/docusaurus-theme-classic/src/theme/TabGroupChoiceContext.js delete mode 100644 packages/docusaurus-theme-classic/src/theme/TabGroupChoiceProvider/index.js rename packages/docusaurus-theme-classic/src/theme/{AnnouncementBarContext.js => UserPreferencesContext.js} (61%) create mode 100644 packages/docusaurus-theme-classic/src/theme/UserPreferencesProvider/index.js delete mode 100644 packages/docusaurus-theme-classic/src/theme/hooks/useTabGroupChoiceContext.js rename packages/docusaurus-theme-classic/src/theme/hooks/{useAnnouncementBarContext.js => useUserPreferencesContext.js} (54%) diff --git a/packages/docusaurus-theme-classic/src/theme/AnnouncementBar/index.js b/packages/docusaurus-theme-classic/src/theme/AnnouncementBar/index.js index 475aaf51f1..b9a1537e80 100644 --- a/packages/docusaurus-theme-classic/src/theme/AnnouncementBar/index.js +++ b/packages/docusaurus-theme-classic/src/theme/AnnouncementBar/index.js @@ -7,7 +7,7 @@ import React from 'react'; import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; -import useAnnouncementBarContext from '@theme/hooks/useAnnouncementBarContext'; +import useUserPreferencesContext from '@theme/hooks/useUserPreferencesContext'; import styles from './styles.module.css'; @@ -19,7 +19,7 @@ function AnnouncementBar() { const { isAnnouncementBarClosed, closeAnnouncementBar, - } = useAnnouncementBarContext(); + } = useUserPreferencesContext(); if (!content || isAnnouncementBarClosed) { return null; diff --git a/packages/docusaurus-theme-classic/src/theme/AnnouncementBarProvider/index.js b/packages/docusaurus-theme-classic/src/theme/AnnouncementBarProvider/index.js deleted file mode 100644 index e35dfdd1db..0000000000 --- a/packages/docusaurus-theme-classic/src/theme/AnnouncementBarProvider/index.js +++ /dev/null @@ -1,24 +0,0 @@ -/** - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -import React from 'react'; - -import AnnouncementBarContext from '@theme/AnnouncementBarContext'; -import useAnnouncementBar from '@theme/hooks/useAnnouncementBar'; - -function AnnouncementBarProvider(props) { - const {isAnnouncementBarClosed, closeAnnouncementBar} = useAnnouncementBar(); - - return ( - - {props.children} - - ); -} - -export default AnnouncementBarProvider; diff --git a/packages/docusaurus-theme-classic/src/theme/DocSidebar/index.js b/packages/docusaurus-theme-classic/src/theme/DocSidebar/index.js index 1a5ff3b7a7..387c33a4fb 100644 --- a/packages/docusaurus-theme-classic/src/theme/DocSidebar/index.js +++ b/packages/docusaurus-theme-classic/src/theme/DocSidebar/index.js @@ -8,7 +8,7 @@ import React, {useState, useCallback, useEffect, useRef} from 'react'; import classnames from 'classnames'; import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; -import useAnnouncementBarContext from '@theme/hooks/useAnnouncementBarContext'; +import useUserPreferencesContext from '@theme/hooks/useUserPreferencesContext'; import useLockBodyScroll from '@theme/hooks/useLockBodyScroll'; import useLogo from '@theme/hooks/useLogo'; import useScrollPosition from '@theme/hooks/useScrollPosition'; @@ -165,7 +165,7 @@ function DocSidebar(props) { isClient, } = useDocusaurusContext(); const {logoLink, logoLinkProps, logoImageUrl, logoAlt} = useLogo(); - const {isAnnouncementBarClosed} = useAnnouncementBarContext(); + const {isAnnouncementBarClosed} = useUserPreferencesContext(); const {scrollY} = useScrollPosition(); const { diff --git a/packages/docusaurus-theme-classic/src/theme/Layout/index.js b/packages/docusaurus-theme-classic/src/theme/Layout/index.js index f81dfd19ba..090e1a2795 100644 --- a/packages/docusaurus-theme-classic/src/theme/Layout/index.js +++ b/packages/docusaurus-theme-classic/src/theme/Layout/index.js @@ -11,8 +11,7 @@ import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; import useBaseUrl from '@docusaurus/useBaseUrl'; import ThemeProvider from '@theme/ThemeProvider'; -import TabGroupChoiceProvider from '@theme/TabGroupChoiceProvider'; -import AnnouncementBarProvider from '@theme/AnnouncementBarProvider'; +import UserPreferencesProvider from '@theme/UserPreferencesProvider'; import AnnouncementBar from '@theme/AnnouncementBar'; import Navbar from '@theme/Navbar'; import Footer from '@theme/Footer'; @@ -44,45 +43,40 @@ function Layout(props) { return ( - - - - {/* TODO: Do not assume that it is in english language */} - + + + {/* TODO: Do not assume that it is in english language */} + - {metaTitle && {metaTitle}} - {metaTitle && } - {favicon && } - {description && } - {description && ( - - )} - {version && } - {keywords && keywords.length && ( - - )} - {metaImage && } - {metaImage && ( - - )} - {metaImage && ( - - )} - {permalink && ( - - )} - {permalink && } - - - - -
{children}
- {!noFooter &&