diff --git a/src/frontend/src/components/details/DetailsImage.tsx b/src/frontend/src/components/details/DetailsImage.tsx
index 61b48ce20b..9e27accad9 100644
--- a/src/frontend/src/components/details/DetailsImage.tsx
+++ b/src/frontend/src/components/details/DetailsImage.tsx
@@ -358,8 +358,8 @@ export function DetailsImage(props: DetailImageProps) {
<>
{permissions.hasChangeRole(props.appRole) &&
diff --git a/src/frontend/src/components/forms/HostOptionsForm.tsx b/src/frontend/src/components/forms/HostOptionsForm.tsx
index 16f082feb8..bc8c275baa 100644
--- a/src/frontend/src/components/forms/HostOptionsForm.tsx
+++ b/src/frontend/src/components/forms/HostOptionsForm.tsx
@@ -62,15 +62,15 @@ export function HostOptionsForm({
{fields.length > 0 ? (
-
+
Host
-
+
Name
) : (
-
+
No one here...
)}
diff --git a/src/frontend/src/components/forms/InstanceOptions.tsx b/src/frontend/src/components/forms/InstanceOptions.tsx
index 4074cee3cf..475cc30fd4 100644
--- a/src/frontend/src/components/forms/InstanceOptions.tsx
+++ b/src/frontend/src/components/forms/InstanceOptions.tsx
@@ -15,7 +15,7 @@ export function InstanceOptions({
setHostEdit
}: {
hostKey: string;
- ChangeHost: (newHost: string) => void;
+ ChangeHost: (newHost: string | null) => void;
setHostEdit: () => void;
}) {
const [HostListEdit, setHostListEdit] = useToggle([false, true] as const);
diff --git a/src/frontend/src/components/forms/fields/RelatedModelField.tsx b/src/frontend/src/components/forms/fields/RelatedModelField.tsx
index 19591c2ab6..4056194668 100644
--- a/src/frontend/src/components/forms/fields/RelatedModelField.tsx
+++ b/src/frontend/src/components/forms/fields/RelatedModelField.tsx
@@ -1,6 +1,6 @@
import { t } from '@lingui/macro';
import { Input, useMantineTheme } from '@mantine/core';
-import { useDebouncedValue } from '@mantine/hooks';
+import { useColorScheme, useDebouncedValue } from '@mantine/hooks';
import { useId } from '@mantine/hooks';
import { useQuery } from '@tanstack/react-query';
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
@@ -12,6 +12,7 @@ import {
import Select from 'react-select';
import { api } from '../../../App';
+import { vars } from '../../../theme';
import { RenderInstance } from '../../render/Instance';
import { ApiFormFieldType } from './ApiFormField';
@@ -218,29 +219,32 @@ export function RelatedModelField({
// Define color theme to pass to field based on Mantine theme
const theme = useMantineTheme();
+ const colorschema = vars.colors.primaryColors;
+ const [preferredColorScheme] = useColorScheme();
+
const colors = useMemo(() => {
let colors: any;
- if (theme.colorScheme === 'dark') {
+ if (preferredColorScheme === 'dark') {
colors = {
- neutral0: theme.colors[theme.colorScheme][6],
- neutral5: theme.colors[theme.colorScheme][4],
- neutral10: theme.colors[theme.colorScheme][4],
- neutral20: theme.colors[theme.colorScheme][4],
- neutral30: theme.colors[theme.colorScheme][3],
- neutral40: theme.colors[theme.colorScheme][2],
- neutral50: theme.colors[theme.colorScheme][1],
- neutral60: theme.colors[theme.colorScheme][0],
- neutral70: theme.colors[theme.colorScheme][0],
- neutral80: theme.colors[theme.colorScheme][0],
- neutral90: theme.colors[theme.colorScheme][0],
- primary: theme.colors[theme.primaryColor][7],
- primary25: theme.colors[theme.primaryColor][6],
- primary50: theme.colors[theme.primaryColor][5],
- primary75: theme.colors[theme.primaryColor][4]
+ neutral0: colorschema[6],
+ neutral5: colorschema[4],
+ neutral10: colorschema[4],
+ neutral20: colorschema[4],
+ neutral30: colorschema[3],
+ neutral40: colorschema[2],
+ neutral50: colorschema[1],
+ neutral60: colorschema[0],
+ neutral70: colorschema[0],
+ neutral80: colorschema[0],
+ neutral90: colorschema[0],
+ primary: vars.colors.primaryColors[7],
+ primary25: vars.colors.primaryColors[6],
+ primary50: vars.colors.primaryColors[5],
+ primary75: vars.colors.primaryColors[4]
};
} else {
colors = {
- neutral0: theme.white,
+ neutral0: vars.colors.white,
neutral5: theme.fn.darken(theme.white, 0.05),
neutral10: theme.fn.darken(theme.white, 0.1),
neutral20: theme.fn.darken(theme.white, 0.2),
@@ -251,10 +255,10 @@ export function RelatedModelField({
neutral70: theme.fn.darken(theme.white, 0.7),
neutral80: theme.fn.darken(theme.white, 0.8),
neutral90: theme.fn.darken(theme.white, 0.9),
- primary: theme.colors[theme.primaryColor][7],
- primary25: theme.colors[theme.primaryColor][4],
- primary50: theme.colors[theme.primaryColor][5],
- primary75: theme.colors[theme.primaryColor][6]
+ primary: vars.colors.primaryColors[7],
+ primary25: vars.colors.primaryColors[4],
+ primary50: vars.colors.primaryColors[5],
+ primary75: vars.colors.primaryColors[6]
};
}
return colors;
diff --git a/src/frontend/src/components/images/ApiImage.tsx b/src/frontend/src/components/images/ApiImage.tsx
index d8f457b427..7da466017c 100644
--- a/src/frontend/src/components/images/ApiImage.tsx
+++ b/src/frontend/src/components/images/ApiImage.tsx
@@ -67,10 +67,7 @@ export function ApiImage(props: ImageProps) {
{image && image.length > 0 ? (
) : (
-
+
)}
);
diff --git a/src/frontend/src/components/items/DashboardItem.tsx b/src/frontend/src/components/items/DashboardItem.tsx
index 880473d059..7f45aa6c91 100644
--- a/src/frontend/src/components/items/DashboardItem.tsx
+++ b/src/frontend/src/components/items/DashboardItem.tsx
@@ -18,7 +18,7 @@ export function StatisticItem({
}) {
return (
-
+
{data.title}
diff --git a/src/frontend/src/components/items/LanguageToggle.tsx b/src/frontend/src/components/items/LanguageToggle.tsx
index 4c28415057..c228dc6cb8 100644
--- a/src/frontend/src/components/items/LanguageToggle.tsx
+++ b/src/frontend/src/components/items/LanguageToggle.tsx
@@ -9,7 +9,7 @@ export function LanguageToggle() {
return (
diff --git a/src/frontend/src/components/items/ProgressBar.tsx b/src/frontend/src/components/items/ProgressBar.tsx
index 837ab8cf3e..78e65fa045 100644
--- a/src/frontend/src/components/items/ProgressBar.tsx
+++ b/src/frontend/src/components/items/ProgressBar.tsx
@@ -24,7 +24,7 @@ export function ProgressBar(props: ProgressBarProps) {
return (
{props.progressLabel && (
-
+
{props.value} / {props.maximum}
)}
diff --git a/src/frontend/src/components/nav/MainMenu.tsx b/src/frontend/src/components/nav/MainMenu.tsx
index f4e3e30b8b..19b2b7e756 100644
--- a/src/frontend/src/components/nav/MainMenu.tsx
+++ b/src/frontend/src/components/nav/MainMenu.tsx
@@ -23,7 +23,7 @@ export function MainMenu() {
-
+
{userState.username() ? (
userState.username()
) : (
diff --git a/src/frontend/src/components/nav/PageDetail.tsx b/src/frontend/src/components/nav/PageDetail.tsx
index 5484e9b505..fba3551d02 100644
--- a/src/frontend/src/components/nav/PageDetail.tsx
+++ b/src/frontend/src/components/nav/PageDetail.tsx
@@ -46,7 +46,7 @@ export function PageDetail({
{imageUrl && (
-
+
)}
{title && {title}}
diff --git a/src/frontend/src/components/nav/PanelGroup.tsx b/src/frontend/src/components/nav/PanelGroup.tsx
index 95b6ad7904..f8f1585fc1 100644
--- a/src/frontend/src/components/nav/PanelGroup.tsx
+++ b/src/frontend/src/components/nav/PanelGroup.tsx
@@ -72,7 +72,7 @@ function BasePanelGroup({
}, [setLastUsedPanel]);
// Callback when the active panel changes
- function handlePanelChange(panel: string) {
+ function handlePanelChange(panel: string | null) {
if (activePanels.findIndex((p) => p.name === panel) === -1) {
setLastUsedPanel('');
return navigate('../');
@@ -81,7 +81,7 @@ function BasePanelGroup({
navigate(`../${panel}`);
// Optionally call external callback hook
- if (onPanelChange) {
+ if (panel && onPanelChange) {
onPanelChange(panel);
}
}
@@ -111,7 +111,7 @@ function BasePanelGroup({
onChange={handlePanelChange}
keepMounted={false}
>
-
+
{panels.map(
(panel) =>
!panel.hidden && (
diff --git a/src/frontend/src/components/nav/PartCategoryTree.tsx b/src/frontend/src/components/nav/PartCategoryTree.tsx
index d10966e6ff..f1ef938517 100644
--- a/src/frontend/src/components/nav/PartCategoryTree.tsx
+++ b/src/frontend/src/components/nav/PartCategoryTree.tsx
@@ -1,12 +1,6 @@
import { t } from '@lingui/macro';
-import {
- Drawer,
- Group,
- LoadingOverlay,
- Stack,
- Text,
- useMantineTheme
-} from '@mantine/core';
+import { Drawer, Group, LoadingOverlay, Stack, Text } from '@mantine/core';
+import { useColorScheme } from '@mantine/hooks';
import { ReactTree, ThemeSettings } from '@naisutech/react-tree';
import {
IconChevronDown,
@@ -20,6 +14,7 @@ import { useNavigate } from 'react-router-dom';
import { api } from '../../App';
import { ApiEndpoints } from '../../enums/ApiEndpoints';
import { apiUrl } from '../../states/ApiState';
+import { theme, vars } from '../../theme';
import { StylishText } from '../items/StylishText';
export function PartCategoryTree({
@@ -80,57 +75,57 @@ export function PartCategoryTree({
return open ? : ;
}
- const mantineTheme = useMantineTheme();
+ const [prefferedColorScheme] = useColorScheme();
const themes: ThemeSettings = useMemo(() => {
const currentTheme =
- mantineTheme.colorScheme === 'dark'
- ? mantineTheme.colorScheme
- : mantineTheme.primaryColor;
+ prefferedColorScheme === 'dark'
+ ? vars.colors.defaultColor
+ : vars.colors.primaryColors;
return {
dark: {
text: {
- ...mantineTheme.fn.fontStyles()
+ ...vars.fontStyles()
},
nodes: {
height: '2.5rem',
folder: {
- selectedBgColor: mantineTheme.colors[currentTheme][4],
- hoverBgColor: mantineTheme.colors[currentTheme][6]
+ selectedBgColor: currentTheme[4],
+ hoverBgColor: currentTheme[6]
},
leaf: {
- selectedBgColor: mantineTheme.colors[currentTheme][4],
- hoverBgColor: mantineTheme.colors[currentTheme][6]
+ selectedBgColor: currentTheme[4],
+ hoverBgColor: currentTheme[6]
},
icons: {
- folderColor: mantineTheme.colors[currentTheme][3],
- leafColor: mantineTheme.colors[currentTheme][3]
+ folderColor: currentTheme[3],
+ leafColor: currentTheme[3]
}
}
},
light: {
text: {
- ...mantineTheme.fn.fontStyles()
+ ...theme.fn.fontStyles()
},
nodes: {
height: '2.5rem',
folder: {
- selectedBgColor: mantineTheme.colors[currentTheme][4],
- hoverBgColor: mantineTheme.colors[currentTheme][2]
+ selectedBgColor: currentTheme[4],
+ hoverBgColor: currentTheme[2]
},
leaf: {
- selectedBgColor: mantineTheme.colors[currentTheme][4],
- hoverBgColor: mantineTheme.colors[currentTheme][2]
+ selectedBgColor: currentTheme[4],
+ hoverBgColor: currentTheme[2]
},
icons: {
- folderColor: mantineTheme.colors[currentTheme][8],
- leafColor: mantineTheme.colors[currentTheme][6]
+ folderColor: currentTheme[8],
+ leafColor: currentTheme[6]
}
}
}
};
- }, [mantineTheme]);
+ }, [theme]);
return (
diff --git a/src/frontend/src/components/nav/StockLocationTree.tsx b/src/frontend/src/components/nav/StockLocationTree.tsx
index a16a7e679d..bc7bf5e7ac 100644
--- a/src/frontend/src/components/nav/StockLocationTree.tsx
+++ b/src/frontend/src/components/nav/StockLocationTree.tsx
@@ -51,7 +51,7 @@ export function StockLocationTree({
function renderNode({ node }: { node: any }) {
return (
{
diff --git a/src/frontend/src/components/settings/SettingItem.tsx b/src/frontend/src/components/settings/SettingItem.tsx
index afb446bf23..f87581841e 100644
--- a/src/frontend/src/components/settings/SettingItem.tsx
+++ b/src/frontend/src/components/settings/SettingItem.tsx
@@ -6,9 +6,9 @@ import {
Space,
Stack,
Switch,
- Text,
- useMantineTheme
+ Text
} from '@mantine/core';
+import { useColorScheme } from '@mantine/hooks';
import { showNotification } from '@mantine/notifications';
import { IconEdit } from '@tabler/icons-react';
import { useMemo } from 'react';
@@ -19,6 +19,7 @@ import { openModalApiForm } from '../../functions/forms';
import { apiUrl } from '../../states/ApiState';
import { SettingsStateProps } from '../../states/SettingsState';
import { Setting, SettingType } from '../../states/states';
+import { vars } from '../../theme';
import { ApiFormFieldType } from '../forms/fields/ApiFormField';
/**
@@ -165,14 +166,14 @@ export function SettingItem({
shaded: boolean;
onChange?: () => void;
}) {
- const theme = useMantineTheme();
+ const [prefferedColorScheme] = useColorScheme();
const style: Record = { paddingLeft: '8px' };
if (shaded) {
style['backgroundColor'] =
- theme.colorScheme === 'light'
- ? theme.colors.gray[1]
- : theme.colors.gray[9];
+ prefferedColorScheme === 'light'
+ ? vars.colors.gray[1]
+ : vars.colors.gray[9];
}
return (
diff --git a/src/frontend/src/components/widgets/FeedbackWidget.tsx b/src/frontend/src/components/widgets/FeedbackWidget.tsx
index e0065d3f59..617719e6b1 100644
--- a/src/frontend/src/components/widgets/FeedbackWidget.tsx
+++ b/src/frontend/src/components/widgets/FeedbackWidget.tsx
@@ -26,7 +26,7 @@ export default function FeedbackWidget() {
component="a"
href="https://github.com/inventree/InvenTree/discussions/5328"
variant="outline"
- leftIcon={}
+ leftSection={}
>
Provide Feedback
diff --git a/src/frontend/src/pages/Auth/Login.tsx b/src/frontend/src/pages/Auth/Login.tsx
index 12f2fcf2b5..28bfd21e71 100644
--- a/src/frontend/src/pages/Auth/Login.tsx
+++ b/src/frontend/src/pages/Auth/Login.tsx
@@ -70,7 +70,7 @@ export default function Login() {
) : (
<>
-
+
{loginMode ? (
Welcome, log in below
) : (
diff --git a/src/frontend/src/pages/Index/Settings/AccountSettings/SecurityContent.tsx b/src/frontend/src/pages/Index/Settings/AccountSettings/SecurityContent.tsx
index d927319fa5..89a3d4f208 100644
--- a/src/frontend/src/pages/Index/Settings/AccountSettings/SecurityContent.tsx
+++ b/src/frontend/src/pages/Index/Settings/AccountSettings/SecurityContent.tsx
@@ -168,7 +168,7 @@ function EmailContent({}: {}) {
}
+ leftSection={}
value={newEmailValue}
onChange={(event) => setNewEmailValue(event.currentTarget.value)}
/>
diff --git a/src/frontend/src/tables/Search.tsx b/src/frontend/src/tables/Search.tsx
index d3f3b9cd9c..33d6ac1fee 100644
--- a/src/frontend/src/tables/Search.tsx
+++ b/src/frontend/src/tables/Search.tsx
@@ -19,7 +19,7 @@ export function TableSearchInput({
return (
}
+ leftSection={}
placeholder={t`Search`}
onChange={(event) => setValue(event.target.value)}
rightSection={
diff --git a/src/frontend/src/tables/TableHoverCard.tsx b/src/frontend/src/tables/TableHoverCard.tsx
index 93961177d4..09df71ecee 100644
--- a/src/frontend/src/tables/TableHoverCard.tsx
+++ b/src/frontend/src/tables/TableHoverCard.tsx
@@ -38,7 +38,7 @@ export function TableHoverCard({
- {title}
+ {title}
{extra}
diff --git a/src/frontend/src/tables/part/PartTestTemplateTable.tsx b/src/frontend/src/tables/part/PartTestTemplateTable.tsx
index 1b6d2a71e7..b1f4841651 100644
--- a/src/frontend/src/tables/part/PartTestTemplateTable.tsx
+++ b/src/frontend/src/tables/part/PartTestTemplateTable.tsx
@@ -37,7 +37,7 @@ export default function PartTestTemplateTable({ partId }: { partId: number }) {
render: (record: any) => {
return (
{record.test_name}