mirror of
https://github.com/inventree/InvenTree.git
synced 2026-05-09 03:03:41 +00:00
Expose global importer state to the plugin interface
This commit is contained in:
@@ -48,6 +48,13 @@ export type InvenTreeFormsContext = {
|
|||||||
stockActions: StockAdjustmentFormsContext;
|
stockActions: StockAdjustmentFormsContext;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export type ImporterDrawerContext = {
|
||||||
|
open: (sessionId: number, options?: { onClose?: () => void }) => void;
|
||||||
|
close: () => void;
|
||||||
|
isOpen: () => boolean;
|
||||||
|
sessionId: () => number | null;
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A set of properties which are passed to a plugin,
|
* A set of properties which are passed to a plugin,
|
||||||
* for rendering an element in the user interface.
|
* for rendering an element in the user interface.
|
||||||
@@ -59,6 +66,8 @@ export type InvenTreeFormsContext = {
|
|||||||
* @param globalSettings - The global settings (see ../states/SettingsState.tsx)
|
* @param globalSettings - The global settings (see ../states/SettingsState.tsx)
|
||||||
* @param navigate - The navigation function (see react-router-dom)
|
* @param navigate - The navigation function (see react-router-dom)
|
||||||
* @param theme - The current Mantine theme
|
* @param theme - The current Mantine theme
|
||||||
|
* @param forms - A set of functions for opening various API forms (see ../components/Forms.tsx)
|
||||||
|
* @param importer - A set of functions for controlling the global importer drawer (see ../components/importer/GlobalImporterDrawer.tsx)
|
||||||
* @param colorScheme - The current Mantine color scheme (e.g. 'light' / 'dark')
|
* @param colorScheme - The current Mantine color scheme (e.g. 'light' / 'dark')
|
||||||
* @param host - The current host URL
|
* @param host - The current host URL
|
||||||
* @param i18n - The i18n instance for translations (from @lingui/core)
|
* @param i18n - The i18n instance for translations (from @lingui/core)
|
||||||
@@ -87,6 +96,7 @@ export type InvenTreePluginContext = {
|
|||||||
navigate: NavigateFunction;
|
navigate: NavigateFunction;
|
||||||
theme: MantineTheme;
|
theme: MantineTheme;
|
||||||
forms: InvenTreeFormsContext;
|
forms: InvenTreeFormsContext;
|
||||||
|
importer: ImporterDrawerContext;
|
||||||
colorScheme: MantineColorScheme;
|
colorScheme: MantineColorScheme;
|
||||||
model?: ModelType | string;
|
model?: ModelType | string;
|
||||||
id?: string | number | null;
|
id?: string | number | null;
|
||||||
|
|||||||
@@ -36,6 +36,12 @@ import {
|
|||||||
useDeleteApiFormModal,
|
useDeleteApiFormModal,
|
||||||
useEditApiFormModal
|
useEditApiFormModal
|
||||||
} from '../../hooks/UseForm';
|
} from '../../hooks/UseForm';
|
||||||
|
import {
|
||||||
|
type ImporterOpenOptions,
|
||||||
|
closeGlobalImporter,
|
||||||
|
getGlobalImporterState,
|
||||||
|
openGlobalImporter
|
||||||
|
} from '../../states/ImporterState';
|
||||||
import { useServerApiState } from '../../states/ServerApiState';
|
import { useServerApiState } from '../../states/ServerApiState';
|
||||||
import { RenderInstance } from '../render/Instance';
|
import { RenderInstance } from '../render/Instance';
|
||||||
|
|
||||||
@@ -70,6 +76,13 @@ export const useInvenTreeContext = () => {
|
|||||||
renderInstance: RenderInstance,
|
renderInstance: RenderInstance,
|
||||||
theme: theme,
|
theme: theme,
|
||||||
colorScheme: colorScheme,
|
colorScheme: colorScheme,
|
||||||
|
importer: {
|
||||||
|
open: (sessionId: number, options?: ImporterOpenOptions) =>
|
||||||
|
openGlobalImporter(sessionId, options),
|
||||||
|
close: () => closeGlobalImporter(),
|
||||||
|
isOpen: () => getGlobalImporterState().isOpen,
|
||||||
|
sessionId: () => getGlobalImporterState().sessionId
|
||||||
|
},
|
||||||
forms: {
|
forms: {
|
||||||
bulkEdit: useBulkEditApiFormModal,
|
bulkEdit: useBulkEditApiFormModal,
|
||||||
create: useCreateApiFormModal,
|
create: useCreateApiFormModal,
|
||||||
|
|||||||
Reference in New Issue
Block a user