Minor changes to styles and packages
This commit is contained in:
43
package-lock.json
generated
43
package-lock.json
generated
@@ -1,16 +1,17 @@
|
|||||||
{
|
{
|
||||||
"name": "triggerfrontend",
|
"name": "triggerfrontend",
|
||||||
"version": "0.0.0",
|
"version": "0.1.0",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "triggerfrontend",
|
"name": "triggerfrontend",
|
||||||
"version": "0.0.0",
|
"version": "0.1.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@hello-pangea/dnd": "^18.0.1",
|
"@hello-pangea/dnd": "^18.0.1",
|
||||||
"@mantine/core": "^7.17.5",
|
"@mantine/core": "^7.17.5",
|
||||||
"@mantine/hooks": "^7.17.5",
|
"@mantine/hooks": "^7.17.5",
|
||||||
|
"@mantine/notifications": "^7.17.5",
|
||||||
"@tanstack/react-query": "^5.74.4",
|
"@tanstack/react-query": "^5.74.4",
|
||||||
"@tanstack/react-query-devtools": "^5.74.6",
|
"@tanstack/react-query-devtools": "^5.74.6",
|
||||||
"@tanstack/react-query-persist-client": "^5.74.6",
|
"@tanstack/react-query-persist-client": "^5.74.6",
|
||||||
@@ -21,7 +22,6 @@
|
|||||||
"react-icons": "^5.5.0",
|
"react-icons": "^5.5.0",
|
||||||
"react-query": "^3.39.3",
|
"react-query": "^3.39.3",
|
||||||
"react-router-dom": "^7.5.2",
|
"react-router-dom": "^7.5.2",
|
||||||
"react-toastify": "^11.0.5",
|
|
||||||
"recharts": "^2.15.3"
|
"recharts": "^2.15.3"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
@@ -1225,6 +1225,31 @@
|
|||||||
"react": "^18.x || ^19.x"
|
"react": "^18.x || ^19.x"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@mantine/notifications": {
|
||||||
|
"version": "7.17.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/@mantine/notifications/-/notifications-7.17.5.tgz",
|
||||||
|
"integrity": "sha512-dLbrSm7ct97fb0Yv8ImVj9mVNkjnD/xkDCP1PANt/shM9xDh0TguqQTvborb+8Wxh1g+RtWVML/an5rVsHbKmg==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@mantine/store": "7.17.5",
|
||||||
|
"react-transition-group": "4.4.5"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@mantine/core": "7.17.5",
|
||||||
|
"@mantine/hooks": "7.17.5",
|
||||||
|
"react": "^18.x || ^19.x",
|
||||||
|
"react-dom": "^18.x || ^19.x"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@mantine/store": {
|
||||||
|
"version": "7.17.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/@mantine/store/-/store-7.17.5.tgz",
|
||||||
|
"integrity": "sha512-HQzy4rBlUFyw+39TgiAV+TGuQivMWYeQlnMctKJlaxwVY5ZTdF2IpJ/JZcjkGrmrZvBwUQ8IOMFvt2eZc20P1Q==",
|
||||||
|
"license": "MIT",
|
||||||
|
"peerDependencies": {
|
||||||
|
"react": "^18.x || ^19.x"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@microsoft/api-extractor": {
|
"node_modules/@microsoft/api-extractor": {
|
||||||
"version": "7.52.1",
|
"version": "7.52.1",
|
||||||
"resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.52.1.tgz",
|
"resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.52.1.tgz",
|
||||||
@@ -4998,18 +5023,6 @@
|
|||||||
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
|
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/react-toastify": {
|
|
||||||
"version": "11.0.5",
|
|
||||||
"resolved": "https://registry.npmjs.org/react-toastify/-/react-toastify-11.0.5.tgz",
|
|
||||||
"integrity": "sha512-EpqHBGvnSTtHYhCPLxML05NLY2ZX0JURbAdNYa6BUkk+amz4wbKBQvoKQAB0ardvSarUBuY4Q4s1sluAzZwkmA==",
|
|
||||||
"dependencies": {
|
|
||||||
"clsx": "^2.1.1"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"react": "^18 || ^19",
|
|
||||||
"react-dom": "^18 || ^19"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/react-transition-group": {
|
"node_modules/react-transition-group": {
|
||||||
"version": "4.4.5",
|
"version": "4.4.5",
|
||||||
"resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz",
|
"resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz",
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
"@hello-pangea/dnd": "^18.0.1",
|
"@hello-pangea/dnd": "^18.0.1",
|
||||||
"@mantine/core": "^7.17.5",
|
"@mantine/core": "^7.17.5",
|
||||||
"@mantine/hooks": "^7.17.5",
|
"@mantine/hooks": "^7.17.5",
|
||||||
|
"@mantine/notifications": "^7.17.5",
|
||||||
"@tanstack/react-query": "^5.74.4",
|
"@tanstack/react-query": "^5.74.4",
|
||||||
"@tanstack/react-query-devtools": "^5.74.6",
|
"@tanstack/react-query-devtools": "^5.74.6",
|
||||||
"@tanstack/react-query-persist-client": "^5.74.6",
|
"@tanstack/react-query-persist-client": "^5.74.6",
|
||||||
@@ -23,7 +24,6 @@
|
|||||||
"react-icons": "^5.5.0",
|
"react-icons": "^5.5.0",
|
||||||
"react-query": "^3.39.3",
|
"react-query": "^3.39.3",
|
||||||
"react-router-dom": "^7.5.2",
|
"react-router-dom": "^7.5.2",
|
||||||
"react-toastify": "^11.0.5",
|
|
||||||
"recharts": "^2.15.3"
|
"recharts": "^2.15.3"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|||||||
10
src/App.tsx
10
src/App.tsx
@@ -5,6 +5,7 @@ import {
|
|||||||
createTheme,
|
createTheme,
|
||||||
mergeMantineTheme,
|
mergeMantineTheme,
|
||||||
} from '@mantine/core';
|
} from '@mantine/core';
|
||||||
|
import { Notifications } from '@mantine/notifications';
|
||||||
import { useCommonHooks, useQueryAPI } from 'hooks';
|
import { useCommonHooks, useQueryAPI } from 'hooks';
|
||||||
import { useEffect, useState } from 'react';
|
import { useEffect, useState } from 'react';
|
||||||
import {
|
import {
|
||||||
@@ -16,10 +17,10 @@ import {
|
|||||||
} from 'react-router-dom';
|
} from 'react-router-dom';
|
||||||
import { Loading, MainLayout } from './components';
|
import { Loading, MainLayout } from './components';
|
||||||
import '@mantine/core/styles.css';
|
import '@mantine/core/styles.css';
|
||||||
|
import '@mantine/notifications/styles.css';
|
||||||
import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
|
import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
|
||||||
import './index.css';
|
import './index.css';
|
||||||
import { Homepage, Settings } from 'pages';
|
import { Homepage, Settings } from 'pages';
|
||||||
import { ToastContainer } from 'react-toastify';
|
|
||||||
import type { Theme, ThemePlaylist } from 'types';
|
import type { Theme, ThemePlaylist } from 'types';
|
||||||
|
|
||||||
function App() {
|
function App() {
|
||||||
@@ -73,10 +74,8 @@ function App() {
|
|||||||
if (themeName !== 'random') {
|
if (themeName !== 'random') {
|
||||||
const temp = allThemes.find((t: Theme) => t.name === themeName);
|
const temp = allThemes.find((t: Theme) => t.name === themeName);
|
||||||
setTheme(temp);
|
setTheme(temp);
|
||||||
setLoaded(true);
|
|
||||||
} else {
|
} else {
|
||||||
handleThemeChange(allThemes, false);
|
handleThemeChange(allThemes, false);
|
||||||
setLoaded(true);
|
|
||||||
}
|
}
|
||||||
} else if (currentThemePlaylist === 'Time of Day') {
|
} else if (currentThemePlaylist === 'Time of Day') {
|
||||||
const themeList = JSON.parse(
|
const themeList = JSON.parse(
|
||||||
@@ -89,7 +88,6 @@ function App() {
|
|||||||
t.id === Number(themeList[Math.floor(new Date().getHours() / 6)]),
|
t.id === Number(themeList[Math.floor(new Date().getHours() / 6)]),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
setLoaded(true);
|
|
||||||
} else {
|
} else {
|
||||||
const themeList = JSON.parse(
|
const themeList = JSON.parse(
|
||||||
themePlaylists.find((t: ThemePlaylist) => t.name === currentThemePlaylist)
|
themePlaylists.find((t: ThemePlaylist) => t.name === currentThemePlaylist)
|
||||||
@@ -97,9 +95,9 @@ function App() {
|
|||||||
);
|
);
|
||||||
const filteredThemes = allThemes.filter((t: Theme) => themeList.includes(t.id));
|
const filteredThemes = allThemes.filter((t: Theme) => themeList.includes(t.id));
|
||||||
setTheme('random');
|
setTheme('random');
|
||||||
setLoaded(true);
|
|
||||||
handleThemeChange(filteredThemes, false);
|
handleThemeChange(filteredThemes, false);
|
||||||
}
|
}
|
||||||
|
setLoaded(true);
|
||||||
}
|
}
|
||||||
}, [
|
}, [
|
||||||
isAllThemesFetched,
|
isAllThemesFetched,
|
||||||
@@ -112,7 +110,7 @@ function App() {
|
|||||||
<>
|
<>
|
||||||
{theme && (
|
{theme && (
|
||||||
<MantineProvider theme={mantineTheme}>
|
<MantineProvider theme={mantineTheme}>
|
||||||
<ToastContainer />
|
<Notifications />
|
||||||
<Loading loaded={loaded} />
|
<Loading loaded={loaded} />
|
||||||
<RouterProvider router={router} />
|
<RouterProvider router={router} />
|
||||||
<ReactQueryDevtools initialIsOpen={false} />
|
<ReactQueryDevtools initialIsOpen={false} />
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
|
import { Text } from '@mantine/core';
|
||||||
|
import { notifications } from '@mantine/notifications';
|
||||||
import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';
|
import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';
|
||||||
import { useRef } from 'react';
|
import { FaCheck } from 'react-icons/fa';
|
||||||
import { Flip, toast } from 'react-toastify';
|
import { VscLoading } from 'react-icons/vsc';
|
||||||
|
|
||||||
const url = `${import.meta.env.PROD ? import.meta.env.VITE_DOMAIN_PROD : import.meta.env.VITE_DOMAIN_DEV}/${import.meta.env.VITE_BASE_URL}`;
|
const url = `${import.meta.env.PROD ? import.meta.env.VITE_DOMAIN_PROD : import.meta.env.VITE_DOMAIN_DEV}/${import.meta.env.VITE_BASE_URL}`;
|
||||||
const headers: HeadersInit = {
|
const headers: HeadersInit = {
|
||||||
@@ -40,21 +42,32 @@ export function useQueryAPI({ endpoint }: { endpoint: string }) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function useMutationAPI() {
|
export function useMutationAPI() {
|
||||||
const toastId = useRef<any>(null);
|
|
||||||
const notify = () => {
|
|
||||||
toastId.current = toast('Sending...', { position: 'bottom-right', autoClose: false });
|
|
||||||
};
|
|
||||||
const callEndpoint = async (
|
const callEndpoint = async (
|
||||||
method: string,
|
method: string,
|
||||||
endpoint: string,
|
endpoint: string,
|
||||||
body: object | undefined | null,
|
body: object | undefined | null,
|
||||||
) => {
|
) => {
|
||||||
|
const id = notifications.show({
|
||||||
|
loading: true,
|
||||||
|
title: (
|
||||||
|
<Text fw={600} c={'var(--mantine-color-accent-0)'}>
|
||||||
|
{method} {endpoint}
|
||||||
|
</Text>
|
||||||
|
),
|
||||||
|
message: (
|
||||||
|
<Text c={'var(--mantine-color-primary-0)'}>
|
||||||
|
{body ? JSON.stringify(body) : 'Calling API...'}
|
||||||
|
</Text>
|
||||||
|
),
|
||||||
|
autoClose: false,
|
||||||
|
withCloseButton: false,
|
||||||
|
icon: <VscLoading size={24} />,
|
||||||
|
});
|
||||||
const options: { method: string; headers: HeadersInit | undefined; body: string } = {
|
const options: { method: string; headers: HeadersInit | undefined; body: string } = {
|
||||||
method: method,
|
method: method,
|
||||||
headers: headers,
|
headers: headers,
|
||||||
body: JSON.stringify(body),
|
body: JSON.stringify(body),
|
||||||
};
|
};
|
||||||
notify();
|
|
||||||
const response = await fetch(`${url}/${endpoint}`, options);
|
const response = await fetch(`${url}/${endpoint}`, options);
|
||||||
if (!response.ok) {
|
if (!response.ok) {
|
||||||
const responseData = await response.json();
|
const responseData = await response.json();
|
||||||
@@ -68,11 +81,6 @@ export function useMutationAPI() {
|
|||||||
loc: responseData.detail[0]?.loc,
|
loc: responseData.detail[0]?.loc,
|
||||||
type: responseData.detail[0]?.type,
|
type: responseData.detail[0]?.type,
|
||||||
});
|
});
|
||||||
toast.update(toastId.current, {
|
|
||||||
render: errorResponse,
|
|
||||||
type: 'error',
|
|
||||||
autoClose: 5000,
|
|
||||||
});
|
|
||||||
throw new Error(errorResponse);
|
throw new Error(errorResponse);
|
||||||
}
|
}
|
||||||
if (typeof responseData.detail === 'object') {
|
if (typeof responseData.detail === 'object') {
|
||||||
@@ -83,11 +91,6 @@ export function useMutationAPI() {
|
|||||||
endpoint: endpoint,
|
endpoint: endpoint,
|
||||||
msg: responseData.detail.message,
|
msg: responseData.detail.message,
|
||||||
});
|
});
|
||||||
toast.update(toastId.current, {
|
|
||||||
render: errorResponse,
|
|
||||||
type: 'error',
|
|
||||||
autoClose: 5000,
|
|
||||||
});
|
|
||||||
throw new Error(errorResponse);
|
throw new Error(errorResponse);
|
||||||
}
|
}
|
||||||
const errorResponse = JSON.stringify({
|
const errorResponse = JSON.stringify({
|
||||||
@@ -97,18 +100,24 @@ export function useMutationAPI() {
|
|||||||
endpoint: endpoint,
|
endpoint: endpoint,
|
||||||
msg: responseData.detail,
|
msg: responseData.detail,
|
||||||
});
|
});
|
||||||
toast.update(toastId.current, {
|
|
||||||
render: errorResponse,
|
|
||||||
type: 'error',
|
|
||||||
autoClose: 5000,
|
|
||||||
});
|
|
||||||
throw new Error(errorResponse);
|
throw new Error(errorResponse);
|
||||||
}
|
}
|
||||||
toast.update(toastId.current, {
|
setTimeout(() => {
|
||||||
render: 'Success!',
|
notifications.update({
|
||||||
autoClose: 2000,
|
id: id,
|
||||||
transition: Flip,
|
loading: false,
|
||||||
|
title: (
|
||||||
|
<Text fw={600} c={'var(--mantine-color-accent-0)'}>
|
||||||
|
{method} Success!
|
||||||
|
</Text>
|
||||||
|
),
|
||||||
|
message: (
|
||||||
|
<Text c={'var(--mantine-color-primary-0)'}>Called endpoint {endpoint}</Text>
|
||||||
|
),
|
||||||
|
autoClose: 2500,
|
||||||
|
icon: <FaCheck size={24} />,
|
||||||
});
|
});
|
||||||
|
}, 2500);
|
||||||
return await response.json();
|
return await response.json();
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -266,7 +275,6 @@ export function useFileUploadAPI() {
|
|||||||
method: string;
|
method: string;
|
||||||
endpoint: string;
|
endpoint: string;
|
||||||
body: object | FormData | undefined | null;
|
body: object | FormData | undefined | null;
|
||||||
toastID?: string;
|
|
||||||
}) => callEndpoint(method, endpoint, body),
|
}) => callEndpoint(method, endpoint, body),
|
||||||
onMutate: () => {},
|
onMutate: () => {},
|
||||||
onSuccess: (variables) => {
|
onSuccess: (variables) => {
|
||||||
@@ -1,5 +1 @@
|
|||||||
@import url("https://fonts.googleapis.com/css2?family=Jost:ital,wght@0,100;0,200;0,400;1,100;1,200&display=swap");
|
@import url("https://fonts.googleapis.com/css2?family=Jost:ital,wght@0,100;0,200;0,400;1,100;1,200&display=swap");
|
||||||
|
|
||||||
.Toastify__toast-theme--light {
|
|
||||||
backdrop-filter: blur(10px) !important;
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ import { useEffect, useState } from 'react';
|
|||||||
import { FaDice, FaSync } from 'react-icons/fa';
|
import { FaDice, FaSync } from 'react-icons/fa';
|
||||||
import { FiMenu, FiPower, FiSettings, FiShuffle } from 'react-icons/fi';
|
import { FiMenu, FiPower, FiSettings, FiShuffle } from 'react-icons/fi';
|
||||||
import { useNavigate } from 'react-router-dom';
|
import { useNavigate } from 'react-router-dom';
|
||||||
import { toast } from 'react-toastify';
|
|
||||||
import {
|
import {
|
||||||
actionIconClasses,
|
actionIconClasses,
|
||||||
buttonClasses,
|
buttonClasses,
|
||||||
@@ -50,7 +49,6 @@ function SettingsButton() {
|
|||||||
const [selectedClient] = useState<WolClient>(wolClientData?.[0]);
|
const [selectedClient] = useState<WolClient>(wolClientData?.[0]);
|
||||||
const [overlayOpened, setOverlayOpened] = useState(false);
|
const [overlayOpened, setOverlayOpened] = useState(false);
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
const notify = (notification: any) => toast(notification, { position: 'bottom-right' });
|
|
||||||
const {
|
const {
|
||||||
currentTheme,
|
currentTheme,
|
||||||
setCurrentTheme,
|
setCurrentTheme,
|
||||||
@@ -150,7 +148,6 @@ function SettingsButton() {
|
|||||||
disabled={!wolClients?.length || selectedClient === null}
|
disabled={!wolClients?.length || selectedClient === null}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
handleWakeRequest();
|
handleWakeRequest();
|
||||||
notify('Wake command sent');
|
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Stack gap={0} align='center'>
|
<Stack gap={0} align='center'>
|
||||||
|
|||||||
@@ -85,7 +85,7 @@ function DebouncedApplication({
|
|||||||
openModal();
|
openModal();
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<FiTrash />
|
<FiTrash color='black' />
|
||||||
</ActionIcon>
|
</ActionIcon>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
<Tooltip
|
<Tooltip
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ function DebouncedBookmarkItem({
|
|||||||
openModal();
|
openModal();
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<FiTrash />
|
<FiTrash color='black' />
|
||||||
</ActionIcon>
|
</ActionIcon>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
<Group w={'100%'} justify='center'>
|
<Group w={'100%'} justify='center'>
|
||||||
|
|||||||
@@ -180,7 +180,7 @@ function DebouncedGroupSettingsItem({
|
|||||||
openModal();
|
openModal();
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<FiTrash />
|
<FiTrash color='black' />
|
||||||
</ActionIcon>
|
</ActionIcon>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
</Group>
|
</Group>
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ function DebouncedMessage({
|
|||||||
openModal();
|
openModal();
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<FiTrash />
|
<FiTrash color='black' />
|
||||||
</ActionIcon>
|
</ActionIcon>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
<TextInput
|
<TextInput
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ function DebouncedSearchProvider({
|
|||||||
openModal();
|
openModal();
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<FiTrash />
|
<FiTrash color='black' />
|
||||||
</ActionIcon>
|
</ActionIcon>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
<Stack>
|
<Stack>
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ function DeleteItemModal({
|
|||||||
<Modal.Body pb={'2rem'}>
|
<Modal.Body pb={'2rem'}>
|
||||||
<Card className={cardClasses.settingsItem} classNames={cardClasses}>
|
<Card className={cardClasses.settingsItem} classNames={cardClasses}>
|
||||||
{body}
|
{body}
|
||||||
<Group w={'100%'} justify='center' bottom={8}>
|
<Group justify='center' mt={'-1.5rem'}>
|
||||||
<Button
|
<Button
|
||||||
color={'red'}
|
color={'red'}
|
||||||
styles={{ label: { color: 'black' } }}
|
styles={{ label: { color: 'black' } }}
|
||||||
@@ -48,13 +48,7 @@ function DeleteItemModal({
|
|||||||
>
|
>
|
||||||
Delete
|
Delete
|
||||||
</Button>
|
</Button>
|
||||||
<Button
|
<Button onClick={handleClose}>Cancel</Button>
|
||||||
color={'grey'}
|
|
||||||
styles={{ label: { color: 'white' } }}
|
|
||||||
onClick={handleClose}
|
|
||||||
>
|
|
||||||
Cancel
|
|
||||||
</Button>
|
|
||||||
</Group>
|
</Group>
|
||||||
</Card>
|
</Card>
|
||||||
</Modal.Body>
|
</Modal.Body>
|
||||||
|
|||||||
@@ -225,6 +225,7 @@ function ThemePlaylistCard({
|
|||||||
color: 'var(--mantine-color-background-0)',
|
color: 'var(--mantine-color-background-0)',
|
||||||
backgroundColor: 'var(--mantine-color-primary-0)',
|
backgroundColor: 'var(--mantine-color-primary-0)',
|
||||||
borderRadius: '4px',
|
borderRadius: '4px',
|
||||||
|
zIndex: 160,
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
Count: {themeList.length}
|
Count: {themeList.length}
|
||||||
@@ -252,6 +253,7 @@ function ThemePlaylistCard({
|
|||||||
color: 'var(--mantine-color-background-0)',
|
color: 'var(--mantine-color-background-0)',
|
||||||
backgroundColor: 'var(--mantine-color-primary-0)',
|
backgroundColor: 'var(--mantine-color-primary-0)',
|
||||||
borderRadius: '4px',
|
borderRadius: '4px',
|
||||||
|
zIndex: 160,
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
Timed Themes
|
Timed Themes
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ function DebouncedWolClient({
|
|||||||
openModal();
|
openModal();
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<FiTrash />
|
<FiTrash color='black' />
|
||||||
</ActionIcon>
|
</ActionIcon>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
<Group w={'100%'} justify='center'>
|
<Group w={'100%'} justify='center'>
|
||||||
|
|||||||
@@ -13,14 +13,14 @@ export default defineConfig(({ mode }) => {
|
|||||||
reactIconsSi: ['react-icons/si'],
|
reactIconsSi: ['react-icons/si'],
|
||||||
reactIconsFa6: ['react-icons/fa6'],
|
reactIconsFa6: ['react-icons/fa6'],
|
||||||
reactIconsVsc: ['react-icons/vsc'],
|
reactIconsVsc: ['react-icons/vsc'],
|
||||||
mantine: ['@mantine/core', '@mantine/hooks'],
|
mantine: ['@mantine/core', '@mantine/hooks', '@mantine/notifications'],
|
||||||
tanstack: [
|
tanstack: [
|
||||||
'@tanstack/react-query',
|
'@tanstack/react-query',
|
||||||
'@tanstack/react-query-devtools',
|
'@tanstack/react-query-devtools',
|
||||||
'@tanstack/react-query-persist-client',
|
'@tanstack/react-query-persist-client',
|
||||||
],
|
],
|
||||||
recharts: ['recharts'],
|
recharts: ['recharts'],
|
||||||
utils: ['@hello-pangea/dnd', 'react-toastify', 'jotai'],
|
utils: ['@hello-pangea/dnd', 'jotai'],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user