Yuki Takei 3 лет назад
Родитель
Сommit
0e79f37a38

+ 1 - 1
packages/app/src/components/Navbar/GlobalSearch.scss → packages/app/src/components/Navbar/GlobalSearch.module.scss

@@ -1,7 +1,7 @@
 @use '~/styles/bootstrap/init' as bs;
 @use '~/styles/bootstrap/init' as bs;
 
 
 // input styles
 // input styles
-.grw-global-search {
+.grw-global-search :global {
   .dropdown-toggle {
   .dropdown-toggle {
     min-width: 95px;
     min-width: 95px;
     padding-left: 1.5rem;
     padding-left: 1.5rem;

+ 2 - 2
packages/app/src/components/Navbar/GlobalSearch.tsx

@@ -15,7 +15,7 @@ import { useGlobalSearchFormRef } from '~/stores/ui';
 import SearchForm from '../SearchForm';
 import SearchForm from '../SearchForm';
 
 
 
 
-import './GlobalSearch.scss';
+import styles from './GlobalSearch.module.scss';
 
 
 
 
 type Props = {
 type Props = {
@@ -76,7 +76,7 @@ export const GlobalSearch = (props: Props): JSX.Element => {
   }
   }
 
 
   return (
   return (
-    <div className={`form-group mb-0 d-print-none ${isSearchServiceReachable ? '' : 'has-error'}`}>
+    <div className={`grw-global-search ${styles['grw-global-search']} form-group mb-0 d-print-none ${isSearchServiceReachable ? '' : 'has-error'}`}>
       <div className="input-group flex-nowrap">
       <div className="input-group flex-nowrap">
         <div className={`input-group-prepend ${dropup ? 'dropup' : ''}`}>
         <div className={`input-group-prepend ${dropup ? 'dropup' : ''}`}>
           <button className="btn btn-secondary dropdown-toggle py-0" type="button" data-toggle="dropdown" aria-haspopup="true">
           <button className="btn btn-secondary dropdown-toggle py-0" type="button" data-toggle="dropdown" aria-haspopup="true">

+ 41 - 35
packages/app/src/components/Navbar/GrowiNavbar.scss → packages/app/src/components/Navbar/GrowiNavbar.module.scss

@@ -2,19 +2,23 @@
 @use '~/styles/bootstrap/init' as bs;
 @use '~/styles/bootstrap/init' as bs;
 @use '~/styles/mixins';
 @use '~/styles/mixins';
 
 
-.grw-logo {
-  svg {
-    width: var.$grw-logo-width;
-    height: var.$grw-navbar-height;
-    padding: (var.$grw-logo-width - var.$grw-logomark-width) / 2;
+.grw-navbar :global {
+
+  .grw-logo {
+    svg {
+      width: var.$grw-logo-width;
+      height: var.$grw-navbar-height;
+      padding: (var.$grw-logo-width - var.$grw-logomark-width) / 2;
+    }
+  }
+
+  .confidential {
+    font-weight: bold;
   }
   }
-}
 
 
-.confidential {
-  font-weight: bold;
 }
 }
 
 
-.grw-navbar {
+.grw-navbar :global {
   top: #{-1 * var.$grw-navbar-height} !important;
   top: #{-1 * var.$grw-navbar-height} !important;
 
 
   z-index: var.$grw-navbar-z-index !important;
   z-index: var.$grw-navbar-z-index !important;
@@ -89,36 +93,38 @@
 }
 }
 
 
 // layout for GlobalSearch
 // layout for GlobalSearch
-.grw-global-search-top {
-  // centering on navbar
-  top: var.$grw-navbar-height / 2;
-  left: 50vw;
-  z-index: bs.$zindex-fixed + 1;
-  transform: translate(-50%, -50%);
-
-  .rbt-input.form-control {
-    width: 200px;
-    transition: 0.3s ease-out;
-
-    // focus
-    &.focus {
-      width: 300px;
-    }
+.grw-navbar :global {
+  .grw-global-search-container {
+    // centering on navbar
+    top: var.$grw-navbar-height / 2;
+    left: 50vw;
+    z-index: bs.$zindex-fixed + 1;
+    transform: translate(-50%, -50%);
+
+    .rbt-input.form-control {
+      width: 200px;
+      transition: 0.3s ease-out;
 
 
-    @include bs.media-breakpoint-up(md) {
-      width: 300px;
-    }
-    @include bs.media-breakpoint-up(lg) {
       // focus
       // focus
       &.focus {
       &.focus {
-        width: 400px;
+        width: 300px;
       }
       }
-    }
-    @include bs.media-breakpoint-up(xl) {
-      width: 350px;
-      // focus
-      &.focus {
-        width: 450px;
+
+      @include bs.media-breakpoint-up(md) {
+        width: 300px;
+      }
+      @include bs.media-breakpoint-up(lg) {
+        // focus
+        &.focus {
+          width: 400px;
+        }
+      }
+      @include bs.media-breakpoint-up(xl) {
+        width: 350px;
+        // focus
+        &.focus {
+          width: 450px;
+        }
       }
       }
     }
     }
   }
   }

+ 3 - 3
packages/app/src/components/Navbar/GrowiNavbar.tsx

@@ -19,7 +19,7 @@ import GrowiLogo from '../Icons/GrowiLogo';
 
 
 import PersonalDropdown from './PersonalDropdown';
 import PersonalDropdown from './PersonalDropdown';
 
 
-import './GrowiNavbar.scss';
+import styles from './GrowiNavbar.module.scss';
 
 
 
 
 const ShowSkeltonInSSR = memo(({ children }: HasChildren): JSX.Element => {
 const ShowSkeltonInSSR = memo(({ children }: HasChildren): JSX.Element => {
@@ -138,7 +138,7 @@ export const GrowiNavbar = (): JSX.Element => {
   const { data: isSearchPage } = useIsSearchPage();
   const { data: isSearchPage } = useIsSearchPage();
 
 
   return (
   return (
-    <nav id="grw-navbar" className="navbar grw-navbar navbar-expand navbar-dark sticky-top mb-0 px-0">
+    <nav id="grw-navbar" className={`navbar grw-navbar ${styles['grw-navbar']} navbar-expand navbar-dark sticky-top mb-0 px-0`}>
       {/* Brand Logo  */}
       {/* Brand Logo  */}
       <div className="navbar-brand mr-0">
       <div className="navbar-brand mr-0">
         <a className="grw-logo d-block" href="/">
         <a className="grw-logo d-block" href="/">
@@ -158,7 +158,7 @@ export const GrowiNavbar = (): JSX.Element => {
       </ul>
       </ul>
 
 
       { isSearchServiceConfigured && !isDeviceSmallerThanMd && !isSearchPage && (
       { isSearchServiceConfigured && !isDeviceSmallerThanMd && !isSearchPage && (
-        <div className="grw-global-search grw-global-search-top position-absolute">
+        <div className="grw-global-search-container position-absolute">
           <GlobalSearch />
           <GlobalSearch />
         </div>
         </div>
       ) }
       ) }

+ 1 - 1
packages/app/src/components/SearchTypeahead.scss → packages/app/src/components/SearchTypeahead.module.scss

@@ -1,6 +1,6 @@
 @use '~/styles/bootstrap/init' as bs;
 @use '~/styles/bootstrap/init' as bs;
 
 
-.search-typeahead {
+.search-typeahead :global {
   position: relative;
   position: relative;
   width: 100%;
   width: 100%;
   // corner radius
   // corner radius

+ 2 - 2
packages/app/src/components/SearchTypeahead.tsx

@@ -13,7 +13,7 @@ import { IPageSearchMeta } from '~/interfaces/search';
 import { useSWRxSearch } from '~/stores/search';
 import { useSWRxSearch } from '~/stores/search';
 
 
 
 
-import './SearchTypeahead.scss';
+import styles from './SearchTypeahead.module.scss';
 
 
 
 
 type ResetFormButtonProps = {
 type ResetFormButtonProps = {
@@ -212,7 +212,7 @@ const SearchTypeahead: ForwardRefRenderFunction<IFocusable, Props> = (props: Pro
   const isOpenAlways = helpElement != null;
   const isOpenAlways = helpElement != null;
 
 
   return (
   return (
-    <div className="search-typeahead">
+    <div className={`search-typeahead ${styles['search-typeahead']}`}>
       <AsyncTypeahead
       <AsyncTypeahead
         {...props}
         {...props}
         id="search-typeahead-asynctypeahead"
         id="search-typeahead-asynctypeahead"