fixes: loosen up front validation, add resolveEntityRelationUniversalIdentifiers to update and restore (#18015)

closes https://github.com/twentyhq/private-issues/issues/419
This commit is contained in:
nitin
2026-02-18 16:05:08 +05:30
committed by GitHub
parent 08a3d983cb
commit 477fbc0865
14 changed files with 97 additions and 364 deletions
@@ -1,14 +1,10 @@
import { useObjectMetadataItemById } from '@/object-metadata/hooks/useObjectMetadataItemById';
import { PageLayoutWidgetNoDataDisplay } from '@/page-layout/widgets/components/PageLayoutWidgetNoDataDisplay';
import { WidgetSkeletonLoader } from '@/page-layout/widgets/components/WidgetSkeletonLoader';
import { GraphWidgetAggregateChartRenderer } from '@/page-layout/widgets/graph/graphWidgetAggregateChart/components/GraphWidgetAggregateChartRenderer';
import { GraphWidgetBarChartRenderer } from '@/page-layout/widgets/graph/graphWidgetBarChart/components/GraphWidgetBarChartRenderer';
import { GraphWidgetLineChartRenderer } from '@/page-layout/widgets/graph/graphWidgetLineChart/components/GraphWidgetLineChartRenderer';
import { GraphWidgetPieChartRenderer } from '@/page-layout/widgets/graph/graphWidgetPieChart/components/GraphWidgetPieChartRenderer';
import { areChartConfigurationFieldsValidForQuery } from '@/page-layout/widgets/graph/utils/areChartConfigurationFieldsValidForQuery';
import { useCurrentWidget } from '@/page-layout/widgets/hooks/useCurrentWidget';
import { lazy, Suspense } from 'react';
import { isDefined } from 'twenty-shared/utils';
import { WidgetConfigurationType } from '~/generated-metadata/graphql';
const GraphWidgetGaugeChart = lazy(() =>
@@ -19,26 +15,9 @@ const GraphWidgetGaugeChart = lazy(() =>
})),
);
export type GraphWidgetProps = {
objectMetadataId: string;
};
export const GraphWidget = ({ objectMetadataId }: GraphWidgetProps) => {
export const GraphWidget = () => {
const widget = useCurrentWidget();
const { objectMetadataItem } = useObjectMetadataItemById({
objectId: objectMetadataId,
});
const hasValidConfiguration = areChartConfigurationFieldsValidForQuery(
widget.configuration,
objectMetadataItem,
);
if (!isDefined(widget.configuration) || !hasValidConfiguration) {
return <PageLayoutWidgetNoDataDisplay />;
}
const configurationType = widget.configuration?.configurationType;
switch (configurationType) {