From 38c5148988e8778d8de62e6b6e005d73dc91147e Mon Sep 17 00:00:00 2001 From: Sean Edmunds Date: Wed, 12 Mar 2025 13:40:39 -0500 Subject: [PATCH] Updates to styles --- src/pages/settings/components/ThemeCard.tsx | 1 + src/pages/settings/components/ThemeModal.tsx | 471 ++++++++++--------- src/styles/ActionIcon.module.css | 2 +- src/styles/Select.module.css | 2 +- src/styles/Stack.module.css | 5 +- 5 files changed, 253 insertions(+), 228 deletions(-) diff --git a/src/pages/settings/components/ThemeCard.tsx b/src/pages/settings/components/ThemeCard.tsx index 353c957..d23754e 100644 --- a/src/pages/settings/components/ThemeCard.tsx +++ b/src/pages/settings/components/ThemeCard.tsx @@ -53,6 +53,7 @@ function ThemeCard({ backgroundSize: 'cover', backgroundColor: cardTheme.backgroundColor, border: `solid ${cardTheme.borderColor}`, + filter: cardTheme.randomEnabled === 0 ? 'saturate(0)' : undefined, }} onClick={() => { setCurrentTheme(cardTheme.name); diff --git a/src/pages/settings/components/ThemeModal.tsx b/src/pages/settings/components/ThemeModal.tsx index ecafdcc..3c2f856 100644 --- a/src/pages/settings/components/ThemeModal.tsx +++ b/src/pages/settings/components/ThemeModal.tsx @@ -1,20 +1,20 @@ import { Button, - Card, ColorPicker, ColorSwatch, Divider, Group, - Image, Modal, - Select, + ScrollArea, Stack, Text, TextInput, + UnstyledButton, } from '@mantine/core'; import { useCommonHooks } from 'hooks'; +import { useEffect, useRef, useState } from 'react'; import { FiSave, FiX } from 'react-icons/fi'; -import { modalClasses, selectClasses, textClasses, textInputClasses } from 'styles'; +import { modalClasses, textClasses, textInputClasses } from 'styles'; import ThemeModalContent from './ThemeModalContent'; function ThemeModal({ @@ -33,6 +33,37 @@ function ThemeModal({ handleSaveTheme, }: any) { const { theme } = useCommonHooks(); + const viewportRef = useRef(null); + const [query, setQuery] = useState(''); + const [hovered, setHovered] = useState(-1); + const filtered = backgroundList.filter((item: any) => + item.toLowerCase().includes(query.toLowerCase()), + ); + const items = filtered.map((item: any, index: any) => ( + + setSelectedTheme({ + ...selectedTheme, + backgroundImage: item, + }) + } + > + {item} + + )); + + useEffect(() => { + if (selectedTheme) { + setQuery(selectedTheme?.backgroundImage || ''); + } + }, [selectedTheme]); + return ( - - Edit Theme + + + Name: + + setSelectedTheme({ ...selectedTheme, name: e.target.value }) + } + styles={{ + label: { + color: theme.primaryColor, + }, + input: { + color: theme.primaryColor, + border: 'none', + }, + }} + /> + - setSelectedTheme({ ...selectedTheme, name: e.target.value })} - styles={{ - label: { - color: theme.primaryColor, - }, - input: { - color: theme.primaryColor, - border: 'none', - }, - }} - /> - - - - Primary Color - - { - setColorId('primaryColor'); - openPicker(); - setColorValue(selectedTheme.primaryColor); - }} - radius={'sm'} - w={'100px'} - color={selectedTheme.primaryColor} - style={{ - cursor: 'pointer', - border: `2px dashed ${theme.primaryColor}`, - }} - /> - - - - Accent Color - - { - setColorId('accentColor'); - openPicker(); - setColorValue(selectedTheme.accentColor); - }} - radius={'sm'} - w={'100px'} - color={selectedTheme.accentColor} - style={{ - cursor: 'pointer', - border: `2px dashed ${theme.primaryColor}`, - }} - /> - - - - Background Color - - { - setColorId('background'); - openPicker(); - setColorValue(selectedTheme.backgroundColor); - }} - radius={'sm'} - w={'100px'} - color={selectedTheme.backgroundColor} - style={{ - cursor: 'pointer', - border: `2px dashed ${theme.primaryColor}`, - }} - /> - - - - Border Color - - { - setColorId('borderColor'); - openPicker(); - setColorValue(selectedTheme.borderColor); - }} - radius={'sm'} - w={'100px'} - color={selectedTheme.borderColor} - style={{ - cursor: 'pointer', - border: `2px dashed ${theme.primaryColor}`, - }} - /> - - - - Search Background Color - - { - setColorId('searchBackground'); - openPicker(); - setColorValue(selectedTheme.searchColor); - }} - radius={'sm'} - w={'100px'} - color={selectedTheme.searchColor} - style={{ - cursor: 'pointer', - border: `2px dashed ${theme.primaryColor}`, - }} - /> - - -