mirror of
https://github.com/inventree/InvenTree.git
synced 2025-07-18 02:36:31 +00:00
34 lines
713 B
TypeScript
34 lines
713 B
TypeScript
import { Loader } from '@mantine/core';
|
|
import { useMemo, useState } from 'react';
|
|
|
|
import { api } from '../../App';
|
|
import { ModelType } from '../../enums/ModelType';
|
|
import { RenderInstance } from './Instance';
|
|
|
|
/**
|
|
* Render a model instance from a URL
|
|
* @param model Model type
|
|
* @param url URL to fetch instance from
|
|
* @returns JSX Element
|
|
*/
|
|
export function InstanceFromUrl({
|
|
model,
|
|
url
|
|
}: Readonly<{
|
|
model: ModelType;
|
|
url: string;
|
|
}>) {
|
|
const [data, setData] = useState<any>(null);
|
|
useMemo(
|
|
() =>
|
|
api.get(url).then((res) => {
|
|
setData(res.data);
|
|
}),
|
|
[model, url]
|
|
);
|
|
|
|
if (!data) return <Loader />;
|
|
|
|
return <RenderInstance instance={data} model={model} />;
|
|
}
|