ThemeHufflepuff.tsx 1020 B

123456789101112131415161718192021222324252627282930313233343536
  1. import Image from 'next/image';
  2. import { Themes } from '~/stores/use-next-themes';
  3. import { ThemeInjector } from './utils/ThemeInjector';
  4. // import styles from './ThemeHufflepuff.module.scss';
  5. export const getBackgroundImageSrc = (colorScheme: Themes): string => {
  6. switch (colorScheme) {
  7. case Themes.light:
  8. return '/images/themes/hufflepuff/badger-light3.png';
  9. case Themes.dark:
  10. return '/images/themes/hufflepuff/badger-dark.jpg';
  11. default:
  12. return '/images/themes/hufflepuff/badger-light3.png';
  13. }
  14. };
  15. type Props = {
  16. children: JSX.Element,
  17. colorScheme?: Themes,
  18. }
  19. const ThemeHufflepuff = ({ children, colorScheme }: Props): JSX.Element => {
  20. const bgImageNode = (
  21. <>
  22. {colorScheme != null && (
  23. <Image alt='background image' src={getBackgroundImageSrc(colorScheme)} layout='fill' quality="100" />
  24. )}
  25. </>
  26. );
  27. return <ThemeInjector className="theme-hufflepuff" bgImageNode={bgImageNode}>{children}</ThemeInjector>;
  28. };
  29. export default ThemeHufflepuff;