Allow plugins to interact
This commit is contained in:
parent
8b7b00b7cb
commit
c7299e2ad8
|
|
@ -69,6 +69,12 @@ export type ImporterDrawerContext = {
|
|||
sessionId: () => number | null;
|
||||
};
|
||||
|
||||
export type PreviewDrawerContext = {
|
||||
open: (modelType: ModelType, instance: any) => void;
|
||||
close: () => void;
|
||||
isOpen: () => boolean;
|
||||
};
|
||||
|
||||
/**
|
||||
* A set of properties which are passed to a plugin,
|
||||
* for rendering an element in the user interface.
|
||||
|
|
@ -90,6 +96,7 @@ export type ImporterDrawerContext = {
|
|||
* @param forms - A set of functions for opening various API forms (see ../components/Forms.tsx)
|
||||
* @param tables - A set of functions for rendering API tables
|
||||
* @param importer - A set of functions for controlling the global importer drawer (see ../components/importer/GlobalImporterDrawer.tsx)
|
||||
* @param preview - A set of functions for controlling the global preview drawer (see ../components/previews/GlobalPreviewDrawer.tsx)
|
||||
* @param model - The model type associated with the rendered component (if applicable)
|
||||
* @param id - The ID (primary key) of the model instance for the plugin (if applicable)
|
||||
* @param instance - The model instance data (if available)
|
||||
|
|
@ -125,6 +132,7 @@ export type InvenTreePluginContext = {
|
|||
};
|
||||
tables: InvenTreeTablesContext<any>;
|
||||
importer: ImporterDrawerContext;
|
||||
preview: PreviewDrawerContext;
|
||||
model?: ModelType | string;
|
||||
id?: string | number | null;
|
||||
instance?: any;
|
||||
|
|
|
|||
|
|
@ -46,6 +46,11 @@ import {
|
|||
openGlobalImporter
|
||||
} from '../../states/ImporterState';
|
||||
import { usePluginState } from '../../states/PluginState';
|
||||
import {
|
||||
closeGlobalPreview,
|
||||
getGlobalPreviewState,
|
||||
openGlobalPreview
|
||||
} from '../../states/PreviewDrawerState';
|
||||
import { useServerApiState } from '../../states/ServerApiState';
|
||||
import { InvenTreeTableInternal } from '../../tables/InvenTreeTable';
|
||||
import { EditApiForm } from '../forms/ApiForm';
|
||||
|
|
@ -97,6 +102,11 @@ export const useInvenTreeContext = () => {
|
|||
isOpen: () => getGlobalImporterState().isOpen,
|
||||
sessionId: () => getGlobalImporterState().sessionId
|
||||
},
|
||||
preview: {
|
||||
open: (modelType, instance) => openGlobalPreview(modelType, instance),
|
||||
close: () => closeGlobalPreview(),
|
||||
isOpen: () => getGlobalPreviewState().isOpen
|
||||
},
|
||||
tables: {
|
||||
renderTable: (props: InvenTreeTableRenderProps<any>) => (
|
||||
<InvenTreeTableInternal
|
||||
|
|
|
|||
Loading…
Reference in New Issue