Procházet zdrojové kódy

refactor ThemeHalloween

yohei0125 před 3 roky
rodič
revize
4876070c7a

+ 19 - 2
packages/app/src/components/Theme/ThemeHalloween.tsx

@@ -1,3 +1,5 @@
+import Image from 'next/image';
+
 import { Themes } from '~/stores/use-next-themes';
 import { Themes } from '~/stores/use-next-themes';
 
 
 import { ThemeInjector } from './utils/ThemeInjector';
 import { ThemeInjector } from './utils/ThemeInjector';
@@ -11,7 +13,22 @@ export const getBackgroundImageSrc = (colorScheme: Themes): string => {
   }
   }
 };
 };
 
 
-const ThemeHalloween = ({ children }: { children: JSX.Element }): JSX.Element => {
-  return <ThemeInjector className={styles.theme}>{children}</ThemeInjector>;
+type Props = {
+  children: JSX.Element,
+  colorScheme?: Themes,
+}
+
+const ThemeHalloween = ({ children, colorScheme }: Props): JSX.Element => {
+  const element = (
+    <>
+      {colorScheme && (
+        <div className={'grw-bg-image-wrapper'}>
+          <Image className='grw-bg-image' alt='background image' src={getBackgroundImageSrc(colorScheme)} layout='fill' quality="100" />
+        </div>
+      )}
+      {children}
+    </>
+  );
+  return <ThemeInjector className={`${styles.theme}`}>{element}</ThemeInjector>;
 };
 };
 export default ThemeHalloween;
 export default ThemeHalloween;

+ 0 - 2
packages/app/src/components/Theme/utils/ThemeImageProvider.tsx

@@ -12,8 +12,6 @@ export const getBackgroundImageSrc = (theme: GrowiThemes | undefined, colorSchem
     return undefined;
     return undefined;
   }
   }
   switch (theme) {
   switch (theme) {
-    case GrowiThemes.HALLOWEEN:
-      return getHalloweenBackgroundImageSrc(colorScheme);
     case GrowiThemes.ISLAND:
     case GrowiThemes.ISLAND:
       return getIslandBackgroundImageSrc(colorScheme);
       return getIslandBackgroundImageSrc(colorScheme);
     case GrowiThemes.HUFFLEPUFF:
     case GrowiThemes.HUFFLEPUFF:

+ 1 - 1
packages/app/src/components/Theme/utils/ThemeProvider.tsx

@@ -43,7 +43,7 @@ export const ThemeProvider = ({ theme, children, colorScheme }: Props): JSX.Elem
     case GrowiThemes.FUTURE:
     case GrowiThemes.FUTURE:
       return <ThemeFuture>{children}</ThemeFuture>;
       return <ThemeFuture>{children}</ThemeFuture>;
     case GrowiThemes.HALLOWEEN:
     case GrowiThemes.HALLOWEEN:
-      return <ThemeHalloween>{children}</ThemeHalloween>;
+      return <ThemeHalloween colorScheme={colorScheme}>{children}</ThemeHalloween>;
     case GrowiThemes.HUFFLEPUFF:
     case GrowiThemes.HUFFLEPUFF:
       return <ThemeHufflepuff>{children}</ThemeHufflepuff>;
       return <ThemeHufflepuff>{children}</ThemeHufflepuff>;
     case GrowiThemes.ISLAND:
     case GrowiThemes.ISLAND: