ThemeImageProvider.tsx 1.6 KB

12345678910111213141516171819202122232425262728293031323334
  1. import { GrowiThemes } from '~/interfaces/theme';
  2. import { Themes } from '~/stores/use-next-themes';
  3. import { getBackgroundImageSrc as getAntarcticBackgroundImageSrc } from '../ThemeAntarctic';
  4. import { getBackgroundImageSrc as getChristmasBackgroundImageSrc } from '../ThemeChristmas';
  5. import { getBackgroundImageSrc as getHalloweenBackgroundImageSrc } from '../ThemeHalloween';
  6. import { getBackgroundImageSrc as getHuffulePuffBackgroundImageSrc } from '../ThemeHufflepuff';
  7. import { getBackgroundImageSrc as getIslandBackgroundImageSrc } from '../ThemeIsland';
  8. import { getBackgroundImageSrc as getSpringBackgroundImageSrc } from '../ThemeSpring';
  9. import { getBackgroundImageSrc as getWoodBackgroundImageSrc } from '../ThemeWood';
  10. export const getBackgroundImageSrc = (theme: GrowiThemes | undefined, colorScheme: Themes | undefined): string | undefined => {
  11. if (theme == null || colorScheme == null) {
  12. return undefined;
  13. }
  14. switch (theme) {
  15. case GrowiThemes.ANTARCTIC:
  16. return getAntarcticBackgroundImageSrc(colorScheme);
  17. case GrowiThemes.CHRISTMAS:
  18. return getChristmasBackgroundImageSrc(colorScheme);
  19. case GrowiThemes.HALLOWEEN:
  20. return getHalloweenBackgroundImageSrc(colorScheme);
  21. case GrowiThemes.ISLAND:
  22. return getIslandBackgroundImageSrc(colorScheme);
  23. case GrowiThemes.HUFFLEPUFF:
  24. return getHuffulePuffBackgroundImageSrc(colorScheme);
  25. case GrowiThemes.SPRING:
  26. return getSpringBackgroundImageSrc(colorScheme);
  27. case GrowiThemes.WOOD:
  28. return getWoodBackgroundImageSrc(colorScheme);
  29. default:
  30. return undefined;
  31. }
  32. };