ThemeImageProvider.tsx 1.2 KB

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