Formatting and typos
This commit is contained in:
1361
package-lock.json
generated
1361
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
53
package.json
53
package.json
@@ -12,46 +12,45 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@emotion/react": "^11.14.0",
|
"@emotion/react": "^11.14.0",
|
||||||
"@iconify/react": "^5.2.0",
|
"@iconify/react": "^5.2.0",
|
||||||
"@mantine/core": "^7.16.3",
|
"@mantine/core": "^7.17.2",
|
||||||
"@mantine/dates": "^7.16.3",
|
"@mantine/dates": "^7.17.2",
|
||||||
"@mantine/form": "^7.16.3",
|
"@mantine/form": "^7.17.2",
|
||||||
"@mantine/hooks": "^7.16.3",
|
"@mantine/hooks": "^7.17.2",
|
||||||
"@mantine/modals": "^7.16.3",
|
"@mantine/modals": "^7.17.2",
|
||||||
"@tabler/icons-react": "^3.30.0",
|
"@tabler/icons-react": "^3.31.0",
|
||||||
"@tanstack/react-query": "^5.66.0",
|
"@tanstack/react-query": "^5.69.0",
|
||||||
"@tanstack/react-query-devtools": "^5.66.0",
|
"@tanstack/react-query-devtools": "^5.69.0",
|
||||||
"@tanstack/react-query-persist-client": "^5.66.0",
|
"@tanstack/react-query-persist-client": "^5.69.0",
|
||||||
"clsx": "^2.1.1",
|
"clsx": "^2.1.1",
|
||||||
"dayjs": "^1.11.13",
|
"dayjs": "^1.11.13",
|
||||||
"dotenv": "^16.4.7",
|
"dotenv": "^16.4.7",
|
||||||
"idb-keyval": "^6.2.1",
|
"idb-keyval": "^6.2.1",
|
||||||
"jotai": "^2.12.0",
|
"jotai": "^2.12.2",
|
||||||
"mantine-react-table": "^2.0.0-beta.6",
|
|
||||||
"react": "^19.0.0",
|
"react": "^19.0.0",
|
||||||
"react-dom": "^19.0.0",
|
"react-dom": "^19.0.0",
|
||||||
"react-icons": "^5.4.0",
|
"react-icons": "^5.5.0",
|
||||||
"react-query": "^3.39.3",
|
"react-query": "^3.39.3",
|
||||||
"react-router-dom": "^7.1.5",
|
"react-router-dom": "^7.4.0",
|
||||||
"react-toastify": "^11.0.3",
|
"react-toastify": "^11.0.5",
|
||||||
"recharts": "^2.15.1"
|
"recharts": "^2.15.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/node": "^22.13.1",
|
"@types/node": "^22.13.11",
|
||||||
"@types/react": "^19.0.8",
|
"@types/react": "^19.0.12",
|
||||||
"@types/react-dom": "^19.0.3",
|
"@types/react-dom": "^19.0.4",
|
||||||
"@typescript-eslint/eslint-plugin": "^8.24.0",
|
"@typescript-eslint/eslint-plugin": "^8.27.0",
|
||||||
"@typescript-eslint/parser": "^8.24.0",
|
"@typescript-eslint/parser": "^8.27.0",
|
||||||
"@vitejs/plugin-react": "^4.3.4",
|
"@vitejs/plugin-react": "^4.3.4",
|
||||||
"@vitest/coverage-v8": "^3.0.5",
|
"@vitest/coverage-v8": "^3.0.9",
|
||||||
"@vitest/ui": "^3.0.5",
|
"@vitest/ui": "^3.0.9",
|
||||||
"eslint": "^9.20.1",
|
"eslint": "^9.22.0",
|
||||||
"eslint-plugin-react-hooks": "^5.1.0",
|
"eslint-plugin-react-hooks": "^5.2.0",
|
||||||
"eslint-plugin-react-refresh": "^0.4.19",
|
"eslint-plugin-react-refresh": "^0.4.19",
|
||||||
"typescript": "^5.7.3",
|
"typescript": "^5.8.2",
|
||||||
"vite": "^6.1.0",
|
"vite": "^6.2.2",
|
||||||
"vite-plugin-dts": "~4.5.0",
|
"vite-plugin-dts": "~4.5.3",
|
||||||
"vite-plugin-eslint": "^1.8.1",
|
"vite-plugin-eslint": "^1.8.1",
|
||||||
"vite-tsconfig-paths": "^5.1.4",
|
"vite-tsconfig-paths": "^5.1.4",
|
||||||
"vitest": "^3.0.5"
|
"vitest": "^3.0.9"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,8 +16,6 @@ import {
|
|||||||
} from 'react-router-dom';
|
} from 'react-router-dom';
|
||||||
import { MainLayout, ThemeProvider } from './components';
|
import { MainLayout, ThemeProvider } from './components';
|
||||||
import '@mantine/core/styles.css'; //import Mantine V7 styles needed by MRT
|
import '@mantine/core/styles.css'; //import Mantine V7 styles needed by MRT
|
||||||
import '@mantine/dates/styles.css'; //if using mantine date picker features
|
|
||||||
import 'mantine-react-table/styles.css'; //import MRT styles
|
|
||||||
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';
|
||||||
|
|||||||
@@ -12,13 +12,14 @@ export function HelpModal({
|
|||||||
applicationData,
|
applicationData,
|
||||||
providerData,
|
providerData,
|
||||||
}: any) {
|
}: any) {
|
||||||
const { theme } = useCommonHooks();
|
const { theme, isMobile } = useCommonHooks();
|
||||||
return (
|
return (
|
||||||
<Modal.Root
|
<Modal.Root
|
||||||
size={'60%'}
|
size={'60%'}
|
||||||
className={modalClasses.helpModal}
|
className={modalClasses.helpModal}
|
||||||
classNames={modalClasses}
|
classNames={modalClasses}
|
||||||
opened={providerModalOpened}
|
opened={providerModalOpened}
|
||||||
|
fullScreen={isMobile}
|
||||||
onClose={() => {
|
onClose={() => {
|
||||||
setSearchValue('');
|
setSearchValue('');
|
||||||
setProviderLabel('Google Search');
|
setProviderLabel('Google Search');
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ const ApplicationSettings = () => {
|
|||||||
endpoint: endpoint,
|
endpoint: endpoint,
|
||||||
});
|
});
|
||||||
const [applicationData, setApplicationData] = useState<any>([]);
|
const [applicationData, setApplicationData] = useState<any>([]);
|
||||||
const { theme } = useCommonHooks();
|
const { theme, isMobile } = useCommonHooks();
|
||||||
const [newApplication, setNewApplication] = useState<any>({
|
const [newApplication, setNewApplication] = useState<any>({
|
||||||
name: '',
|
name: '',
|
||||||
url: '',
|
url: '',
|
||||||
@@ -66,6 +66,7 @@ const ApplicationSettings = () => {
|
|||||||
className={modalClasses.helpModal}
|
className={modalClasses.helpModal}
|
||||||
classNames={modalClasses}
|
classNames={modalClasses}
|
||||||
opened={modalOpened}
|
opened={modalOpened}
|
||||||
|
fullScreen={isMobile}
|
||||||
onClose={() => {
|
onClose={() => {
|
||||||
closeModal();
|
closeModal();
|
||||||
}}
|
}}
|
||||||
@@ -120,7 +121,6 @@ const ApplicationSettings = () => {
|
|||||||
<TextInput
|
<TextInput
|
||||||
label={'URL'}
|
label={'URL'}
|
||||||
className={textInputClasses.settingsItem}
|
className={textInputClasses.settingsItem}
|
||||||
w={'59%'}
|
|
||||||
pt={16}
|
pt={16}
|
||||||
classNames={textInputClasses}
|
classNames={textInputClasses}
|
||||||
defaultValue={newApplication.url}
|
defaultValue={newApplication.url}
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ import { useEffect, useState } from 'react';
|
|||||||
import { cardClasses, modalClasses, textInputClasses } from 'styles';
|
import { cardClasses, modalClasses, textInputClasses } from 'styles';
|
||||||
|
|
||||||
function DebouncedApplication({ application, handleDelete }: any) {
|
function DebouncedApplication({ application, handleDelete }: any) {
|
||||||
const { theme } = useCommonHooks();
|
const { theme, isMobile } = useCommonHooks();
|
||||||
const [modalOpened, { open: openModal, close: closeModal }] = useDisclosure(false);
|
const [modalOpened, { open: openModal, close: closeModal }] = useDisclosure(false);
|
||||||
const { mutateAsync } = useMutationAPI();
|
const { mutateAsync } = useMutationAPI();
|
||||||
|
|
||||||
@@ -40,6 +40,7 @@ function DebouncedApplication({ application, handleDelete }: any) {
|
|||||||
<Card className={cardClasses.settingsItem} classNames={cardClasses}>
|
<Card className={cardClasses.settingsItem} classNames={cardClasses}>
|
||||||
<Modal.Root
|
<Modal.Root
|
||||||
size={'60%'}
|
size={'60%'}
|
||||||
|
fullScreen={isMobile}
|
||||||
className={modalClasses.helpModal}
|
className={modalClasses.helpModal}
|
||||||
classNames={modalClasses}
|
classNames={modalClasses}
|
||||||
opened={modalOpened}
|
opened={modalOpened}
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ const BookmarkSettings = () => {
|
|||||||
});
|
});
|
||||||
const [groups, setGroups] = useState([]);
|
const [groups, setGroups] = useState([]);
|
||||||
const [newGroup, setNewGroup] = useState<any>({});
|
const [newGroup, setNewGroup] = useState<any>({});
|
||||||
const { theme } = useCommonHooks();
|
const { theme, isMobile } = useCommonHooks();
|
||||||
const { mutateAsync } = useMutationAPI();
|
const { mutateAsync } = useMutationAPI();
|
||||||
const [searchValue, setSearchValue] = useState('');
|
const [searchValue, setSearchValue] = useState('');
|
||||||
const [debouncedGroupSearch] = useDebouncedValue(searchValue, 500);
|
const [debouncedGroupSearch] = useDebouncedValue(searchValue, 500);
|
||||||
@@ -61,6 +61,7 @@ const BookmarkSettings = () => {
|
|||||||
className={modalClasses.helpModal}
|
className={modalClasses.helpModal}
|
||||||
classNames={modalClasses}
|
classNames={modalClasses}
|
||||||
opened={modalOpened}
|
opened={modalOpened}
|
||||||
|
fullScreen={isMobile}
|
||||||
onClose={() => {
|
onClose={() => {
|
||||||
closeModal();
|
closeModal();
|
||||||
}}
|
}}
|
||||||
@@ -78,7 +79,7 @@ const BookmarkSettings = () => {
|
|||||||
<Modal.Overlay />
|
<Modal.Overlay />
|
||||||
<Modal.Content>
|
<Modal.Content>
|
||||||
<Modal.Header>
|
<Modal.Header>
|
||||||
<Modal.Title>Add a new Group</Modal.Title>
|
<Modal.Title>Add a new Bookmark Group</Modal.Title>
|
||||||
<Modal.CloseButton />
|
<Modal.CloseButton />
|
||||||
</Modal.Header>
|
</Modal.Header>
|
||||||
<Modal.Body pb={'2rem'}>
|
<Modal.Body pb={'2rem'}>
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ import { useEffect, useState } from 'react';
|
|||||||
import { cardClasses, modalClasses, textInputClasses } from 'styles';
|
import { cardClasses, modalClasses, textInputClasses } from 'styles';
|
||||||
|
|
||||||
function DebouncedBookmarkItem({ bookmarkItem, handleDelete }: any) {
|
function DebouncedBookmarkItem({ bookmarkItem, handleDelete }: any) {
|
||||||
const { theme } = useCommonHooks();
|
const { theme, isMobile } = useCommonHooks();
|
||||||
const [modalOpened, { open: openModal, close: closeModal }] = useDisclosure(false);
|
const [modalOpened, { open: openModal, close: closeModal }] = useDisclosure(false);
|
||||||
const { mutateAsync } = useMutationAPI();
|
const { mutateAsync } = useMutationAPI();
|
||||||
|
|
||||||
@@ -43,6 +43,7 @@ function DebouncedBookmarkItem({ bookmarkItem, handleDelete }: any) {
|
|||||||
className={modalClasses.helpModal}
|
className={modalClasses.helpModal}
|
||||||
classNames={modalClasses}
|
classNames={modalClasses}
|
||||||
opened={modalOpened}
|
opened={modalOpened}
|
||||||
|
fullScreen={isMobile}
|
||||||
onClose={() => {
|
onClose={() => {
|
||||||
closeModal();
|
closeModal();
|
||||||
}}
|
}}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ import BookmarkSettingsItem from './BookmarkSettingsItem';
|
|||||||
import DebouncedBookmarkItem from './DebouncedBookmarkItem';
|
import DebouncedBookmarkItem from './DebouncedBookmarkItem';
|
||||||
|
|
||||||
function DebouncedGroupSettingsItem({ bookmarkGroup, bookmarks }: any) {
|
function DebouncedGroupSettingsItem({ bookmarkGroup, bookmarks }: any) {
|
||||||
const { theme } = useCommonHooks();
|
const { theme, isMobile } = useCommonHooks();
|
||||||
const [modalOpened, { open: openModal, close: closeModal }] = useDisclosure(false);
|
const [modalOpened, { open: openModal, close: closeModal }] = useDisclosure(false);
|
||||||
const [popoverOpened, setPopoverOpened] = useState(false);
|
const [popoverOpened, setPopoverOpened] = useState(false);
|
||||||
const { mutateAsync } = useMutationAPI();
|
const { mutateAsync } = useMutationAPI();
|
||||||
@@ -54,6 +54,7 @@ function DebouncedGroupSettingsItem({ bookmarkGroup, bookmarks }: any) {
|
|||||||
className={modalClasses.helpModal}
|
className={modalClasses.helpModal}
|
||||||
classNames={modalClasses}
|
classNames={modalClasses}
|
||||||
opened={modalOpened}
|
opened={modalOpened}
|
||||||
|
fullScreen={isMobile}
|
||||||
onClose={() => {
|
onClose={() => {
|
||||||
closeModal();
|
closeModal();
|
||||||
}}
|
}}
|
||||||
@@ -71,12 +72,12 @@ function DebouncedGroupSettingsItem({ bookmarkGroup, bookmarks }: any) {
|
|||||||
<Modal.Overlay />
|
<Modal.Overlay />
|
||||||
<Modal.Content>
|
<Modal.Content>
|
||||||
<Modal.Header>
|
<Modal.Header>
|
||||||
<Modal.Title>Delete Application</Modal.Title>
|
<Modal.Title>Delete Group</Modal.Title>
|
||||||
<Modal.CloseButton />
|
<Modal.CloseButton />
|
||||||
</Modal.Header>
|
</Modal.Header>
|
||||||
<Modal.Body pb={'2rem'}>
|
<Modal.Body pb={'2rem'}>
|
||||||
<Stack gap={0} w={'100%'} h={'150px'} align='center'>
|
<Stack gap={0} w={'100%'} h={'150px'} align='center'>
|
||||||
<Text>Are you sure you want to delete this application?</Text>
|
<Text>Are you sure you want to delete this bookmark group?</Text>
|
||||||
<Text
|
<Text
|
||||||
style={{
|
style={{
|
||||||
fontWeight: 'bold',
|
fontWeight: 'bold',
|
||||||
@@ -124,7 +125,7 @@ function DebouncedGroupSettingsItem({ bookmarkGroup, bookmarks }: any) {
|
|||||||
color: theme.primaryColor,
|
color: theme.primaryColor,
|
||||||
},
|
},
|
||||||
}}
|
}}
|
||||||
w={'58%'}
|
w={isMobile ? undefined : '58%'}
|
||||||
className={textInputClasses.settingsItem}
|
className={textInputClasses.settingsItem}
|
||||||
classNames={textInputClasses}
|
classNames={textInputClasses}
|
||||||
defaultValue={group.categoryName}
|
defaultValue={group.categoryName}
|
||||||
@@ -142,7 +143,7 @@ function DebouncedGroupSettingsItem({ bookmarkGroup, bookmarks }: any) {
|
|||||||
color: theme.primaryColor,
|
color: theme.primaryColor,
|
||||||
},
|
},
|
||||||
}}
|
}}
|
||||||
w={'28%'}
|
w={isMobile ? undefined : '28%'}
|
||||||
className={textInputClasses.settingsItem}
|
className={textInputClasses.settingsItem}
|
||||||
classNames={textInputClasses}
|
classNames={textInputClasses}
|
||||||
defaultValue={group.filterName}
|
defaultValue={group.filterName}
|
||||||
@@ -178,7 +179,7 @@ function DebouncedGroupSettingsItem({ bookmarkGroup, bookmarks }: any) {
|
|||||||
borderRadius: '100%',
|
borderRadius: '100%',
|
||||||
backgroundColor: theme.accentColor,
|
backgroundColor: theme.accentColor,
|
||||||
position: 'absolute',
|
position: 'absolute',
|
||||||
top: 78,
|
top: isMobile ? 164 : 78,
|
||||||
right: 18,
|
right: 18,
|
||||||
zIndex: 10,
|
zIndex: 10,
|
||||||
fontSize: 20,
|
fontSize: 20,
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ import { useCommonHooks } from 'hooks';
|
|||||||
import { cardClasses, modalClasses, textInputClasses } from 'styles';
|
import { cardClasses, modalClasses, textInputClasses } from 'styles';
|
||||||
|
|
||||||
function DebouncedMessage({ label, message, setMessage, handleDelete }: any) {
|
function DebouncedMessage({ label, message, setMessage, handleDelete }: any) {
|
||||||
const { theme } = useCommonHooks();
|
const { theme, isMobile } = useCommonHooks();
|
||||||
const [modalOpened, { open: openModal, close: closeModal }] = useDisclosure(false);
|
const [modalOpened, { open: openModal, close: closeModal }] = useDisclosure(false);
|
||||||
return (
|
return (
|
||||||
<Card className={cardClasses.settingsItem} classNames={cardClasses}>
|
<Card className={cardClasses.settingsItem} classNames={cardClasses}>
|
||||||
@@ -24,6 +24,7 @@ function DebouncedMessage({ label, message, setMessage, handleDelete }: any) {
|
|||||||
className={modalClasses.helpModal}
|
className={modalClasses.helpModal}
|
||||||
classNames={modalClasses}
|
classNames={modalClasses}
|
||||||
opened={modalOpened}
|
opened={modalOpened}
|
||||||
|
fullScreen={isMobile}
|
||||||
onClose={() => {
|
onClose={() => {
|
||||||
closeModal();
|
closeModal();
|
||||||
}}
|
}}
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ const MessageSettings = () => {
|
|||||||
const { data: messageData, isFetched: isMessagesFetched } = useQueryAPI({
|
const { data: messageData, isFetched: isMessagesFetched } = useQueryAPI({
|
||||||
endpoint: 'api/messages',
|
endpoint: 'api/messages',
|
||||||
});
|
});
|
||||||
const { theme } = useCommonHooks();
|
const { theme, isMobile } = useCommonHooks();
|
||||||
const { mutateAsync } = useMutationAPI();
|
const { mutateAsync } = useMutationAPI();
|
||||||
const [messages, setMessages] = useState<any>([]);
|
const [messages, setMessages] = useState<any>([]);
|
||||||
const [newMessage, setNewMessage] = useState('');
|
const [newMessage, setNewMessage] = useState('');
|
||||||
@@ -67,6 +67,7 @@ const MessageSettings = () => {
|
|||||||
className={modalClasses.helpModal}
|
className={modalClasses.helpModal}
|
||||||
classNames={modalClasses}
|
classNames={modalClasses}
|
||||||
opened={modalOpened}
|
opened={modalOpened}
|
||||||
|
fullScreen={isMobile}
|
||||||
onClose={() => {
|
onClose={() => {
|
||||||
closeModal();
|
closeModal();
|
||||||
}}
|
}}
|
||||||
@@ -197,7 +198,7 @@ const MessageSettings = () => {
|
|||||||
<Stack w={'100%'} align='center'>
|
<Stack w={'100%'} align='center'>
|
||||||
<Grid w={'75%'}>
|
<Grid w={'75%'}>
|
||||||
{messages?.map((message: any) => (
|
{messages?.map((message: any) => (
|
||||||
<GridCol span={6} key={message.id}>
|
<GridCol span={isMobile ? 12 : 6} key={message.id}>
|
||||||
<DebouncedMessage
|
<DebouncedMessage
|
||||||
label={`ID# ${message.id}`}
|
label={`ID# ${message.id}`}
|
||||||
message={message}
|
message={message}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { Card, Grid, GridCol, Overlay, Stack, Text, TextInput } from '@mantine/core';
|
import { Card, Grid, GridCol, Overlay, Stack, Text, TextInput } from '@mantine/core';
|
||||||
import { useDebouncedValue } from '@mantine/hooks';
|
import { useDebouncedValue } from '@mantine/hooks';
|
||||||
import { useMutationAPI, useQueryAPI } from 'hooks';
|
import { useCommonHooks, useMutationAPI, useQueryAPI } from 'hooks';
|
||||||
import { useEffect, useState } from 'react';
|
import { useEffect, useState } from 'react';
|
||||||
import { cardClasses, textClasses, textInputClasses } from 'styles';
|
import { cardClasses, textClasses, textInputClasses } from 'styles';
|
||||||
const PersonalizationSettings = () => {
|
const PersonalizationSettings = () => {
|
||||||
@@ -16,6 +16,7 @@ const PersonalizationSettings = () => {
|
|||||||
const [update, setUpdate] = useState({});
|
const [update, setUpdate] = useState({});
|
||||||
const [debounced] = useDebouncedValue(update, 1000);
|
const [debounced] = useDebouncedValue(update, 1000);
|
||||||
const { mutateAsync: editRow } = useMutationAPI();
|
const { mutateAsync: editRow } = useMutationAPI();
|
||||||
|
const { isMobile } = useCommonHooks();
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (personalData && personalIsFetched) {
|
if (personalData && personalIsFetched) {
|
||||||
setPersonal(personalData[0]);
|
setPersonal(personalData[0]);
|
||||||
@@ -52,7 +53,7 @@ const PersonalizationSettings = () => {
|
|||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
<GridCol span={4}>
|
<GridCol span={isMobile ? 12 : 4}>
|
||||||
<Card className={cardClasses.settingsItem} classNames={cardClasses}>
|
<Card className={cardClasses.settingsItem} classNames={cardClasses}>
|
||||||
<TextInput
|
<TextInput
|
||||||
label={'First Name'}
|
label={'First Name'}
|
||||||
@@ -69,7 +70,7 @@ const PersonalizationSettings = () => {
|
|||||||
/>
|
/>
|
||||||
</Card>
|
</Card>
|
||||||
</GridCol>
|
</GridCol>
|
||||||
<GridCol span={4}>
|
<GridCol span={isMobile ? 12 : 4}>
|
||||||
<Card className={cardClasses.settingsItem} classNames={cardClasses}>
|
<Card className={cardClasses.settingsItem} classNames={cardClasses}>
|
||||||
<TextInput
|
<TextInput
|
||||||
label={'Last Name'}
|
label={'Last Name'}
|
||||||
@@ -86,7 +87,7 @@ const PersonalizationSettings = () => {
|
|||||||
/>
|
/>
|
||||||
</Card>
|
</Card>
|
||||||
</GridCol>
|
</GridCol>
|
||||||
<GridCol span={4}>
|
<GridCol span={isMobile ? 12 : 4}>
|
||||||
<Card className={cardClasses.settingsItem} classNames={cardClasses}>
|
<Card className={cardClasses.settingsItem} classNames={cardClasses}>
|
||||||
<TextInput
|
<TextInput
|
||||||
label={'Email'}
|
label={'Email'}
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ import { useEffect, useState } from 'react';
|
|||||||
import { cardClasses, modalClasses, textInputClasses } from 'styles';
|
import { cardClasses, modalClasses, textInputClasses } from 'styles';
|
||||||
|
|
||||||
function DebouncedSearchProvider({ searchProvider, handleDelete }: any) {
|
function DebouncedSearchProvider({ searchProvider, handleDelete }: any) {
|
||||||
const { theme } = useCommonHooks();
|
const { theme, isMobile } = useCommonHooks();
|
||||||
const [modalOpened, { open: openModal, close: closeModal }] = useDisclosure(false);
|
const [modalOpened, { open: openModal, close: closeModal }] = useDisclosure(false);
|
||||||
const { mutateAsync } = useMutationAPI();
|
const { mutateAsync } = useMutationAPI();
|
||||||
|
|
||||||
@@ -43,6 +43,7 @@ function DebouncedSearchProvider({ searchProvider, handleDelete }: any) {
|
|||||||
className={modalClasses.helpModal}
|
className={modalClasses.helpModal}
|
||||||
classNames={modalClasses}
|
classNames={modalClasses}
|
||||||
opened={modalOpened}
|
opened={modalOpened}
|
||||||
|
fullScreen={isMobile}
|
||||||
onClose={() => {
|
onClose={() => {
|
||||||
closeModal();
|
closeModal();
|
||||||
}}
|
}}
|
||||||
@@ -60,7 +61,7 @@ function DebouncedSearchProvider({ searchProvider, handleDelete }: any) {
|
|||||||
<Modal.Overlay />
|
<Modal.Overlay />
|
||||||
<Modal.Content>
|
<Modal.Content>
|
||||||
<Modal.Header>
|
<Modal.Header>
|
||||||
<Modal.Title>Delete Client</Modal.Title>
|
<Modal.Title>Delete Search Provider</Modal.Title>
|
||||||
<Modal.CloseButton />
|
<Modal.CloseButton />
|
||||||
</Modal.Header>
|
</Modal.Header>
|
||||||
<Modal.Body pb={'2rem'}>
|
<Modal.Body pb={'2rem'}>
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ const SearchProviderSettings = () => {
|
|||||||
endpoint: endpoint,
|
endpoint: endpoint,
|
||||||
});
|
});
|
||||||
const [providerData, setProviderData] = useState<any>([]);
|
const [providerData, setProviderData] = useState<any>([]);
|
||||||
const { theme } = useCommonHooks();
|
const { theme, isMobile } = useCommonHooks();
|
||||||
const { mutateAsync } = useMutationAPI();
|
const { mutateAsync } = useMutationAPI();
|
||||||
const [newProvider, setNewProvider] = useState<any>({});
|
const [newProvider, setNewProvider] = useState<any>({});
|
||||||
const [modalOpened, { open: openModal, close: closeModal }] = useDisclosure(false);
|
const [modalOpened, { open: openModal, close: closeModal }] = useDisclosure(false);
|
||||||
@@ -59,6 +59,7 @@ const SearchProviderSettings = () => {
|
|||||||
className={modalClasses.helpModal}
|
className={modalClasses.helpModal}
|
||||||
classNames={modalClasses}
|
classNames={modalClasses}
|
||||||
opened={modalOpened}
|
opened={modalOpened}
|
||||||
|
fullScreen={isMobile}
|
||||||
onClose={() => {
|
onClose={() => {
|
||||||
closeModal();
|
closeModal();
|
||||||
}}
|
}}
|
||||||
@@ -76,7 +77,7 @@ const SearchProviderSettings = () => {
|
|||||||
<Modal.Overlay />
|
<Modal.Overlay />
|
||||||
<Modal.Content>
|
<Modal.Content>
|
||||||
<Modal.Header>
|
<Modal.Header>
|
||||||
<Modal.Title>Add a new application</Modal.Title>
|
<Modal.Title>Add a new Search Provider</Modal.Title>
|
||||||
<Modal.CloseButton />
|
<Modal.CloseButton />
|
||||||
</Modal.Header>
|
</Modal.Header>
|
||||||
<Modal.Body pb={'2rem'}>
|
<Modal.Body pb={'2rem'}>
|
||||||
@@ -218,7 +219,7 @@ const SearchProviderSettings = () => {
|
|||||||
<Stack w={'100%'} align='center'>
|
<Stack w={'100%'} align='center'>
|
||||||
<Grid columns={18} w={'75%'}>
|
<Grid columns={18} w={'75%'}>
|
||||||
{providerData?.map((provider: any) => (
|
{providerData?.map((provider: any) => (
|
||||||
<GridCol span={6} key={provider.id}>
|
<GridCol span={isMobile ? 18 : 6} key={provider.id}>
|
||||||
<Popover withArrow withOverlay withinPortal={false}>
|
<Popover withArrow withOverlay withinPortal={false}>
|
||||||
<Popover.Target>
|
<Popover.Target>
|
||||||
<Box
|
<Box
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ function ThemeModal({
|
|||||||
closePicker,
|
closePicker,
|
||||||
handleSaveTheme,
|
handleSaveTheme,
|
||||||
}: any) {
|
}: any) {
|
||||||
const { theme } = useCommonHooks();
|
const { theme, isMobile } = useCommonHooks();
|
||||||
const viewportRef = useRef<HTMLDivElement>(null);
|
const viewportRef = useRef<HTMLDivElement>(null);
|
||||||
const [query, setQuery] = useState('');
|
const [query, setQuery] = useState('');
|
||||||
const [hovered, setHovered] = useState(-1);
|
const [hovered, setHovered] = useState(-1);
|
||||||
@@ -112,6 +112,7 @@ function ThemeModal({
|
|||||||
classNames={modalClasses}
|
classNames={modalClasses}
|
||||||
opened={opened}
|
opened={opened}
|
||||||
onClose={handleClose}
|
onClose={handleClose}
|
||||||
|
fullScreen={isMobile}
|
||||||
style={{
|
style={{
|
||||||
'--color-text-pri': theme.primaryColor,
|
'--color-text-pri': theme.primaryColor,
|
||||||
'--color-text-acc': theme.accentColor,
|
'--color-text-acc': theme.accentColor,
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ function ThemePlaylistModal({
|
|||||||
handleSavePlaylist,
|
handleSavePlaylist,
|
||||||
allThemes,
|
allThemes,
|
||||||
}: any) {
|
}: any) {
|
||||||
const { theme } = useCommonHooks();
|
const { theme, isMobile } = useCommonHooks();
|
||||||
const [themeList, setThemeList] = useState<any>('[]');
|
const [themeList, setThemeList] = useState<any>('[]');
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (selectedPlaylist.themeList) {
|
if (selectedPlaylist.themeList) {
|
||||||
@@ -36,6 +36,7 @@ function ThemePlaylistModal({
|
|||||||
className={modalClasses.editThemeModal}
|
className={modalClasses.editThemeModal}
|
||||||
classNames={modalClasses}
|
classNames={modalClasses}
|
||||||
opened={opened}
|
opened={opened}
|
||||||
|
fullScreen={isMobile}
|
||||||
onClose={() => {
|
onClose={() => {
|
||||||
handleClose();
|
handleClose();
|
||||||
setThemeList('[]');
|
setThemeList('[]');
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ import { useEffect, useState } from 'react';
|
|||||||
import { cardClasses, modalClasses, textInputClasses } from 'styles';
|
import { cardClasses, modalClasses, textInputClasses } from 'styles';
|
||||||
|
|
||||||
function DebouncedWolClient({ wolClient, handleDelete }: any) {
|
function DebouncedWolClient({ wolClient, handleDelete }: any) {
|
||||||
const { theme } = useCommonHooks();
|
const { theme, isMobile } = useCommonHooks();
|
||||||
const [modalOpened, { open: openModal, close: closeModal }] = useDisclosure(false);
|
const [modalOpened, { open: openModal, close: closeModal }] = useDisclosure(false);
|
||||||
const { mutateAsync } = useMutationAPI();
|
const { mutateAsync } = useMutationAPI();
|
||||||
|
|
||||||
@@ -43,6 +43,7 @@ function DebouncedWolClient({ wolClient, handleDelete }: any) {
|
|||||||
className={modalClasses.helpModal}
|
className={modalClasses.helpModal}
|
||||||
classNames={modalClasses}
|
classNames={modalClasses}
|
||||||
opened={modalOpened}
|
opened={modalOpened}
|
||||||
|
fullScreen={isMobile}
|
||||||
onClose={() => {
|
onClose={() => {
|
||||||
closeModal();
|
closeModal();
|
||||||
}}
|
}}
|
||||||
@@ -60,7 +61,7 @@ function DebouncedWolClient({ wolClient, handleDelete }: any) {
|
|||||||
<Modal.Overlay />
|
<Modal.Overlay />
|
||||||
<Modal.Content>
|
<Modal.Content>
|
||||||
<Modal.Header>
|
<Modal.Header>
|
||||||
<Modal.Title>Delete Client</Modal.Title>
|
<Modal.Title>Delete WoL Client</Modal.Title>
|
||||||
<Modal.CloseButton />
|
<Modal.CloseButton />
|
||||||
</Modal.Header>
|
</Modal.Header>
|
||||||
<Modal.Body pb={'2rem'}>
|
<Modal.Body pb={'2rem'}>
|
||||||
|
|||||||
@@ -1,14 +1,16 @@
|
|||||||
import { Card, Stack, Text } from '@mantine/core';
|
import { Card, Stack, Text } from '@mantine/core';
|
||||||
|
import { useCommonHooks } from 'hooks';
|
||||||
import { FaLaptop } from 'react-icons/fa';
|
import { FaLaptop } from 'react-icons/fa';
|
||||||
import { cardClasses } from 'styles';
|
import { cardClasses } from 'styles';
|
||||||
|
|
||||||
function WolClientSettingsItem({ client }: any) {
|
function WolClientSettingsItem({ client }: any) {
|
||||||
|
const { isMobile } = useCommonHooks();
|
||||||
return (
|
return (
|
||||||
<Card
|
<Card
|
||||||
className={cardClasses.settingsItemHover}
|
className={cardClasses.settingsItemHover}
|
||||||
classNames={cardClasses}
|
classNames={cardClasses}
|
||||||
h={200}
|
h={200}
|
||||||
w={200}
|
w={isMobile ? '100%' : 200}
|
||||||
>
|
>
|
||||||
<Stack align='center' gap={0}>
|
<Stack align='center' gap={0}>
|
||||||
<FaLaptop fontSize={100} />
|
<FaLaptop fontSize={100} />
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ const WolClientSettings = () => {
|
|||||||
});
|
});
|
||||||
const [wolClients, setWolClients] = useState<any>([]);
|
const [wolClients, setWolClients] = useState<any>([]);
|
||||||
const { mutateAsync } = useMutationAPI();
|
const { mutateAsync } = useMutationAPI();
|
||||||
const { theme } = useCommonHooks();
|
const { theme, isMobile } = useCommonHooks();
|
||||||
const [newWolClient, setNewWolClient] = useState<any>({
|
const [newWolClient, setNewWolClient] = useState<any>({
|
||||||
hostname: '',
|
hostname: '',
|
||||||
macAddress: '',
|
macAddress: '',
|
||||||
@@ -62,6 +62,7 @@ const WolClientSettings = () => {
|
|||||||
className={modalClasses.helpModal}
|
className={modalClasses.helpModal}
|
||||||
classNames={modalClasses}
|
classNames={modalClasses}
|
||||||
opened={modalOpened}
|
opened={modalOpened}
|
||||||
|
fullScreen={isMobile}
|
||||||
onClose={() => {
|
onClose={() => {
|
||||||
closeModal();
|
closeModal();
|
||||||
}}
|
}}
|
||||||
@@ -79,7 +80,7 @@ const WolClientSettings = () => {
|
|||||||
<Modal.Overlay />
|
<Modal.Overlay />
|
||||||
<Modal.Content>
|
<Modal.Content>
|
||||||
<Modal.Header>
|
<Modal.Header>
|
||||||
<Modal.Title>Add a new application</Modal.Title>
|
<Modal.Title>Add a new WoL Client</Modal.Title>
|
||||||
<Modal.CloseButton />
|
<Modal.CloseButton />
|
||||||
</Modal.Header>
|
</Modal.Header>
|
||||||
<Modal.Body pb={'2rem'}>
|
<Modal.Body pb={'2rem'}>
|
||||||
@@ -206,7 +207,7 @@ const WolClientSettings = () => {
|
|||||||
<Stack w={'100%'} align='center'>
|
<Stack w={'100%'} align='center'>
|
||||||
<Grid columns={18} w={'75%'}>
|
<Grid columns={18} w={'75%'}>
|
||||||
{wolClients?.map((client: any) => (
|
{wolClients?.map((client: any) => (
|
||||||
<GridCol span={6} key={client.id}>
|
<GridCol span={isMobile ? 18 : 6} key={client.id}>
|
||||||
<Popover withArrow withOverlay withinPortal={false}>
|
<Popover withArrow withOverlay withinPortal={false}>
|
||||||
<Popover.Target>
|
<Popover.Target>
|
||||||
<Box
|
<Box
|
||||||
|
|||||||
Reference in New Issue
Block a user