Added background Select

This commit is contained in:
Sean Edmunds
2024-12-30 13:37:38 -06:00
parent 9c22106216
commit db54171a5a
2 changed files with 19 additions and 4 deletions

View File

@@ -10,6 +10,7 @@ import { ModalsProvider } from '@mantine/modals';
import { useQueryAPI } from 'hooks'; import { useQueryAPI } from 'hooks';
import { useEffect } from 'react'; import { useEffect } from 'react';
import { import {
Navigate,
Route, Route,
RouterProvider, RouterProvider,
createBrowserRouter, createBrowserRouter,
@@ -56,6 +57,7 @@ function App() {
const router = createBrowserRouter( const router = createBrowserRouter(
createRoutesFromElements( createRoutesFromElements(
<Route> <Route>
<Route path='/' element={<Navigate to={`/${import.meta.env.VITE_BASE_URL}`} />} />
<Route <Route
path={`/${import.meta.env.VITE_BASE_URL}`} path={`/${import.meta.env.VITE_BASE_URL}`}
element={<Homepage theme={theme} />} element={<Homepage theme={theme} />}

View File

@@ -7,6 +7,7 @@ import {
Divider, Divider,
Group, Group,
Modal, Modal,
Select,
Stack, Stack,
Text, Text,
TextInput, TextInput,
@@ -32,16 +33,27 @@ function ThemesSettings({ theme }: any) {
const { data, isFetched } = useQueryAPI({ const { data, isFetched } = useQueryAPI({
endpoint: 'api/themes', endpoint: 'api/themes',
}); });
const { data: backgrounds, isFetched: isBackgroundFetched } = useQueryAPI({
endpoint: 'api/backgrounds',
})
const [themesList, setThemesList] = useState([]); const [themesList, setThemesList] = useState([]);
const [backgroundList, setBackgroundList] = useState<any>(["None"]);
const [selectedTheme, setSelectedTheme] = useState<any>({}); const [selectedTheme, setSelectedTheme] = useState<any>({});
const { mutateAsync: createTheme } = useMutationAPI(); const { mutateAsync: createTheme } = useMutationAPI();
const { mutateAsync: deleteTheme } = useMutationAPI(); const { mutateAsync: deleteTheme } = useMutationAPI();
useEffect(() => { useEffect(() => {
if (isFetched) { if (isFetched) {
setThemesList(data); setThemesList(data);
} }
}, [data, isFetched]); }, [data, isFetched]);
useEffect(() => {
if (backgrounds && isBackgroundFetched) {
setBackgroundList(["None", ...backgrounds]);
}
}, [backgrounds, isBackgroundFetched]);
const handleOpen = (theme: any) => { const handleOpen = (theme: any) => {
setSelectedTheme(theme); setSelectedTheme(theme);
open(); open();
@@ -201,13 +213,14 @@ function ThemesSettings({ theme }: any) {
/> />
</Group> </Group>
<Group c={'black'} justify='space-between'> <Group c={'black'} justify='space-between'>
<TextInput <Select
label='Background Image Path' data={backgroundList}
label='Background Image'
value={selectedTheme.backgroundImage} value={selectedTheme.backgroundImage}
onChange={(e) => onChange={(value) =>
setSelectedTheme({ setSelectedTheme({
...selectedTheme, ...selectedTheme,
backgroundImage: e.target.value, backgroundImage: value,
}) })
} }
styles={{ styles={{