2
0
mirror of https://github.com/inventree/InvenTree.git synced 2026-07-04 06:00:38 +00:00

[UI] Fix imports (#12292)

- Adjust import structure
- Prevent wall-of-text warnings from vite
This commit is contained in:
Oliver
2026-07-02 18:28:12 +10:00
committed by GitHub
parent 66d1884ad9
commit 5532946473
12 changed files with 38 additions and 64 deletions
@@ -24,7 +24,7 @@ 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';
import { cancelEvent } from '@lib/functions/Events'; import { cancelEvent } from '@lib/functions/Events';
import { getDetailUrl, navigateToLink } from '@lib/index'; import { getDetailUrl, navigateToLink } from '@lib/functions/Navigation';
import type { ApiFormFieldType } from '@lib/types/Forms'; import type { ApiFormFieldType } from '@lib/types/Forms';
import { useApi } from '../../../contexts/ApiContext'; import { useApi } from '../../../contexts/ApiContext';
import { import {
@@ -31,9 +31,9 @@ export type { InstanceRenderInterface } from '@lib/types/Rendering';
import { import {
getBaseUrl, getBaseUrl,
getDetailUrl, getDetailUrl,
navigateToLink, navigateToLink
shortenString } from '@lib/functions/Navigation';
} from '@lib/index'; import { shortenString } from '@lib/functions/String';
import { IconLink } from '@tabler/icons-react'; import { IconLink } from '@tabler/icons-react';
import { useApi } from '../../contexts/ApiContext'; import { useApi } from '../../contexts/ApiContext';
import { usePluginState } from '../../states/PluginState'; import { usePluginState } from '../../states/PluginState';
@@ -12,7 +12,7 @@ import type { NavigateFunction } from 'react-router-dom';
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 { getDetailUrl, navigateToLink } from '@lib/index'; import { getDetailUrl, navigateToLink } from '@lib/functions/Navigation';
import { IconLink } from '@tabler/icons-react'; import { IconLink } from '@tabler/icons-react';
/** /**
+13 -8
View File
@@ -10,13 +10,13 @@ import 'mantine-datatable/styles.css';
import 'react-grid-layout/css/styles.css'; import 'react-grid-layout/css/styles.css';
import 'react-resizable/css/styles.css'; import 'react-resizable/css/styles.css';
import type * as LinguiCore from '@lingui/core'; import * as LinguiCore from '@lingui/core';
import type * as LinguiReact from '@lingui/react'; import * as LinguiReact from '@lingui/react';
// Global types to be exported for use in plugins // Global types to be exported for use in plugins
import type * as MantineCore from '@mantine/core'; import * as MantineCore from '@mantine/core';
import type * as MantineNotifications from '@mantine/notifications'; import * as MantineNotifications from '@mantine/notifications';
import * as React from 'react'; import * as React from 'react';
import type * as ReactDOM from 'react-dom'; import * as ReactDOM from 'react-dom';
import * as ReactDOMClient from 'react-dom/client'; import * as ReactDOMClient from 'react-dom/client';
import './styles/overrides.css'; import './styles/overrides.css';
@@ -24,7 +24,6 @@ import './styles/overrides.css';
import { getBaseUrl } from '@lib/functions/Navigation'; import { getBaseUrl } from '@lib/functions/Navigation';
import type { HostList } from '@lib/types/Server'; import type { HostList } from '@lib/types/Server';
import MainView from './views/MainView'; import MainView from './views/MainView';
import { loadWindowGlobals } from './window';
// define settings // define settings
declare global { declare global {
@@ -123,5 +122,11 @@ ReactDOMClient.createRoot(
</React.StrictMode> </React.StrictMode>
); );
// Load globals onto the window object, so that they can be accessed by plugins without requiring direct imports // All window globals assigned here since these modules are already statically bundled
loadWindowGlobals(); window.React = React;
window.ReactDOM = ReactDOM;
window.ReactDOMClient = ReactDOMClient;
window.MantineCore = MantineCore;
window.MantineNotifications = MantineNotifications;
window.LinguiCore = LinguiCore;
window.LinguiReact = LinguiReact;
+2 -1
View File
@@ -2,11 +2,12 @@ import { t } from '@lingui/core/macro';
import { Alert, Divider, Group, Stack, Text } from '@mantine/core'; import { Alert, Divider, Group, Stack, Text } from '@mantine/core';
import { useCallback, useMemo, useState } from 'react'; import { useCallback, useMemo, useState } from 'react';
import { RowEditAction } from '@lib/components/RowActions';
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 { apiUrl } from '@lib/functions/Api'; import { apiUrl } from '@lib/functions/Api';
import useTable from '@lib/hooks/UseTable'; import useTable from '@lib/hooks/UseTable';
import { ActionButton, RowEditAction, UserRoles } from '@lib/index'; import { ActionButton, UserRoles } from '@lib/index';
import type { TableFilter } from '@lib/types/Filters'; import type { TableFilter } from '@lib/types/Filters';
import type { RowAction, TableColumn } from '@lib/types/Tables'; import type { RowAction, TableColumn } from '@lib/types/Tables';
import { IconExclamationCircle, IconReplace } from '@tabler/icons-react'; import { IconExclamationCircle, IconReplace } from '@tabler/icons-react';
@@ -1,9 +1,8 @@
import { RowDeleteAction, RowEditAction } from '@lib/components/RowActions';
import useTable from '@lib/hooks/UseTable'; import useTable from '@lib/hooks/UseTable';
import { import {
ApiEndpoints, ApiEndpoints,
ModelType, ModelType,
RowDeleteAction,
RowEditAction,
YesNoButton, YesNoButton,
apiUrl, apiUrl,
formatDecimal formatDecimal
@@ -1,11 +1,13 @@
import {
RowDeleteAction,
RowDuplicateAction,
RowEditAction
} from '@lib/components/RowActions';
import useTable from '@lib/hooks/UseTable'; import useTable from '@lib/hooks/UseTable';
import { import {
AddItemButton, AddItemButton,
ApiEndpoints, ApiEndpoints,
type ApiFormFieldSet, type ApiFormFieldSet,
RowDeleteAction,
RowDuplicateAction,
RowEditAction,
UserRoles, UserRoles,
apiUrl apiUrl
} from '@lib/index'; } from '@lib/index';
@@ -23,6 +23,7 @@ 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 { RowDeleteAction, RowEditAction } from '@lib/components/RowActions';
import { StylishText } from '@lib/components/StylishText'; import { StylishText } from '@lib/components/StylishText';
import { YesNoButton } from '@lib/components/YesNoButton'; import { YesNoButton } from '@lib/components/YesNoButton';
import { import {
@@ -32,7 +33,7 @@ import {
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 { RowDeleteAction, RowEditAction, formatDecimal } from '@lib/index'; import { formatDecimal } from '@lib/index';
import type { RowAction, TableColumn } from '@lib/types/Tables'; import type { RowAction, TableColumn } from '@lib/types/Tables';
import type { InvenTreeTableProps } from '@lib/types/Tables'; import type { InvenTreeTableProps } from '@lib/types/Tables';
import { Trans } from '@lingui/react/macro'; import { Trans } from '@lingui/react/macro';
@@ -15,8 +15,9 @@ 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';
import { apiUrl } from '@lib/functions/Api'; import { apiUrl } from '@lib/functions/Api';
import { getDetailUrl } from '@lib/functions/Navigation';
import useTable from '@lib/hooks/UseTable'; import useTable from '@lib/hooks/UseTable';
import { type ApiFormModalProps, getDetailUrl } from '@lib/index'; import type { ApiFormModalProps } from '@lib/index';
import type { TableColumn, TableState } from '@lib/types/Tables'; import type { TableColumn, TableState } from '@lib/types/Tables';
import { IconUsersGroup } from '@tabler/icons-react'; import { IconUsersGroup } from '@tabler/icons-react';
import { useNavigate } from 'react-router-dom'; import { useNavigate } from 'react-router-dom';
@@ -22,8 +22,9 @@ 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';
import { apiUrl } from '@lib/functions/Api'; import { apiUrl } from '@lib/functions/Api';
import { getDetailUrl } from '@lib/functions/Navigation';
import useTable from '@lib/hooks/UseTable'; import useTable from '@lib/hooks/UseTable';
import { type ApiFormModalProps, getDetailUrl } from '@lib/index'; import type { ApiFormModalProps } from '@lib/index';
import type { TableFilter } from '@lib/types/Filters'; import type { TableFilter } from '@lib/types/Filters';
import type { TableColumn, TableState } from '@lib/types/Tables'; import type { TableColumn, TableState } from '@lib/types/Tables';
import { showNotification } from '@mantine/notifications'; import { showNotification } from '@mantine/notifications';
@@ -1,3 +1,9 @@
import {
RowDeleteAction,
RowDuplicateAction,
RowEditAction,
RowViewAction
} from '@lib/components/RowActions';
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';
@@ -6,10 +12,6 @@ import {
AddItemButton, AddItemButton,
ModelType, ModelType,
ProgressBar, ProgressBar,
RowDeleteAction,
RowDuplicateAction,
RowEditAction,
RowViewAction,
UserRoles, UserRoles,
formatDecimal formatDecimal
} from '@lib/index'; } from '@lib/index';
-38
View File
@@ -1,38 +0,0 @@
/**
* Expose certain globals to the window object, so that they can be accessed by plugins,
* without requiring plugins to import these dependencies directly.
*/
export function loadWindowGlobals() {
// (window as any).React = React;
import('react').then((module) => {
window.React = module;
});
// (window as any).ReactDOM = ReactDOM;
import('react-dom').then((module) => {
window.ReactDOM = module;
});
// (window as any).ReactDOMClient = ReactDOMClient;
import('react-dom/client').then((module) => {
window.ReactDOMClient = module;
});
// (window as any).MantineCore = MantineCore;
import('@mantine/core').then((module) => {
window.MantineCore = module;
});
// (window as any).MantineNotifications = MantineNotifications;
import('@mantine/notifications').then((module) => {
window.MantineNotifications = module;
});
import('@lingui/core').then((module) => {
window.LinguiCore = module;
});
import('@lingui/react').then((module) => {
window.LinguiReact = module;
});
}