894db2645a
addressing the review on https://github.com/twentyhq/twenty/pull/14318#pullrequestreview-3191930203
33 lines
866 B
TypeScript
33 lines
866 B
TypeScript
import { IframeWidget } from '@/dashboards/widgets/iframe/components/IframeWidget';
|
|
import { isString } from '@sniptt/guards';
|
|
import { WidgetType } from '../mocks/mockWidgets';
|
|
import { type PageLayoutWidget } from '../states/savedPageLayoutsState';
|
|
import { GraphWidgetRenderer } from './GraphWidgetRenderer';
|
|
|
|
type WidgetRendererProps = {
|
|
widget: PageLayoutWidget;
|
|
};
|
|
|
|
export const WidgetRenderer = ({ widget }: WidgetRendererProps) => {
|
|
switch (widget.type) {
|
|
case WidgetType.GRAPH:
|
|
return <GraphWidgetRenderer widget={widget} />;
|
|
|
|
case WidgetType.IFRAME: {
|
|
const url = widget.configuration?.url;
|
|
return (
|
|
<IframeWidget url={isString(url) ? url : ''} title={widget.title} />
|
|
);
|
|
}
|
|
|
|
case WidgetType.VIEW:
|
|
return null;
|
|
|
|
case WidgetType.FIELDS:
|
|
return null;
|
|
|
|
default:
|
|
return null;
|
|
}
|
|
};
|