Style fixes
All checks were successful
Deploy to production / build (push) Successful in 21s

This commit is contained in:
2026-10-12 11:17:21 -05:00
parent 68fa451d19
commit bf761df56d

View File

@@ -2,7 +2,7 @@ import { Box, Group, LoadingOverlay, SimpleGrid, Stack, Text } from '@mantine/co
import { useDebouncedValue, useDisclosure } from '@mantine/hooks'; import { useDebouncedValue, useDisclosure } from '@mantine/hooks';
import { NoItemsFound, SettingsHeader } from 'components'; import { NoItemsFound, SettingsHeader } from 'components';
import { useCommonHooks, useMutationAPI, useQueryAPI } from 'hooks'; import { useCommonHooks, useMutationAPI, useQueryAPI } from 'hooks';
import { useEffect, useState, useMemo, useCallback } from 'react'; import { useCallback, useEffect, useMemo, useState } from 'react';
import { FiChevronRight } from 'react-icons/fi'; import { FiChevronRight } from 'react-icons/fi';
import { textClasses } from 'styles'; import { textClasses } from 'styles';
import type { Theme, ThemePlaylist } from 'types'; import type { Theme, ThemePlaylist } from 'types';
@@ -23,11 +23,13 @@ export function ThemePlaylists() {
const [debouncedSearch] = useDebouncedValue(searchValue, 500); const [debouncedSearch] = useDebouncedValue(searchValue, 500);
const themePlaylists: ThemePlaylist[] = useMemo(() => { const themePlaylists: ThemePlaylist[] = useMemo(() => {
return themePlaylistData?.filter( return (
themePlaylistData?.filter(
(a: ThemePlaylist) => (a: ThemePlaylist) =>
a.name.toLowerCase().includes((debouncedSearch as string).toLowerCase()) || a.name.toLowerCase().includes((debouncedSearch as string).toLowerCase()) ||
a.name.includes('Time of Day'), a.name.includes('Time of Day'),
) || []; ) || []
);
}, [themePlaylistData, debouncedSearch]); }, [themePlaylistData, debouncedSearch]);
const defaultPlaylist: ThemePlaylist = { const defaultPlaylist: ThemePlaylist = {
id: undefined, id: undefined,
@@ -42,10 +44,13 @@ export function ThemePlaylists() {
const { currentThemePlaylist, theme, isMobile } = useCommonHooks(); const { currentThemePlaylist, theme, isMobile } = useCommonHooks();
const [isLoading, setIsLoading] = useState(false); const [isLoading, setIsLoading] = useState(false);
const handleOpen = useCallback((playlist: ThemePlaylist) => { const handleOpen = useCallback(
(playlist: ThemePlaylist) => {
setSelectedPlaylist(playlist); setSelectedPlaylist(playlist);
open(); open();
}, [open]); },
[open],
);
const handleClose = useCallback(() => { const handleClose = useCallback(() => {
setSelectedPlaylist(defaultPlaylist); setSelectedPlaylist(defaultPlaylist);
@@ -67,17 +72,26 @@ export function ThemePlaylists() {
} }
}, [debouncedSearch, searchValue]); }, [debouncedSearch, searchValue]);
const allThemesIds = useMemo(() => const allThemesIds = useMemo(
allThemeData?.map((a: Theme) => a.id) ?? [], () => allThemeData?.map((a: Theme) => a.id) ?? [],
[allThemeData]); [allThemeData],
);
const backgroundsThemes = useMemo(() => const backgroundsThemes = useMemo(
allThemeData?.filter((a: any) => !a.backgroundImage.toLowerCase().includes('none')) ?? [], () =>
[allThemeData]); allThemeData?.filter(
(a: any) => !a.backgroundImage.toLowerCase().includes('none'),
) ?? [],
[allThemeData],
);
const noBackgroundsThemes = useMemo(() => const noBackgroundsThemes = useMemo(
allThemeData?.filter((a: any) => a.backgroundImage.toLowerCase().includes('none')) ?? [], () =>
[allThemeData]); allThemeData?.filter((a: any) =>
a.backgroundImage.toLowerCase().includes('none'),
) ?? [],
[allThemeData],
);
const timeOfDayPlaylist = useMemo(() => { const timeOfDayPlaylist = useMemo(() => {
const found = themePlaylists?.find((a: ThemePlaylist) => a.name === 'Time of Day'); const found = themePlaylists?.find((a: ThemePlaylist) => a.name === 'Time of Day');
@@ -89,26 +103,35 @@ export function ThemePlaylists() {
}; };
}, [themePlaylists]); }, [themePlaylists]);
const allStack = useMemo(() => ({ const allStack = useMemo(
() => ({
id: undefined, id: undefined,
name: 'All', name: 'All',
default: 1, default: 1,
themeList: `[${allThemesIds.join(',')}]`, themeList: `[${allThemesIds.join(',')}]`,
}), [allThemesIds]); }),
[allThemesIds],
);
const backgroundsStack = useMemo(() => ({ const backgroundsStack = useMemo(
() => ({
id: undefined, id: undefined,
name: 'Backgrounds', name: 'Backgrounds',
default: 1, default: 1,
themeList: `[${backgroundsThemes.map((a: Theme) => a.id).join(',')}]`, themeList: `[${backgroundsThemes.map((a: Theme) => a.id).join(',')}]`,
}), [backgroundsThemes]); }),
[backgroundsThemes],
);
const noBackgroundsStack = useMemo(() => ({ const noBackgroundsStack = useMemo(
() => ({
id: undefined, id: undefined,
name: 'No Backgrounds', name: 'No Backgrounds',
default: 1, default: 1,
themeList: `[${noBackgroundsThemes.map((a: Theme) => a.id).join(',')}]`, themeList: `[${noBackgroundsThemes.map((a: Theme) => a.id).join(',')}]`,
}), [noBackgroundsThemes]); }),
[noBackgroundsThemes],
);
return ( return (
<Stack> <Stack>
@@ -153,7 +176,7 @@ export function ThemePlaylists() {
/> />
{allThemeData && ( {allThemeData && (
<> <>
<Group justify='center' align='center' pos={'relative'}> <Stack w={'100%'} justify='center' align='center' pos={'relative'}>
<Text <Text
p={0} p={0}
className={textClasses.settingsSubTitle} className={textClasses.settingsSubTitle}
@@ -161,8 +184,7 @@ export function ThemePlaylists() {
> >
Defaults Defaults
</Text> </Text>
</Group> <Group>
<Group justify='center' align='center' pos={'relative'}>
<Group pos={'relative'}> <Group pos={'relative'}>
{'All' === currentThemePlaylist && ( {'All' === currentThemePlaylist && (
<FiChevronRight <FiChevronRight
@@ -186,7 +208,6 @@ export function ThemePlaylists() {
/> />
</Box> </Box>
</Group> </Group>
</Group>
<Group pos={'relative'}> <Group pos={'relative'}>
{'Backgrounds' === currentThemePlaylist && ( {'Backgrounds' === currentThemePlaylist && (
<FiChevronRight <FiChevronRight
@@ -265,6 +286,9 @@ export function ThemePlaylists() {
/> />
</Box> </Box>
</Group> </Group>
</Group>
</Stack>
<Stack w={'100%'} justify='center' align='center' pos={'relative'}>
<Group justify='center' align='center' pos={'relative'}> <Group justify='center' align='center' pos={'relative'}>
<Text <Text
p={0} p={0}
@@ -324,6 +348,7 @@ export function ThemePlaylists() {
</Group> </Group>
)} )}
</Group> </Group>
</Stack>
</> </>
)} )}
</Stack> </Stack>