2
0
mirror of https://github.com/inventree/InvenTree.git synced 2026-05-06 17:53:44 +00:00

feat(frontend): lib make Detaildrawer available (#11827)

* feat(frontend): lib make Detaildrawer available

Co-authored-by: Copilot <copilot@github.com>

* move StylishText to lib

Co-authored-by: Copilot <copilot@github.com>

* add changelog entry

Co-authored-by: Copilot <copilot@github.com>

* fix import path

---------

Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
Matthias Mair
2026-05-01 06:49:43 +02:00
committed by GitHub
parent 76da739c48
commit 6f56d44287
76 changed files with 121 additions and 93 deletions
+8
View File
@@ -2,6 +2,14 @@
This file contains historical changelog information for the InvenTree UI components library. This file contains historical changelog information for the InvenTree UI components library.
### 0.11.3 - April 2026
Exposes additional type definitions related to rendering drawers from tables:
- `DetailDrawer`
- `TableState`
Also exposes `StylishText`, which is required downstream for rendering the DetailDrawer component, and is used in a number of places within the InvenTree UI.
### 0.11.2 - April 2026 ### 0.11.2 - April 2026
Exposes additional type definitions related to tables and filters: Exposes additional type definitions related to tables and filters:
@@ -4,10 +4,11 @@ import { useCallback, useMemo } from 'react';
import { Link, Route, Routes, useNavigate, useParams } from 'react-router-dom'; import { Link, Route, Routes, useNavigate, useParams } from 'react-router-dom';
import type { To } from 'react-router-dom'; import type { To } from 'react-router-dom';
import type { UiSizeType } from '@lib/types/Core'; import type { UiSizeType } from '../../types/Core';
import { useShallow } from 'zustand/react/shallow'; import { useShallow } from 'zustand/react/shallow';
import { useLocalState } from '../../states/LocalState'; import { useLocalLibState } from '../../states/LocalLibState';
import { StylishText } from '../items/StylishText'; import { StylishText } from '../StylishText';
import * as classes from './DetailDrawer.css'; import * as classes from './DetailDrawer.css';
/** /**
@@ -38,7 +39,7 @@ function DetailDrawerComponent({
const content = renderContent(id); const content = renderContent(id);
const opened = useMemo(() => !!id && !!content, [id, content]); const opened = useMemo(() => !!id && !!content, [id, content]);
const [detailDrawerStack, addDetailDrawer] = useLocalState( const [detailDrawerStack, addDetailDrawer] = useLocalLibState(
useShallow((state) => [state.detailDrawerStack, state.addDetailDrawer]) useShallow((state) => [state.detailDrawerStack, state.addDetailDrawer])
); );
@@ -91,7 +92,7 @@ export function DetailDrawerLink({
to, to,
text text
}: Readonly<{ to: To; text: string }>) { }: Readonly<{ to: To; text: string }>) {
const addDetailDrawer = useLocalState( const addDetailDrawer = useLocalLibState(
useShallow((state) => state.addDetailDrawer) useShallow((state) => state.addDetailDrawer)
); );
+7
View File
@@ -132,6 +132,13 @@ export {
type TableStateExtraProps type TableStateExtraProps
} from './hooks/UseTable'; } from './hooks/UseTable';
export {
type DrawerProps,
DetailDrawer,
DetailDrawerLink
} from './components/nav/DetailDrawer';
export { StylishText } from './components/StylishText';
// State management // State management
export { export {
type StoredTableStateProps, type StoredTableStateProps,
+23
View File
@@ -0,0 +1,23 @@
import { create } from 'zustand';
import { persist } from 'zustand/middleware';
export const useLocalLibState = create<LocalLibStateProps>()(
persist(
(set, get) => ({
detailDrawerStack: 0,
addDetailDrawer: (value) => {
set({
detailDrawerStack:
value === false ? 0 : get().detailDrawerStack + value
});
}
}),
{
name: 'session-settings-inventreedb_lib'
}
)
);
export interface LocalLibStateProps {
detailDrawerStack: number;
addDetailDrawer: (value: number | false) => void;
}
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"name": "@inventreedb/ui", "name": "@inventreedb/ui",
"description": "UI components for the InvenTree project", "description": "UI components for the InvenTree project",
"version": "0.11.2", "version": "0.11.3",
"private": false, "private": false,
"type": "module", "type": "module",
"license": "MIT", "license": "MIT",
@@ -1,3 +1,4 @@
import { StylishText } from '@lib/components/StylishText';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelInformationDict } from '@lib/enums/ModelInformation'; import { ModelInformationDict } from '@lib/enums/ModelInformation';
import type { ModelType } from '@lib/enums/ModelType'; import type { ModelType } from '@lib/enums/ModelType';
@@ -11,7 +12,6 @@ import { type NavigateFunction, useNavigate } from 'react-router-dom';
import { api } from '../../App'; import { api } from '../../App';
import { extractErrorMessage } from '../../functions/api'; import { extractErrorMessage } from '../../functions/api';
import { useUserState } from '../../states/UserState'; import { useUserState } from '../../states/UserState';
import { StylishText } from '../items/StylishText';
import { BarcodeInput } from './BarcodeInput'; import { BarcodeInput } from './BarcodeInput';
export type BarcodeScanResult = { export type BarcodeScanResult = {
@@ -7,6 +7,7 @@ import FullCalendar from '@fullcalendar/react';
import { ActionButton } from '@lib/components/ActionButton'; import { ActionButton } from '@lib/components/ActionButton';
import { Boundary } from '@lib/components/Boundary'; import { Boundary } from '@lib/components/Boundary';
import { SearchInput } from '@lib/components/SearchInput'; import { SearchInput } from '@lib/components/SearchInput';
import { StylishText } from '@lib/components/StylishText';
import type { TableFilter } from '@lib/types/Filters'; import type { TableFilter } from '@lib/types/Filters';
import { t } from '@lingui/core/macro'; import { t } from '@lingui/core/macro';
import { import {
@@ -37,7 +38,6 @@ import {
import type { CalendarState } from '../../hooks/UseCalendar'; import type { CalendarState } from '../../hooks/UseCalendar';
import { useLocalState } from '../../states/LocalState'; import { useLocalState } from '../../states/LocalState';
import { FilterSelectDrawer } from '../../tables/FilterSelectDrawer'; import { FilterSelectDrawer } from '../../tables/FilterSelectDrawer';
import { StylishText } from '../items/StylishText';
export interface InvenTreeCalendarProps extends CalendarOptions { export interface InvenTreeCalendarProps extends CalendarOptions {
enableDownload?: boolean; enableDownload?: boolean;
@@ -17,9 +17,9 @@ import {
} from '@tabler/icons-react'; } from '@tabler/icons-react';
import { useMemo } from 'react'; import { useMemo } from 'react';
import { StylishText } from '@lib/components/StylishText';
import useInstanceName from '../../hooks/UseInstanceName'; import useInstanceName from '../../hooks/UseInstanceName';
import { useUserState } from '../../states/UserState'; import { useUserState } from '../../states/UserState';
import { StylishText } from '../items/StylishText';
/** /**
* A menu for editing the dashboard layout * A menu for editing the dashboard layout
@@ -15,8 +15,8 @@ import { useDebouncedValue } from '@mantine/hooks';
import { IconBackspace, IconLayoutGridAdd } from '@tabler/icons-react'; import { IconBackspace, IconLayoutGridAdd } from '@tabler/icons-react';
import { useMemo, useState } from 'react'; import { useMemo, useState } from 'react';
import { StylishText } from '@lib/components/StylishText';
import { useDashboardItems } from '../../hooks/UseDashboardItems'; import { useDashboardItems } from '../../hooks/UseDashboardItems';
import { StylishText } from '../items/StylishText';
/** /**
* Drawer allowing the user to add new widgets to the dashboard. * Drawer allowing the user to add new widgets to the dashboard.
@@ -1,8 +1,8 @@
import { t } from '@lingui/core/macro'; import { t } from '@lingui/core/macro';
import { Group } from '@mantine/core'; import { Group } from '@mantine/core';
import { StylishText } from '@lib/components/StylishText';
import { ColorToggle } from '../../items/ColorToggle'; import { ColorToggle } from '../../items/ColorToggle';
import { StylishText } from '../../items/StylishText';
import type { DashboardWidgetProps } from '../DashboardWidget'; import type { DashboardWidgetProps } from '../DashboardWidget';
function ColorToggleWidget(title: string) { function ColorToggleWidget(title: string) {
@@ -2,10 +2,10 @@ import { t } from '@lingui/core/macro';
import { Stack } from '@mantine/core'; import { Stack } from '@mantine/core';
import { useMemo } from 'react'; import { useMemo } from 'react';
import { StylishText } from '@lib/components/StylishText';
import { DocumentationLinks } from '../../../defaults/links'; import { DocumentationLinks } from '../../../defaults/links';
import { GettingStartedCarousel } from '../../items/GettingStartedCarousel'; import { GettingStartedCarousel } from '../../items/GettingStartedCarousel';
import type { MenuLinkItem } from '../../items/MenuLinks'; import type { MenuLinkItem } from '../../items/MenuLinks';
import { StylishText } from '../../items/StylishText';
export default function GetStartedWidget() { export default function GetStartedWidget() {
const docLinks: MenuLinkItem[] = useMemo(() => DocumentationLinks(), []); const docLinks: MenuLinkItem[] = useMemo(() => DocumentationLinks(), []);
@@ -1,8 +1,8 @@
import { t } from '@lingui/core/macro'; import { t } from '@lingui/core/macro';
import { Stack } from '@mantine/core'; import { Stack } from '@mantine/core';
import { StylishText } from '@lib/components/StylishText';
import { LanguageSelect } from '../../items/LanguageSelect'; import { LanguageSelect } from '../../items/LanguageSelect';
import { StylishText } from '../../items/StylishText';
import type { DashboardWidgetProps } from '../DashboardWidget'; import type { DashboardWidgetProps } from '../DashboardWidget';
function LanguageSelectWidget(title: string) { function LanguageSelectWidget(title: string) {
@@ -14,12 +14,12 @@ import { IconMailCheck } from '@tabler/icons-react';
import { useQuery } from '@tanstack/react-query'; import { useQuery } from '@tanstack/react-query';
import { useCallback, useMemo } from 'react'; import { useCallback, useMemo } from 'react';
import { StylishText } from '@lib/components/StylishText';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { apiUrl } from '@lib/functions/Api'; import { apiUrl } from '@lib/functions/Api';
import { api } from '../../../App'; import { api } from '../../../App';
import { formatDate } from '../../../defaults/formatters'; import { formatDate } from '../../../defaults/formatters';
import { useUserState } from '../../../states/UserState'; import { useUserState } from '../../../states/UserState';
import { StylishText } from '../../items/StylishText';
/** /**
* Render a link to an external news item * Render a link to an external news item
@@ -4,6 +4,7 @@ import { useQuery } from '@tanstack/react-query';
import { type ReactNode, useCallback, useMemo } from 'react'; import { type ReactNode, useCallback, useMemo } from 'react';
import { useNavigate } from 'react-router-dom'; import { useNavigate } from 'react-router-dom';
import { StylishText } from '@lib/components/StylishText';
import { ModelInformationDict } from '@lib/enums/ModelInformation'; import { ModelInformationDict } from '@lib/enums/ModelInformation';
import type { ModelType } from '@lib/enums/ModelType'; import type { ModelType } from '@lib/enums/ModelType';
import { apiUrl } from '@lib/functions/Api'; import { apiUrl } from '@lib/functions/Api';
@@ -13,7 +14,6 @@ import { useDocumentVisibility } from '@mantine/hooks';
import { useApi } from '../../../contexts/ApiContext'; import { useApi } from '../../../contexts/ApiContext';
import { InvenTreeIcon } from '../../../functions/icons'; import { InvenTreeIcon } from '../../../functions/icons';
import { useUserState } from '../../../states/UserState'; import { useUserState } from '../../../states/UserState';
import { StylishText } from '../../items/StylishText';
import type { DashboardWidgetProps } from '../DashboardWidget'; import type { DashboardWidgetProps } from '../DashboardWidget';
/** /**
@@ -19,6 +19,7 @@ import { useNavigate } from 'react-router-dom';
import { CopyButton } from '@lib/components/CopyButton'; import { CopyButton } from '@lib/components/CopyButton';
import { ProgressBar } from '@lib/components/ProgressBar'; import { ProgressBar } from '@lib/components/ProgressBar';
import { StylishText } from '@lib/components/StylishText';
import { YesNoButton } from '@lib/components/YesNoButton'; import { YesNoButton } from '@lib/components/YesNoButton';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType'; import { ModelType } from '@lib/enums/ModelType';
@@ -30,7 +31,6 @@ import { useApi } from '../../contexts/ApiContext';
import { formatDate, formatDecimal } from '../../defaults/formatters'; import { formatDate, formatDecimal } from '../../defaults/formatters';
import { InvenTreeIcon } from '../../functions/icons'; import { InvenTreeIcon } from '../../functions/icons';
import { useGlobalSettingsState } from '../../states/SettingsStates'; import { useGlobalSettingsState } from '../../states/SettingsStates';
import { StylishText } from '../items/StylishText';
import { getModelInfo } from '../render/ModelType'; import { getModelInfo } from '../render/ModelType';
import { StatusRenderer } from '../render/StatusRenderer'; import { StatusRenderer } from '../render/StatusRenderer';
@@ -22,6 +22,7 @@ import { modals } from '@mantine/modals';
import { useEffect, useMemo, useState } from 'react'; import { useEffect, useMemo, useState } from 'react';
import { ActionButton } from '@lib/components/ActionButton'; import { ActionButton } from '@lib/components/ActionButton';
import { StylishText } from '@lib/components/StylishText';
import type { UserRoles } from '@lib/enums/Roles'; import type { UserRoles } from '@lib/enums/Roles';
import { cancelEvent } from '@lib/functions/Events'; import { cancelEvent } from '@lib/functions/Events';
import { showNotification } from '@mantine/notifications'; import { showNotification } from '@mantine/notifications';
@@ -34,7 +35,6 @@ import { useUserState } from '../../states/UserState';
import { PartThumbTable } from '../../tables/part/PartThumbTable'; import { PartThumbTable } from '../../tables/part/PartThumbTable';
import { vars } from '../../theme'; import { vars } from '../../theme';
import { ApiImage } from '../images/ApiImage'; import { ApiImage } from '../images/ApiImage';
import { StylishText } from '../items/StylishText';
/** /**
* Props for detail image * Props for detail image
@@ -13,11 +13,11 @@ import {
import { IconCheck, IconExclamationCircle } from '@tabler/icons-react'; import { IconCheck, IconExclamationCircle } from '@tabler/icons-react';
import { type ReactNode, useMemo } from 'react'; import { type ReactNode, useMemo } from 'react';
import { StylishText } from '@lib/components/StylishText';
import { ModelType } from '@lib/enums/ModelType'; import { ModelType } from '@lib/enums/ModelType';
import type { ApiFormFieldSet } from '@lib/index'; import type { ApiFormFieldSet } from '@lib/index';
import { useImportSession } from '../../hooks/UseImportSession'; import { useImportSession } from '../../hooks/UseImportSession';
import useStatusCodes from '../../hooks/UseStatusCodes'; import useStatusCodes from '../../hooks/UseStatusCodes';
import { StylishText } from '../items/StylishText';
import ImporterDataSelector from './ImportDataSelector'; import ImporterDataSelector from './ImportDataSelector';
import ImporterColumnSelector from './ImporterColumnSelector'; import ImporterColumnSelector from './ImporterColumnSelector';
import ImporterStatus from './ImporterStatus'; import ImporterStatus from './ImporterStatus';
@@ -3,9 +3,9 @@ import { Center, Loader, Stack } from '@mantine/core';
import { useInterval } from '@mantine/hooks'; import { useInterval } from '@mantine/hooks';
import { useMemo } from 'react'; import { useMemo } from 'react';
import { StylishText } from '@lib/components/StylishText';
import { ModelType } from '@lib/enums/ModelType'; import { ModelType } from '@lib/enums/ModelType';
import type { ImportSessionState } from '../../hooks/UseImportSession'; import type { ImportSessionState } from '../../hooks/UseImportSession';
import { StylishText } from '../items/StylishText';
import { getStatusCodeLabel } from '../render/StatusRenderer'; import { getStatusCodeLabel } from '../render/StatusRenderer';
export default function ImporterStatus({ export default function ImporterStatus({
@@ -20,11 +20,11 @@ import {
} from '@tabler/icons-react'; } from '@tabler/icons-react';
import { type ReactNode, useMemo } from 'react'; import { type ReactNode, useMemo } from 'react';
import { StylishText } from '@lib/components/StylishText';
import type { ModelType } from '@lib/enums/ModelType'; import type { ModelType } from '@lib/enums/ModelType';
import { identifierString } from '@lib/functions/Conversion'; import { identifierString } from '@lib/functions/Conversion';
import { InvenTreeIcon } from '../../functions/icons'; import { InvenTreeIcon } from '../../functions/icons';
import { InvenTreeQRCode, QRCodeLink, QRCodeUnlink } from '../barcodes/QRCode'; import { InvenTreeQRCode, QRCodeLink, QRCodeUnlink } from '../barcodes/QRCode';
import { StylishText } from './StylishText';
export type ActionDropdownItem = { export type ActionDropdownItem = {
icon?: ReactNode; icon?: ReactNode;
@@ -2,9 +2,9 @@ import { Trans } from '@lingui/react/macro';
import { Carousel } from '@mantine/carousel'; import { Carousel } from '@mantine/carousel';
import { Anchor, Button, Paper, Text } from '@mantine/core'; import { Anchor, Button, Paper, Text } from '@mantine/core';
import { StylishText } from '@lib/components/StylishText';
import * as classes from './GettingStartedCarousel.css'; import * as classes from './GettingStartedCarousel.css';
import type { MenuLinkItem } from './MenuLinks'; import type { MenuLinkItem } from './MenuLinks';
import { StylishText } from './StylishText';
function StartedCard({ title, description, link }: Readonly<MenuLinkItem>) { function StartedCard({ title, description, link }: Readonly<MenuLinkItem>) {
return ( return (
@@ -3,7 +3,7 @@ import { Code, Flex, Group, Text } from '@mantine/core';
import { Link, type To } from 'react-router-dom'; import { Link, type To } from 'react-router-dom';
import { YesNoButton } from '@lib/components/YesNoButton'; import { YesNoButton } from '@lib/components/YesNoButton';
import { DetailDrawerLink } from '../nav/DetailDrawer'; import { DetailDrawerLink } from '@lib/components/nav/DetailDrawer';
export function InfoItem({ export function InfoItem({
name, name,
@@ -11,10 +11,10 @@ import {
import { type JSX, useMemo } from 'react'; import { type JSX, useMemo } from 'react';
import { useNavigate } from 'react-router-dom'; import { useNavigate } from 'react-router-dom';
import { StylishText } from '@lib/components/StylishText';
import { navigateToLink } from '@lib/functions/Navigation'; import { navigateToLink } from '@lib/functions/Navigation';
import type { InvenTreeIconType } from '@lib/types/Icons'; import type { InvenTreeIconType } from '@lib/types/Icons';
import { InvenTreeIcon } from '../../functions/icons'; import { InvenTreeIcon } from '../../functions/icons';
import { StylishText } from './StylishText';
export interface MenuLinkItem { export interface MenuLinkItem {
id: string; id: string;
@@ -14,13 +14,13 @@ import type { ContextModalProps } from '@mantine/modals';
import { useQuery } from '@tanstack/react-query'; import { useQuery } from '@tanstack/react-query';
import { CopyButton } from '@lib/components/CopyButton'; import { CopyButton } from '@lib/components/CopyButton';
import { StylishText } from '@lib/components/StylishText';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { apiUrl } from '@lib/functions/Api'; import { apiUrl } from '@lib/functions/Api';
import { useShallow } from 'zustand/react/shallow'; import { useShallow } from 'zustand/react/shallow';
import { api } from '../../App'; import { api } from '../../App';
import { generateUrl } from '../../functions/urls'; import { generateUrl } from '../../functions/urls';
import { useServerApiState } from '../../states/ServerApiState'; import { useServerApiState } from '../../states/ServerApiState';
import { StylishText } from '../items/StylishText';
import type { JSX } from 'react'; import type { JSX } from 'react';
import { OnlyStaff } from '../items/OnlyStaff'; import { OnlyStaff } from '../items/OnlyStaff';
@@ -3,6 +3,7 @@ import { Container, Drawer, Flex, Group, Space } from '@mantine/core';
import { useViewportSize } from '@mantine/hooks'; import { useViewportSize } from '@mantine/hooks';
import { useEffect, useMemo, useRef, useState } from 'react'; import { useEffect, useMemo, useRef, useState } from 'react';
import { StylishText } from '@lib/components/StylishText';
import { ModelType } from '@lib/enums/ModelType'; import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles'; import { UserRoles } from '@lib/enums/Roles';
import { AboutLinks, DocumentationLinks } from '../../defaults/links'; import { AboutLinks, DocumentationLinks } from '../../defaults/links';
@@ -12,7 +13,6 @@ import { useGlobalSettingsState } from '../../states/SettingsStates';
import { useUserState } from '../../states/UserState'; import { useUserState } from '../../states/UserState';
import { InvenTreeLogo } from '../items/InvenTreeLogo'; import { InvenTreeLogo } from '../items/InvenTreeLogo';
import { type MenuLinkItem, MenuLinks } from '../items/MenuLinks'; import { type MenuLinkItem, MenuLinks } from '../items/MenuLinks';
import { StylishText } from '../items/StylishText';
// TODO @matmair #1: implement plugin loading and menu item generation see #5269 // TODO @matmair #1: implement plugin loading and menu item generation see #5269
const plugins: MenuLinkItem[] = []; const plugins: MenuLinkItem[] = [];
@@ -23,6 +23,7 @@ import { useQuery } from '@tanstack/react-query';
import { useCallback, useMemo } from 'react'; import { useCallback, useMemo } from 'react';
import { useNavigate } from 'react-router-dom'; import { useNavigate } from 'react-router-dom';
import { StylishText } from '@lib/components/StylishText';
import type { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import type { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import type { ModelType } from '@lib/enums/ModelType'; import type { ModelType } from '@lib/enums/ModelType';
import { apiUrl } from '@lib/functions/Api'; import { apiUrl } from '@lib/functions/Api';
@@ -34,7 +35,6 @@ import {
import { t } from '@lingui/core/macro'; import { t } from '@lingui/core/macro';
import { useApi } from '../../contexts/ApiContext'; import { useApi } from '../../contexts/ApiContext';
import { ApiIcon } from '../items/ApiIcon'; import { ApiIcon } from '../items/ApiIcon';
import { StylishText } from '../items/StylishText';
/* /*
* A generic navigation tree component. * A generic navigation tree component.
@@ -24,6 +24,7 @@ import { useCallback, useMemo } from 'react';
import { useNavigate } from 'react-router-dom'; import { useNavigate } from 'react-router-dom';
import { Boundary } from '@lib/components/Boundary'; import { Boundary } from '@lib/components/Boundary';
import { StylishText } from '@lib/components/StylishText';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelInformationDict } from '@lib/enums/ModelInformation'; import { ModelInformationDict } from '@lib/enums/ModelInformation';
import type { ModelType } from '@lib/enums/ModelType'; import type { ModelType } from '@lib/enums/ModelType';
@@ -33,7 +34,6 @@ import { getBaseUrl } from '@lib/functions/Navigation';
import { navigateToLink } from '@lib/functions/Navigation'; import { navigateToLink } from '@lib/functions/Navigation';
import { api } from '../../App'; import { api } from '../../App';
import { useUserState } from '../../states/UserState'; import { useUserState } from '../../states/UserState';
import { StylishText } from '../items/StylishText';
/** /**
* Render a single notification entry in the drawer * Render a single notification entry in the drawer
@@ -1,11 +1,11 @@
import { Group, Paper, Space, Stack, Text } from '@mantine/core'; import { Group, Paper, Space, Stack, Text } from '@mantine/core';
import { useHotkeys } from '@mantine/hooks'; import { useHotkeys } from '@mantine/hooks';
import { StylishText } from '@lib/components/StylishText';
import { shortenString } from '@lib/functions/String'; import { shortenString } from '@lib/functions/String';
import { Fragment, type ReactNode, useMemo } from 'react'; import { Fragment, type ReactNode, useMemo } from 'react';
import { useUserSettingsState } from '../../states/SettingsStates'; import { useUserSettingsState } from '../../states/SettingsStates';
import { ApiImage } from '../images/ApiImage'; import { ApiImage } from '../images/ApiImage';
import { StylishText } from '../items/StylishText';
import { type Breadcrumb, BreadcrumbList } from './BreadcrumbList'; import { type Breadcrumb, BreadcrumbList } from './BreadcrumbList';
import PageTitle from './PageTitle'; import PageTitle from './PageTitle';
@@ -3,8 +3,8 @@ import { Group, SegmentedControl, Stack, Text } from '@mantine/core';
import type { ReactNode } from 'react'; import type { ReactNode } from 'react';
import { useNavigate } from 'react-router-dom'; import { useNavigate } from 'react-router-dom';
import { StylishText } from '@lib/components/StylishText';
import { useUserState } from '../../states/UserState'; import { useUserState } from '../../states/UserState';
import { StylishText } from '../items/StylishText';
interface SettingsHeaderInterface { interface SettingsHeaderInterface {
label: string; label: string;
@@ -33,6 +33,7 @@ import {
} from 'react-router-dom'; } from 'react-router-dom';
import { Boundary } from '@lib/components/Boundary'; import { Boundary } from '@lib/components/Boundary';
import { StylishText } from '@lib/components/StylishText';
import type { ModelType, PluginPanelKey } from '@lib/enums/ModelType'; import type { ModelType, PluginPanelKey } from '@lib/enums/ModelType';
import { identifierString } from '@lib/functions/Conversion'; import { identifierString } from '@lib/functions/Conversion';
import { cancelEvent } from '@lib/functions/Events'; import { cancelEvent } from '@lib/functions/Events';
@@ -45,7 +46,6 @@ import { generateUrl } from '../../functions/urls';
import { usePluginPanels } from '../../hooks/UsePluginPanels'; import { usePluginPanels } from '../../hooks/UsePluginPanels';
import { useLocalState } from '../../states/LocalState'; import { useLocalState } from '../../states/LocalState';
import { vars } from '../../theme'; import { vars } from '../../theme';
import { StylishText } from '../items/StylishText';
import type { PanelGroupType, PanelType } from '../panels/Panel'; import type { PanelGroupType, PanelType } from '../panels/Panel';
import * as classes from './PanelGroup.css'; import * as classes from './PanelGroup.css';
@@ -4,10 +4,10 @@ import { IconExclamationCircle } from '@tabler/icons-react';
import { useMemo } from 'react'; import { useMemo } from 'react';
import { useParams } from 'react-router-dom'; import { useParams } from 'react-router-dom';
import { StylishText } from '@lib/components/StylishText';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { useInstance } from '../../hooks/UseInstance'; import { useInstance } from '../../hooks/UseInstance';
import { InfoItem } from '../items/InfoItem'; import { InfoItem } from '../items/InfoItem';
import { StylishText } from '../items/StylishText';
import { PluginSettingList } from '../settings/SettingList'; import { PluginSettingList } from '../settings/SettingList';
import type { PluginInterface } from './PluginInterface'; import type { PluginInterface } from './PluginInterface';
import PluginSettingsPanel from './PluginSettingsPanel'; import PluginSettingsPanel from './PluginSettingsPanel';
@@ -1,6 +1,6 @@
import { Paper, Stack, Text } from '@mantine/core'; import { Paper, Stack, Text } from '@mantine/core';
import { StylishText } from '../items/StylishText'; import { StylishText } from '@lib/components/StylishText';
export function FactItem({ export function FactItem({
title, title,
@@ -1,4 +1,5 @@
import { Boundary } from '@lib/components/Boundary'; import { Boundary } from '@lib/components/Boundary';
import { StylishText } from '@lib/components/StylishText';
import { t } from '@lingui/core/macro'; import { t } from '@lingui/core/macro';
import { import {
ActionIcon, ActionIcon,
@@ -17,7 +18,6 @@ import {
IconCircleCheck IconCircleCheck
} from '@tabler/icons-react'; } from '@tabler/icons-react';
import { type ReactNode, useCallback, useMemo } from 'react'; import { type ReactNode, useCallback, useMemo } from 'react';
import { StylishText } from '../items/StylishText';
/** /**
* Progress stepper displayed at the top of the wizard drawer. * Progress stepper displayed at the top of the wizard drawer.
+1 -1
View File
@@ -2,6 +2,7 @@ import { t } from '@lingui/core/macro';
import { Trans } from '@lingui/react/macro'; import { Trans } from '@lingui/react/macro';
import { openContextModal } from '@mantine/modals'; import { openContextModal } from '@mantine/modals';
import { StylishText } from '@lib/components/StylishText';
import { UserRoles } from '@lib/enums/Roles'; import { UserRoles } from '@lib/enums/Roles';
import type { SettingsStateProps } from '@lib/types/Settings'; import type { SettingsStateProps } from '@lib/types/Settings';
import type { UserStateProps } from '@lib/types/User'; import type { UserStateProps } from '@lib/types/User';
@@ -15,7 +16,6 @@ import {
} from '@tabler/icons-react'; } from '@tabler/icons-react';
import type { ReactNode } from 'react'; import type { ReactNode } from 'react';
import type { MenuLinkItem } from '../components/items/MenuLinks'; import type { MenuLinkItem } from '../components/items/MenuLinks';
import { StylishText } from '../components/items/StylishText';
type NavTab = { type NavTab = {
name: string; name: string;
@@ -37,6 +37,7 @@ import RemoveRowButton from '../components/buttons/RemoveRowButton';
import { StandaloneField } from '../components/forms/StandaloneField'; import { StandaloneField } from '../components/forms/StandaloneField';
import { ProgressBar } from '@lib/components/ProgressBar'; import { ProgressBar } from '@lib/components/ProgressBar';
import { StylishText } from '@lib/components/StylishText';
import { apiUrl } from '@lib/functions/Api'; import { apiUrl } from '@lib/functions/Api';
import { toNumber } from '@lib/functions/Conversion'; import { toNumber } from '@lib/functions/Conversion';
import type { import type {
@@ -48,7 +49,6 @@ import {
type TableFieldRowProps type TableFieldRowProps
} from '../components/forms/fields/TableField'; } from '../components/forms/fields/TableField';
import { Thumbnail } from '../components/images/Thumbnail'; import { Thumbnail } from '../components/images/Thumbnail';
import { StylishText } from '../components/items/StylishText';
import { getStatusCodeOptions } from '../components/render/StatusRenderer'; import { getStatusCodeOptions } from '../components/render/StatusRenderer';
import { InvenTreeIcon } from '../functions/icons'; import { InvenTreeIcon } from '../functions/icons';
import { useCreateApiFormModal } from '../hooks/UseForm'; import { useCreateApiFormModal } from '../hooks/UseForm';
+1 -1
View File
@@ -31,6 +31,7 @@ import { api } from '../App';
import RemoveRowButton from '../components/buttons/RemoveRowButton'; import RemoveRowButton from '../components/buttons/RemoveRowButton';
import { StandaloneField } from '../components/forms/StandaloneField'; import { StandaloneField } from '../components/forms/StandaloneField';
import { StylishText } from '@lib/components/StylishText';
import { apiUrl } from '@lib/functions/Api'; import { apiUrl } from '@lib/functions/Api';
import { getDetailUrl } from '@lib/functions/Navigation'; import { getDetailUrl } from '@lib/functions/Navigation';
import type { import type {
@@ -45,7 +46,6 @@ import {
type TableFieldRowProps type TableFieldRowProps
} from '../components/forms/fields/TableField'; } from '../components/forms/fields/TableField';
import { Thumbnail } from '../components/images/Thumbnail'; import { Thumbnail } from '../components/images/Thumbnail';
import { StylishText } from '../components/items/StylishText';
import { StatusRenderer } from '../components/render/StatusRenderer'; import { StatusRenderer } from '../components/render/StatusRenderer';
import { RenderStockLocation } from '../components/render/Stock'; import { RenderStockLocation } from '../components/render/Stock';
import { InvenTreeIcon } from '../functions/icons'; import { InvenTreeIcon } from '../functions/icons';
+1 -1
View File
@@ -2,8 +2,8 @@ import { Modal } from '@mantine/core';
import { useDisclosure } from '@mantine/hooks'; import { useDisclosure } from '@mantine/hooks';
import { useCallback } from 'react'; import { useCallback } from 'react';
import { StylishText } from '@lib/components/StylishText';
import type { UseModalProps, UseModalReturn } from '@lib/types/Modals'; import type { UseModalProps, UseModalReturn } from '@lib/types/Modals';
import { StylishText } from '../components/items/StylishText';
import { useUserSettingsState } from '../states/SettingsStates'; import { useUserSettingsState } from '../states/SettingsStates';
export function useModal(props: UseModalProps): UseModalReturn { export function useModal(props: UseModalProps): UseModalReturn {
@@ -1,3 +1,4 @@
import { StylishText } from '@lib/components/StylishText';
import { t } from '@lingui/core/macro'; import { t } from '@lingui/core/macro';
import { Trans } from '@lingui/react/macro'; import { Trans } from '@lingui/react/macro';
import { import {
@@ -11,7 +12,6 @@ import {
} from '@mantine/core'; } from '@mantine/core';
import { useForm } from '@mantine/form'; import { useForm } from '@mantine/form';
import { useNavigate } from 'react-router-dom'; import { useNavigate } from 'react-router-dom';
import { StylishText } from '../../components/items/StylishText';
import { handleChangePassword } from '../../functions/auth'; import { handleChangePassword } from '../../functions/auth';
import { useUserState } from '../../states/UserState'; import { useUserState } from '../../states/UserState';
import { Wrapper } from './Layout'; import { Wrapper } from './Layout';
+1 -1
View File
@@ -1,3 +1,4 @@
import { StylishText } from '@lib/components/StylishText';
import { Trans } from '@lingui/react/macro'; import { Trans } from '@lingui/react/macro';
import { import {
Button, Button,
@@ -11,7 +12,6 @@ import {
} from '@mantine/core'; } from '@mantine/core';
import { Outlet, useNavigate } from 'react-router-dom'; import { Outlet, useNavigate } from 'react-router-dom';
import SplashScreen from '../../components/SplashScreen'; import SplashScreen from '../../components/SplashScreen';
import { StylishText } from '../../components/items/StylishText';
import { doLogout } from '../../functions/auth'; import { doLogout } from '../../functions/auth';
export default function LoginLayoutComponent() { export default function LoginLayoutComponent() {
+1 -1
View File
@@ -19,6 +19,7 @@ import {
} from '@tabler/icons-react'; } from '@tabler/icons-react';
import { useCallback, useEffect, useMemo, useState } from 'react'; import { useCallback, useEffect, useMemo, useState } from 'react';
import { StylishText } from '@lib/components/StylishText';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelInformationDict } from '@lib/enums/ModelInformation'; import { ModelInformationDict } from '@lib/enums/ModelInformation';
import type { ModelType } from '@lib/enums/ModelType'; import type { ModelType } from '@lib/enums/ModelType';
@@ -29,7 +30,6 @@ import dayjs from 'dayjs';
import { api } from '../../App'; import { api } from '../../App';
import { BarcodeInput } from '../../components/barcodes/BarcodeInput'; import { BarcodeInput } from '../../components/barcodes/BarcodeInput';
import type { BarcodeScanItem } from '../../components/barcodes/BarcodeScanItem'; import type { BarcodeScanItem } from '../../components/barcodes/BarcodeScanItem';
import { StylishText } from '../../components/items/StylishText';
import PageTitle from '../../components/nav/PageTitle'; import PageTitle from '../../components/nav/PageTitle';
import { showApiErrorMessage } from '../../functions/notifications'; import { showApiErrorMessage } from '../../functions/notifications';
import BarcodeScanTable from '../../tables/general/BarcodeScanTable'; import BarcodeScanTable from '../../tables/general/BarcodeScanTable';
@@ -5,13 +5,13 @@ import { IconEdit, IconKey, IconUser } from '@tabler/icons-react';
import { useMemo } from 'react'; import { useMemo } from 'react';
import { ActionButton } from '@lib/components/ActionButton'; import { ActionButton } from '@lib/components/ActionButton';
import { StylishText } from '@lib/components/StylishText';
import { YesNoUndefinedButton } from '@lib/components/YesNoButton'; import { YesNoUndefinedButton } from '@lib/components/YesNoButton';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import type { ApiFormFieldSet } from '@lib/types/Forms'; import type { ApiFormFieldSet } from '@lib/types/Forms';
import { useNavigate } from 'react-router-dom'; import { useNavigate } from 'react-router-dom';
import { useShallow } from 'zustand/react/shallow'; import { useShallow } from 'zustand/react/shallow';
import { ActionDropdown } from '../../../../components/items/ActionDropdown'; import { ActionDropdown } from '../../../../components/items/ActionDropdown';
import { StylishText } from '../../../../components/items/StylishText';
import { useEditApiFormModal } from '../../../../hooks/UseForm'; import { useEditApiFormModal } from '../../../../hooks/UseForm';
import { useUserState } from '../../../../states/UserState'; import { useUserState } from '../../../../states/UserState';
@@ -1,5 +1,6 @@
import { create } from '@github/webauthn-json/browser-ponyfill'; import { create } from '@github/webauthn-json/browser-ponyfill';
import { CopyButton } from '@lib/components/CopyButton'; import { CopyButton } from '@lib/components/CopyButton';
import { StylishText } from '@lib/components/StylishText';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { apiUrl } from '@lib/functions/Api'; import { apiUrl } from '@lib/functions/Api';
import { FlowEnum } from '@lib/types/Auth'; import { FlowEnum } from '@lib/types/Auth';
@@ -32,7 +33,6 @@ import { useCallback, useEffect, useMemo, useState } from 'react';
import { useNavigate } from 'react-router-dom'; import { useNavigate } from 'react-router-dom';
import { useShallow } from 'zustand/react/shallow'; import { useShallow } from 'zustand/react/shallow';
import { api, queryClient } from '../../../../App'; import { api, queryClient } from '../../../../App';
import { StylishText } from '../../../../components/items/StylishText';
import { authApi, doLogout } from '../../../../functions/auth'; import { authApi, doLogout } from '../../../../functions/auth';
import { useServerApiState } from '../../../../states/ServerApiState'; import { useServerApiState } from '../../../../states/ServerApiState';
import { useGlobalSettingsState } from '../../../../states/SettingsStates'; import { useGlobalSettingsState } from '../../../../states/SettingsStates';
@@ -1,4 +1,5 @@
import { DefaultFallback } from '@lib/components/Boundary'; import { DefaultFallback } from '@lib/components/Boundary';
import { StylishText } from '@lib/components/StylishText';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { apiUrl } from '@lib/functions/Api'; import { apiUrl } from '@lib/functions/Api';
import type { AuthConfig, AuthProvider } from '@lib/types/Auth'; import type { AuthConfig, AuthProvider } from '@lib/types/Auth';
@@ -31,7 +32,6 @@ import {
import { useQuery } from '@tanstack/react-query'; import { useQuery } from '@tanstack/react-query';
import { useCallback, useMemo, useState } from 'react'; import { useCallback, useMemo, useState } from 'react';
import { useShallow } from 'zustand/react/shallow'; import { useShallow } from 'zustand/react/shallow';
import { StylishText } from '../../../../components/items/StylishText';
import { ProviderLogin, authApi } from '../../../../functions/auth'; import { ProviderLogin, authApi } from '../../../../functions/auth';
import { useServerApiState } from '../../../../states/ServerApiState'; import { useServerApiState } from '../../../../states/ServerApiState';
import { useUserState } from '../../../../states/UserState'; import { useUserState } from '../../../../states/UserState';
@@ -17,10 +17,10 @@ import {
import { IconRestore } from '@tabler/icons-react'; import { IconRestore } from '@tabler/icons-react';
import { useState } from 'react'; import { useState } from 'react';
import { StylishText } from '@lib/components/StylishText';
import { useShallow } from 'zustand/react/shallow'; import { useShallow } from 'zustand/react/shallow';
import { ColorToggle } from '../../../../components/items/ColorToggle'; import { ColorToggle } from '../../../../components/items/ColorToggle';
import { LanguageSelect } from '../../../../components/items/LanguageSelect'; import { LanguageSelect } from '../../../../components/items/LanguageSelect';
import { StylishText } from '../../../../components/items/StylishText';
import { SizeMarks } from '../../../../defaults/defaults'; import { SizeMarks } from '../../../../defaults/defaults';
import { IS_DEV } from '../../../../main'; import { IS_DEV } from '../../../../main';
import { useLocalState } from '../../../../states/LocalState'; import { useLocalState } from '../../../../states/LocalState';
@@ -1,7 +1,7 @@
import { t } from '@lingui/core/macro'; import { t } from '@lingui/core/macro';
import { Accordion } from '@mantine/core'; import { Accordion } from '@mantine/core';
import { StylishText } from '../../../../components/items/StylishText'; import { StylishText } from '@lib/components/StylishText';
import { ConfigValueList } from '../../../../components/settings/ConfigValueList'; import { ConfigValueList } from '../../../../components/settings/ConfigValueList';
import { EmailTable } from '../../../../tables/settings/EmailTable'; import { EmailTable } from '../../../../tables/settings/EmailTable';
@@ -1,9 +1,9 @@
import { StylishText } from '@lib/components/StylishText';
import { t } from '@lingui/core/macro'; import { t } from '@lingui/core/macro';
import { Trans } from '@lingui/react/macro'; import { Trans } from '@lingui/react/macro';
import { Accordion, Alert, SimpleGrid, Stack, Text } from '@mantine/core'; import { Accordion, Alert, SimpleGrid, Stack, Text } from '@mantine/core';
import { type JSX, useMemo, useState } from 'react'; import { type JSX, useMemo, useState } from 'react';
import { useShallow } from 'zustand/react/shallow'; import { useShallow } from 'zustand/react/shallow';
import { StylishText } from '../../../../components/items/StylishText';
import { import {
type ExtendedAlertInfo, type ExtendedAlertInfo,
ServerAlert, ServerAlert,
@@ -13,10 +13,10 @@ import { IconInfoCircle, IconRefresh } from '@tabler/icons-react';
import { useQuery } from '@tanstack/react-query'; import { useQuery } from '@tanstack/react-query';
import { useMemo } from 'react'; import { useMemo } from 'react';
import { StylishText } from '@lib/components/StylishText';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { apiUrl } from '@lib/functions/Api'; import { apiUrl } from '@lib/functions/Api';
import { api } from '../../../../App'; import { api } from '../../../../App';
import { StylishText } from '../../../../components/items/StylishText';
import { GlobalSettingList } from '../../../../components/settings/SettingList'; import { GlobalSettingList } from '../../../../components/settings/SettingList';
import { MachineListTable } from '../../../../tables/machine/MachineListTable'; import { MachineListTable } from '../../../../tables/machine/MachineListTable';
import { import {
@@ -1,7 +1,7 @@
import { t } from '@lingui/core/macro'; import { t } from '@lingui/core/macro';
import { Accordion } from '@mantine/core'; import { Accordion } from '@mantine/core';
import { StylishText } from '../../../../components/items/StylishText'; import { StylishText } from '@lib/components/StylishText';
import ParameterTemplateTable from '../../../../tables/general/ParameterTemplateTable'; import ParameterTemplateTable from '../../../../tables/general/ParameterTemplateTable';
import SelectionListTable from '../../../../tables/part/SelectionListTable'; import SelectionListTable from '../../../../tables/part/SelectionListTable';
@@ -4,8 +4,8 @@ import { Accordion, Alert, Stack } from '@mantine/core';
import { IconInfoCircle } from '@tabler/icons-react'; import { IconInfoCircle } from '@tabler/icons-react';
import { lazy } from 'react'; import { lazy } from 'react';
import { StylishText } from '@lib/components/StylishText';
import { useShallow } from 'zustand/react/shallow'; import { useShallow } from 'zustand/react/shallow';
import { StylishText } from '../../../../components/items/StylishText';
import { GlobalSettingList } from '../../../../components/settings/SettingList'; import { GlobalSettingList } from '../../../../components/settings/SettingList';
import { Loadable } from '../../../../functions/loading'; import { Loadable } from '../../../../functions/loading';
import { useServerApiState } from '../../../../states/ServerApiState'; import { useServerApiState } from '../../../../states/ServerApiState';
@@ -2,9 +2,9 @@ import { t } from '@lingui/core/macro';
import { Accordion, Alert, Divider, Stack, Text } from '@mantine/core'; import { Accordion, Alert, Divider, Stack, Text } from '@mantine/core';
import { lazy } from 'react'; import { lazy } from 'react';
import { StylishText } from '@lib/components/StylishText';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { IconCircleCheck, IconExclamationCircle } from '@tabler/icons-react'; import { IconCircleCheck, IconExclamationCircle } from '@tabler/icons-react';
import { StylishText } from '../../../../components/items/StylishText';
import { errorCodeLink } from '../../../../components/nav/Alerts'; import { errorCodeLink } from '../../../../components/nav/Alerts';
import { FactCollection } from '../../../../components/settings/FactCollection'; import { FactCollection } from '../../../../components/settings/FactCollection';
import { Loadable } from '../../../../functions/loading'; import { Loadable } from '../../../../functions/loading';
@@ -2,10 +2,10 @@ import { t } from '@lingui/core/macro';
import { Accordion, Stack } from '@mantine/core'; import { Accordion, Stack } from '@mantine/core';
import { useMemo } from 'react'; import { useMemo } from 'react';
import { StylishText } from '@lib/components/StylishText';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { apiUrl } from '@lib/functions/Api'; import { apiUrl } from '@lib/functions/Api';
import useTable from '@lib/hooks/UseTable'; import useTable from '@lib/hooks/UseTable';
import { StylishText } from '../../../../components/items/StylishText';
import { BooleanColumn } from '../../../../tables/ColumnRenderers'; import { BooleanColumn } from '../../../../tables/ColumnRenderers';
import { InvenTreeTable } from '../../../../tables/InvenTreeTable'; import { InvenTreeTable } from '../../../../tables/InvenTreeTable';
import CustomUnitsTable from '../../../../tables/settings/CustomUnitsTable'; import CustomUnitsTable from '../../../../tables/settings/CustomUnitsTable';
@@ -1,7 +1,7 @@
import { t } from '@lingui/core/macro'; import { t } from '@lingui/core/macro';
import { Accordion } from '@mantine/core'; import { Accordion } from '@mantine/core';
import { StylishText } from '../../../../components/items/StylishText'; import { StylishText } from '@lib/components/StylishText';
import { GlobalSettingList } from '../../../../components/settings/SettingList'; import { GlobalSettingList } from '../../../../components/settings/SettingList';
import { ApiTokenTable } from '../../../../tables/settings/ApiTokenTable'; import { ApiTokenTable } from '../../../../tables/settings/ApiTokenTable';
import { GroupTable } from '../../../../tables/settings/GroupTable'; import { GroupTable } from '../../../../tables/settings/GroupTable';
+1 -1
View File
@@ -1,3 +1,4 @@
import { StylishText } from '@lib/components/StylishText';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType'; import { ModelType } from '@lib/enums/ModelType';
import { t } from '@lingui/core/macro'; import { t } from '@lingui/core/macro';
@@ -12,7 +13,6 @@ import {
import { ItemDetailsGrid } from '../../components/details/ItemDetails'; import { ItemDetailsGrid } from '../../components/details/ItemDetails';
import {} from '../../components/items/ActionDropdown'; import {} from '../../components/items/ActionDropdown';
import { RoleTable, type RuleSet } from '../../components/items/RoleTable'; import { RoleTable, type RuleSet } from '../../components/items/RoleTable';
import { StylishText } from '../../components/items/StylishText';
import InstanceDetail from '../../components/nav/InstanceDetail'; import InstanceDetail from '../../components/nav/InstanceDetail';
import { PageDetail } from '../../components/nav/PageDetail'; import { PageDetail } from '../../components/nav/PageDetail';
import type { PanelType } from '../../components/panels/Panel'; import type { PanelType } from '../../components/panels/Panel';
@@ -1,8 +1,8 @@
import { t } from '@lingui/core/macro'; import { t } from '@lingui/core/macro';
import { Accordion } from '@mantine/core'; import { Accordion } from '@mantine/core';
import { StylishText } from '@lib/components/StylishText';
import { UserRoles } from '@lib/enums/Roles'; import { UserRoles } from '@lib/enums/Roles';
import { StylishText } from '../../components/items/StylishText';
import { useUserState } from '../../states/UserState'; import { useUserState } from '../../states/UserState';
import PartBuildAllocationsTable from '../../tables/part/PartBuildAllocationsTable'; import PartBuildAllocationsTable from '../../tables/part/PartBuildAllocationsTable';
import PartSalesAllocationsTable from '../../tables/part/PartSalesAllocationsTable'; import PartSalesAllocationsTable from '../../tables/part/PartSalesAllocationsTable';
@@ -1,4 +1,5 @@
import { RowDeleteAction, RowEditAction } from '@lib/components/RowActions'; import { RowDeleteAction, RowEditAction } from '@lib/components/RowActions';
import { StylishText } from '@lib/components/StylishText';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { UserRoles } from '@lib/enums/Roles'; import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api'; import { apiUrl } from '@lib/functions/Api';
@@ -18,7 +19,6 @@ import {
} from '@mantine/core'; } from '@mantine/core';
import dayjs from 'dayjs'; import dayjs from 'dayjs';
import { useCallback, useMemo, useState } from 'react'; import { useCallback, useMemo, useState } from 'react';
import { StylishText } from '../../components/items/StylishText';
import { formatDate, formatPriceRange } from '../../defaults/formatters'; import { formatDate, formatPriceRange } from '../../defaults/formatters';
import { partStocktakeFields } from '../../forms/PartForms'; import { partStocktakeFields } from '../../forms/PartForms';
import { import {
@@ -1,7 +1,7 @@
import { t } from '@lingui/core/macro'; import { t } from '@lingui/core/macro';
import { Accordion } from '@mantine/core'; import { Accordion } from '@mantine/core';
import { StylishText } from '../../components/items/StylishText'; import { StylishText } from '@lib/components/StylishText';
import { ManufacturerPartTable } from '../../tables/purchasing/ManufacturerPartTable'; import { ManufacturerPartTable } from '../../tables/purchasing/ManufacturerPartTable';
import { SupplierPartTable } from '../../tables/purchasing/SupplierPartTable'; import { SupplierPartTable } from '../../tables/purchasing/SupplierPartTable';
@@ -14,7 +14,7 @@ import {
import { IconAlertCircle, IconExclamationCircle } from '@tabler/icons-react'; import { IconAlertCircle, IconExclamationCircle } from '@tabler/icons-react';
import type { ReactNode } from 'react'; import type { ReactNode } from 'react';
import { StylishText } from '../../../components/items/StylishText'; import { StylishText } from '@lib/components/StylishText';
import type { panelOptions } from '../PartPricingPanel'; import type { panelOptions } from '../PartPricingPanel';
function AccordionControl(props: AccordionControlProps) { function AccordionControl(props: AccordionControlProps) {
@@ -4,6 +4,7 @@ import { IconInfoCircle, IconList, IconPackages } from '@tabler/icons-react';
import { type ReactNode, useMemo } from 'react'; import { type ReactNode, useMemo } from 'react';
import { useParams } from 'react-router-dom'; import { useParams } from 'react-router-dom';
import { StylishText } from '@lib/components/StylishText';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType'; import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles'; import { UserRoles } from '@lib/enums/Roles';
@@ -25,7 +26,6 @@ import {
HoldItemAction, HoldItemAction,
OptionsActionDropdown OptionsActionDropdown
} from '../../components/items/ActionDropdown'; } from '../../components/items/ActionDropdown';
import { StylishText } from '../../components/items/StylishText';
import InstanceDetail from '../../components/nav/InstanceDetail'; import InstanceDetail from '../../components/nav/InstanceDetail';
import { PageDetail } from '../../components/nav/PageDetail'; import { PageDetail } from '../../components/nav/PageDetail';
import AttachmentPanel from '../../components/panels/AttachmentPanel'; import AttachmentPanel from '../../components/panels/AttachmentPanel';
@@ -4,6 +4,7 @@ import { IconInfoCircle, IconList } from '@tabler/icons-react';
import { type ReactNode, useMemo } from 'react'; import { type ReactNode, useMemo } from 'react';
import { useParams } from 'react-router-dom'; import { useParams } from 'react-router-dom';
import { StylishText } from '@lib/components/StylishText';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType'; import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles'; import { UserRoles } from '@lib/enums/Roles';
@@ -25,7 +26,6 @@ import {
HoldItemAction, HoldItemAction,
OptionsActionDropdown OptionsActionDropdown
} from '../../components/items/ActionDropdown'; } from '../../components/items/ActionDropdown';
import { StylishText } from '../../components/items/StylishText';
import InstanceDetail from '../../components/nav/InstanceDetail'; import InstanceDetail from '../../components/nav/InstanceDetail';
import { PageDetail } from '../../components/nav/PageDetail'; import { PageDetail } from '../../components/nav/PageDetail';
import AttachmentPanel from '../../components/panels/AttachmentPanel'; import AttachmentPanel from '../../components/panels/AttachmentPanel';
@@ -10,6 +10,7 @@ import {
import { type ReactNode, useMemo } from 'react'; import { type ReactNode, useMemo } from 'react';
import { useParams } from 'react-router-dom'; import { useParams } from 'react-router-dom';
import { StylishText } from '@lib/components/StylishText';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType'; import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles'; import { UserRoles } from '@lib/enums/Roles';
@@ -31,7 +32,6 @@ import {
HoldItemAction, HoldItemAction,
OptionsActionDropdown OptionsActionDropdown
} from '../../components/items/ActionDropdown'; } from '../../components/items/ActionDropdown';
import { StylishText } from '../../components/items/StylishText';
import InstanceDetail from '../../components/nav/InstanceDetail'; import InstanceDetail from '../../components/nav/InstanceDetail';
import { PageDetail } from '../../components/nav/PageDetail'; import { PageDetail } from '../../components/nav/PageDetail';
import AttachmentPanel from '../../components/panels/AttachmentPanel'; import AttachmentPanel from '../../components/panels/AttachmentPanel';
+1 -1
View File
@@ -29,6 +29,7 @@ import { type ReactNode, useMemo, useState } from 'react';
import { useNavigate, useParams } from 'react-router-dom'; import { useNavigate, useParams } from 'react-router-dom';
import { ActionButton } from '@lib/components/ActionButton'; import { ActionButton } from '@lib/components/ActionButton';
import { StylishText } from '@lib/components/StylishText';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType'; import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles'; import { UserRoles } from '@lib/enums/Roles';
@@ -54,7 +55,6 @@ import {
EditItemAction, EditItemAction,
OptionsActionDropdown OptionsActionDropdown
} from '../../components/items/ActionDropdown'; } from '../../components/items/ActionDropdown';
import { StylishText } from '../../components/items/StylishText';
import InstanceDetail from '../../components/nav/InstanceDetail'; import InstanceDetail from '../../components/nav/InstanceDetail';
import NavigationTree from '../../components/nav/NavigationTree'; import NavigationTree from '../../components/nav/NavigationTree';
import { PageDetail } from '../../components/nav/PageDetail'; import { PageDetail } from '../../components/nav/PageDetail';
+1 -12
View File
@@ -36,8 +36,6 @@ interface LocalStateProps {
// panels // panels
lastUsedPanels: Record<string, string>; lastUsedPanels: Record<string, string>;
setLastUsedPanel: (panelKey: string) => (value: string) => void; setLastUsedPanel: (panelKey: string) => (value: string) => void;
detailDrawerStack: number;
addDetailDrawer: (value: number | false) => void;
navigationOpen: boolean; navigationOpen: boolean;
setNavigationOpen: (value: boolean) => void; setNavigationOpen: (value: boolean) => void;
allowMobile: boolean; allowMobile: boolean;
@@ -134,15 +132,6 @@ export const useLocalState = create<LocalStateProps>()(
}); });
} }
}, },
// detail drawers
detailDrawerStack: 0,
addDetailDrawer: (value) => {
set({
detailDrawerStack:
value === false ? 0 : get().detailDrawerStack + value
});
},
// navigation // navigation
navigationOpen: false, navigationOpen: false,
setNavigationOpen: (value) => { setNavigationOpen: (value) => {
@@ -162,7 +151,7 @@ export const useLocalState = create<LocalStateProps>()(
/* /*
pushes changes in user profile to backend pushes changes in user profile to backend
*/ */
function patchUser(key: 'language' | 'theme' | 'widgets', val: any) { export function patchUser(key: 'language' | 'theme' | 'widgets', val: any) {
const uid = useUserState.getState().userId(); const uid = useUserState.getState().userId();
if (uid) { if (uid) {
api.patch(apiUrl(ApiEndpoints.user_profile), { [key]: val }); api.patch(apiUrl(ApiEndpoints.user_profile), { [key]: val });
@@ -19,6 +19,7 @@ import { DateInput, type DateValue } from '@mantine/dates';
import dayjs from 'dayjs'; import dayjs from 'dayjs';
import { useCallback, useEffect, useMemo, useState } from 'react'; import { useCallback, useEffect, useMemo, useState } from 'react';
import { StylishText } from '@lib/components/StylishText';
import type { import type {
FilterSetState, FilterSetState,
TableFilter, TableFilter,
@@ -27,7 +28,6 @@ import type {
} from '@lib/types/Filters'; } from '@lib/types/Filters';
import { IconCheck } from '@tabler/icons-react'; import { IconCheck } from '@tabler/icons-react';
import { StandaloneField } from '../components/forms/StandaloneField'; import { StandaloneField } from '../components/forms/StandaloneField';
import { StylishText } from '../components/items/StylishText';
import { import {
filterDisplayLabel, filterDisplayLabel,
filterDisplayValue, filterDisplayValue,
@@ -26,6 +26,7 @@ import { ActionButton } from '@lib/components/ActionButton';
import { Boundary } from '@lib/components/Boundary'; import { Boundary } from '@lib/components/Boundary';
import { ButtonMenu } from '@lib/components/ButtonMenu'; import { ButtonMenu } from '@lib/components/ButtonMenu';
import { SearchInput } from '@lib/components/SearchInput'; import { SearchInput } from '@lib/components/SearchInput';
import { StylishText } from '@lib/components/StylishText';
import { TableColumnSelect } from '@lib/components/TableColumnSelect'; import { TableColumnSelect } from '@lib/components/TableColumnSelect';
import { resolveItem } from '@lib/functions/Conversion'; import { resolveItem } from '@lib/functions/Conversion';
import type { TableFilter } from '@lib/types/Filters'; import type { TableFilter } from '@lib/types/Filters';
@@ -33,7 +34,6 @@ import type { TableState } from '@lib/types/Tables';
import type { InvenTreeTableProps } from '@lib/types/Tables'; import type { InvenTreeTableProps } from '@lib/types/Tables';
import { showNotification } from '@mantine/notifications'; import { showNotification } from '@mantine/notifications';
import { PrintingActions } from '../components/buttons/PrintingActions'; import { PrintingActions } from '../components/buttons/PrintingActions';
import { StylishText } from '../components/items/StylishText';
import useDataExport from '../hooks/UseDataExport'; import useDataExport from '../hooks/UseDataExport';
import { useDeleteApiFormModal } from '../hooks/UseForm'; import { useDeleteApiFormModal } from '../hooks/UseForm';
import { FilterPreview, FilterSelectDrawer } from './FilterSelectDrawer'; import { FilterPreview, FilterSelectDrawer } from './FilterSelectDrawer';
@@ -24,6 +24,7 @@ import { ActionButton } from '@lib/components/ActionButton';
import { AddItemButton } from '@lib/components/AddItemButton'; import { AddItemButton } from '@lib/components/AddItemButton';
import { ProgressBar } from '@lib/components/ProgressBar'; import { ProgressBar } from '@lib/components/ProgressBar';
import { type RowAction, RowEditAction } from '@lib/components/RowActions'; import { type RowAction, RowEditAction } from '@lib/components/RowActions';
import { StylishText } from '@lib/components/StylishText';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType'; import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles'; import { UserRoles } from '@lib/enums/Roles';
@@ -32,7 +33,6 @@ import useTable from '@lib/hooks/UseTable';
import type { TableFilter } from '@lib/types/Filters'; import type { TableFilter } from '@lib/types/Filters';
import type { StockOperationProps } from '@lib/types/Forms'; import type { StockOperationProps } from '@lib/types/Forms';
import type { TableColumn } from '@lib/types/Tables'; import type { TableColumn } from '@lib/types/Tables';
import { StylishText } from '../../components/items/StylishText';
import { useApi } from '../../contexts/ApiContext'; import { useApi } from '../../contexts/ApiContext';
import { import {
useBuildAutoAllocateFields, useBuildAutoAllocateFields,
@@ -23,7 +23,12 @@ import { useCallback, useMemo, useState } from 'react';
import { useNavigate } from 'react-router-dom'; import { useNavigate } from 'react-router-dom';
import { AddItemButton } from '@lib/components/AddItemButton'; import { AddItemButton } from '@lib/components/AddItemButton';
import { StylishText } from '@lib/components/StylishText';
import { YesNoButton } from '@lib/components/YesNoButton'; import { YesNoButton } from '@lib/components/YesNoButton';
import {
DetailDrawer,
DetailDrawerLink
} from '@lib/components/nav/DetailDrawer';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { apiUrl } from '@lib/functions/Api'; import { apiUrl } from '@lib/functions/Api';
import useTable from '@lib/hooks/UseTable'; import useTable from '@lib/hooks/UseTable';
@@ -38,12 +43,7 @@ import {
OptionsActionDropdown OptionsActionDropdown
} from '../../components/items/ActionDropdown'; } from '../../components/items/ActionDropdown';
import { InfoItem } from '../../components/items/InfoItem'; import { InfoItem } from '../../components/items/InfoItem';
import { StylishText } from '../../components/items/StylishText';
import { UnavailableIndicator } from '../../components/items/UnavailableIndicator'; import { UnavailableIndicator } from '../../components/items/UnavailableIndicator';
import {
DetailDrawer,
DetailDrawerLink
} from '../../components/nav/DetailDrawer';
import { import {
StatusRenderer, StatusRenderer,
TableStatusRenderer TableStatusRenderer
@@ -18,14 +18,14 @@ import { IconExclamationCircle, IconRefresh } from '@tabler/icons-react';
import { useMemo } from 'react'; import { useMemo } from 'react';
import { useNavigate } from 'react-router-dom'; import { useNavigate } from 'react-router-dom';
import { StylishText } from '@lib/components/StylishText';
import { DetailDrawer } from '@lib/components/nav/DetailDrawer';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { apiUrl } from '@lib/functions/Api'; import { apiUrl } from '@lib/functions/Api';
import useTable from '@lib/hooks/UseTable'; import useTable from '@lib/hooks/UseTable';
import type { TableColumn } from '@lib/types/Tables'; import type { TableColumn } from '@lib/types/Tables';
import type { InvenTreeTableProps } from '@lib/types/Tables'; import type { InvenTreeTableProps } from '@lib/types/Tables';
import { InfoItem } from '../../components/items/InfoItem'; import { InfoItem } from '../../components/items/InfoItem';
import { StylishText } from '../../components/items/StylishText';
import { DetailDrawer } from '../../components/nav/DetailDrawer';
import { BooleanColumn, DescriptionColumn } from '../ColumnRenderers'; import { BooleanColumn, DescriptionColumn } from '../ColumnRenderers';
import { InvenTreeTable } from '../InvenTreeTable'; import { InvenTreeTable } from '../InvenTreeTable';
import { MachineListTable, useMachineTypeDriver } from './MachineListTable'; import { MachineListTable, useMachineTypeDriver } from './MachineListTable';
@@ -15,11 +15,11 @@ import { useNavigate } from 'react-router-dom';
import { ActionButton } from '@lib/components/ActionButton'; import { ActionButton } from '@lib/components/ActionButton';
import type { RowAction } from '@lib/components/RowActions'; import type { RowAction } from '@lib/components/RowActions';
import { DetailDrawer } from '@lib/components/nav/DetailDrawer';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { apiUrl } from '@lib/functions/Api'; import { apiUrl } from '@lib/functions/Api';
import useTable from '@lib/hooks/UseTable'; import useTable from '@lib/hooks/UseTable';
import type { TableColumn } from '@lib/types/Tables'; import type { TableColumn } from '@lib/types/Tables';
import { DetailDrawer } from '../../components/nav/DetailDrawer';
import PluginDrawer from '../../components/plugins/PluginDrawer'; import PluginDrawer from '../../components/plugins/PluginDrawer';
import type { PluginInterface } from '../../components/plugins/PluginInterface'; import type { PluginInterface } from '../../components/plugins/PluginInterface';
import { useApi } from '../../contexts/ApiContext'; import { useApi } from '../../contexts/ApiContext';
@@ -1,6 +1,7 @@
import { AddItemButton } from '@lib/components/AddItemButton'; import { AddItemButton } from '@lib/components/AddItemButton';
import { CopyButton } from '@lib/components/CopyButton'; import { CopyButton } from '@lib/components/CopyButton';
import type { RowAction } from '@lib/components/RowActions'; import type { RowAction } from '@lib/components/RowActions';
import { StylishText } from '@lib/components/StylishText';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { apiUrl } from '@lib/functions/Api'; import { apiUrl } from '@lib/functions/Api';
import useTable from '@lib/hooks/UseTable'; import useTable from '@lib/hooks/UseTable';
@@ -12,7 +13,6 @@ import { useDisclosure } from '@mantine/hooks';
import { IconCircleX } from '@tabler/icons-react'; import { IconCircleX } from '@tabler/icons-react';
import { useCallback, useMemo, useState } from 'react'; import { useCallback, useMemo, useState } from 'react';
import { api } from '../../App'; import { api } from '../../App';
import { StylishText } from '../../components/items/StylishText';
import { showApiErrorMessage } from '../../functions/notifications'; import { showApiErrorMessage } from '../../functions/notifications';
import { useCreateApiFormModal } from '../../hooks/UseForm'; import { useCreateApiFormModal } from '../../hooks/UseForm';
import { BooleanColumn, UserColumn } from '../ColumnRenderers'; import { BooleanColumn, UserColumn } from '../ColumnRenderers';
@@ -16,6 +16,7 @@ import { useCallback, useMemo, useState } from 'react';
import { CopyButton } from '@lib/components/CopyButton'; import { CopyButton } from '@lib/components/CopyButton';
import { RowDeleteAction } from '@lib/components/RowActions'; import { RowDeleteAction } from '@lib/components/RowActions';
import { StylishText } from '@lib/components/StylishText';
import { PassFailButton } from '@lib/components/YesNoButton'; import { PassFailButton } from '@lib/components/YesNoButton';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { UserRoles } from '@lib/enums/Roles'; import { UserRoles } from '@lib/enums/Roles';
@@ -24,7 +25,6 @@ import { shortenString } from '@lib/functions/String';
import useTable from '@lib/hooks/UseTable'; import useTable from '@lib/hooks/UseTable';
import type { TableFilter } from '@lib/types/Filters'; import type { TableFilter } from '@lib/types/Filters';
import type { TableColumn } from '@lib/types/Tables'; import type { TableColumn } from '@lib/types/Tables';
import { StylishText } from '../../components/items/StylishText';
import { RenderUser } from '../../components/render/User'; import { RenderUser } from '../../components/render/User';
import { useDeleteApiFormModal } from '../../hooks/UseForm'; import { useDeleteApiFormModal } from '../../hooks/UseForm';
import { useGlobalSettingsState } from '../../states/SettingsStates'; import { useGlobalSettingsState } from '../../states/SettingsStates';
@@ -5,11 +5,11 @@ import { useNavigate, useParams } from 'react-router-dom';
import { CopyButton } from '@lib/components/CopyButton'; import { CopyButton } from '@lib/components/CopyButton';
import { type RowAction, RowDeleteAction } from '@lib/components/RowActions'; import { type RowAction, RowDeleteAction } from '@lib/components/RowActions';
import { DetailDrawer } from '@lib/components/nav/DetailDrawer';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { apiUrl } from '@lib/functions/Api'; import { apiUrl } from '@lib/functions/Api';
import useTable from '@lib/hooks/UseTable'; import useTable from '@lib/hooks/UseTable';
import type { TableColumn } from '@lib/types/Tables'; import type { TableColumn } from '@lib/types/Tables';
import { DetailDrawer } from '../../components/nav/DetailDrawer';
import { useDeleteApiFormModal } from '../../hooks/UseForm'; import { useDeleteApiFormModal } from '../../hooks/UseForm';
import { useInstance } from '../../hooks/UseInstance'; import { useInstance } from '../../hooks/UseInstance';
import { useUserState } from '../../states/UserState'; import { useUserState } from '../../states/UserState';
@@ -5,11 +5,11 @@ import { hideNotification, showNotification } from '@mantine/notifications';
import { IconExclamationCircle } from '@tabler/icons-react'; import { IconExclamationCircle } from '@tabler/icons-react';
import { useMemo, useState } from 'react'; import { useMemo, useState } from 'react';
import { StylishText } from '@lib/components/StylishText';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { apiUrl } from '@lib/functions/Api'; import { apiUrl } from '@lib/functions/Api';
import useTable from '@lib/hooks/UseTable'; import useTable from '@lib/hooks/UseTable';
import type { TableColumn } from '@lib/types/Tables'; import type { TableColumn } from '@lib/types/Tables';
import { StylishText } from '../../components/items/StylishText';
import { useUserState } from '../../states/UserState'; import { useUserState } from '../../states/UserState';
import { InvenTreeTable } from '../InvenTreeTable'; import { InvenTreeTable } from '../InvenTreeTable';
@@ -9,6 +9,8 @@ import {
RowDeleteAction, RowDeleteAction,
RowEditAction RowEditAction
} from '@lib/components/RowActions'; } from '@lib/components/RowActions';
import { StylishText } from '@lib/components/StylishText';
import { DetailDrawer } from '@lib/components/nav/DetailDrawer';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType'; import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles'; import { UserRoles } from '@lib/enums/Roles';
@@ -20,8 +22,6 @@ import { IconUsersGroup } from '@tabler/icons-react';
import { useNavigate } from 'react-router-dom'; import { useNavigate } from 'react-router-dom';
import { EditApiForm } from '../../components/forms/ApiForm'; import { EditApiForm } from '../../components/forms/ApiForm';
import { RoleTable, type RuleSet } from '../../components/items/RoleTable'; import { RoleTable, type RuleSet } from '../../components/items/RoleTable';
import { StylishText } from '../../components/items/StylishText';
import { DetailDrawer } from '../../components/nav/DetailDrawer';
import { import {
useCreateApiFormModal, useCreateApiFormModal,
useDeleteApiFormModal useDeleteApiFormModal
@@ -11,6 +11,7 @@ import {
RowDeleteAction, RowDeleteAction,
RowEditAction RowEditAction
} from '@lib/components/RowActions'; } from '@lib/components/RowActions';
import { DetailDrawer } from '@lib/components/nav/DetailDrawer';
import type { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import type { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import type { ModelType } from '@lib/enums/ModelType'; import type { ModelType } from '@lib/enums/ModelType';
import { apiUrl } from '@lib/functions/Api'; import { apiUrl } from '@lib/functions/Api';
@@ -30,7 +31,6 @@ import type {
} from '../../components/editors/TemplateEditor/TemplateEditor'; } from '../../components/editors/TemplateEditor/TemplateEditor';
import { ApiIcon } from '../../components/items/ApiIcon'; import { ApiIcon } from '../../components/items/ApiIcon';
import { AttachmentLink } from '../../components/items/AttachmentLink'; import { AttachmentLink } from '../../components/items/AttachmentLink';
import { DetailDrawer } from '../../components/nav/DetailDrawer';
import { import {
getPluginTemplateEditor, getPluginTemplateEditor,
getPluginTemplatePreview getPluginTemplatePreview
@@ -16,6 +16,8 @@ import {
RowDeleteAction, RowDeleteAction,
RowEditAction RowEditAction
} from '@lib/components/RowActions'; } from '@lib/components/RowActions';
import { StylishText } from '@lib/components/StylishText';
import { DetailDrawer } from '@lib/components/nav/DetailDrawer';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType'; import { ModelType } from '@lib/enums/ModelType';
import { UserRoles } from '@lib/enums/Roles'; import { UserRoles } from '@lib/enums/Roles';
@@ -29,12 +31,10 @@ import { useNavigate } from 'react-router-dom';
import { useShallow } from 'zustand/react/shallow'; import { useShallow } from 'zustand/react/shallow';
import { api } from '../../App'; import { api } from '../../App';
import { EditApiForm } from '../../components/forms/ApiForm'; import { EditApiForm } from '../../components/forms/ApiForm';
import { StylishText } from '../../components/items/StylishText';
import { import {
TransferList, TransferList,
type TransferListItem type TransferListItem
} from '../../components/items/TransferList'; } from '../../components/items/TransferList';
import { DetailDrawer } from '../../components/nav/DetailDrawer';
import { showApiErrorMessage } from '../../functions/notifications'; import { showApiErrorMessage } from '../../functions/notifications';
import { import {
useApiFormModal, useApiFormModal,