mirror of
https://github.com/inventree/InvenTree.git
synced 2025-04-28 03:26:45 +00:00
* Pass more stuff to window * Expose form functions to plugin context * Breaking: Render plugin component in context tree - Required due to createRoot function - Adds necessary context providers * Fix context * Provide MantineThemeContext * Bundle mantine/core * Hack for useNavigate within ApiForm - Errors out if called within plugin context - Workaround to catch the error * Update build cmd * Define config for building "Library" mode * Update package.json * Add basic index file * Factor out ApiEndpoints * factor out ModelType * Factor out role enums * Further refactoring * More refactoring * Cleanup * Expose apiUrl function * Add instance data to plugin context type def * Tweaks for loading plugin components - LanguageContext must be on the inside * Tweak StylishText * Externalize notifications system * Update lingui config * Add functions for checking plugin interface version * Extract package version at build time * Enhance version checking * Revert variable name change * Public package * Add README.md * adjust packge name * Adjust name to include org * Update project files * Add basic changelog info * Refactoring to expose URL functions * Refactor navigation functions * Update package and README * Improve navigateToLink function * Refactor stylish text - Move into ./lib - Do not require user state * Revert changes - StylishText throws error in plugin - Low priority, can work out later * expose function to refresh page index * Provide RemoteComponent with a method to reload itself * Bump version * Cleanup tests * Prevent duplicate --emptyOutDir arg * Tweak playwright tests * Expose role and permission enums * Fix imports * Updated docs * Fix spelling, typos, etc * Include more package version information * Expose more version context * Cleanup * Probably don't need hooks * Fix links * Docs updates * Fix links
55 lines
1.5 KiB
TypeScript
55 lines
1.5 KiB
TypeScript
import type { ReactNode } from 'react';
|
|
|
|
import { ModelType } from '@lib/enums/ModelType';
|
|
import { getDetailUrl } from '@lib/functions/Navigation';
|
|
import { type InstanceRenderInterface, RenderInlineModel } from './Instance';
|
|
import { StatusRenderer } from './StatusRenderer';
|
|
|
|
/**
|
|
* Inline rendering of a single BuildOrder instance
|
|
*/
|
|
export function RenderBuildOrder(
|
|
props: Readonly<InstanceRenderInterface>
|
|
): ReactNode {
|
|
const { instance } = props;
|
|
|
|
return (
|
|
<RenderInlineModel
|
|
{...props}
|
|
primary={instance.reference}
|
|
secondary={instance.title}
|
|
suffix={StatusRenderer({
|
|
status: instance.status_custom_key,
|
|
type: ModelType.build
|
|
})}
|
|
image={instance.part_detail?.thumbnail || instance.part_detail?.image}
|
|
url={props.link ? getDetailUrl(ModelType.build, instance.pk) : undefined}
|
|
/>
|
|
);
|
|
}
|
|
|
|
/*
|
|
* Inline rendering of a single BuildLine instance
|
|
*/
|
|
export function RenderBuildLine({
|
|
instance
|
|
}: Readonly<InstanceRenderInterface>): ReactNode {
|
|
return (
|
|
<RenderInlineModel
|
|
primary={instance.part_detail.full_name}
|
|
secondary={instance.quantity}
|
|
suffix={StatusRenderer({
|
|
status: instance.status_custom_key,
|
|
type: ModelType.build
|
|
})}
|
|
image={instance.part_detail.thumbnail || instance.part_detail.image}
|
|
/>
|
|
);
|
|
}
|
|
|
|
export function RenderBuildItem({
|
|
instance
|
|
}: Readonly<InstanceRenderInterface>): ReactNode {
|
|
return <RenderInlineModel primary={instance.pk} />;
|
|
}
|