[DASHBOARDS] Update iFrame error message (#16777)

`Invalid URL` instead of `no data` for iFrame widgets.

<img width="1142" height="638" alt="CleanShot 2025-12-23 at 14 13 17@2x"
src="https://github.com/user-attachments/assets/22621e57-c4ba-4e1f-91d0-5c4ef435c649"
/>
This commit is contained in:
Raphaël Bosi
2025-12-23 16:33:55 +01:00
committed by GitHub
parent 67f511bae3
commit 19e77f9dd7
4 changed files with 16 additions and 13 deletions
@@ -1,23 +1,26 @@
import { useCurrentWidget } from '@/page-layout/widgets/hooks/useCurrentWidget';
import { t } from '@lingui/core/macro';
import { AppTooltip, Status } from 'twenty-ui/display';
import { WidgetType } from '~/generated/graphql';
type PageLayoutWidgetNoDataDisplayProps = {
widgetId: string;
};
export const PageLayoutWidgetNoDataDisplay = () => {
const widget = useCurrentWidget();
const tooltipId = `widget-incomplete-tooltip-${widget.id}`;
export const PageLayoutWidgetNoDataDisplay = ({
widgetId,
}: PageLayoutWidgetNoDataDisplayProps) => {
const tooltipId = `widget-incomplete-tooltip-${widgetId}`;
const text = widget.type === WidgetType.IFRAME ? t`Invalid URL` : t`No Data`;
const tooltipContent =
widget.type === WidgetType.IFRAME
? t`Invalid URL. Click edit to configure this widget.`
: t`No data available. Click edit to configure this widget.`;
return (
<>
<div id={tooltipId}>
<Status color="red" text={t`No Data`} />
<Status color="red" text={text} />
</div>
<AppTooltip
anchorSelect={`#${tooltipId}`}
content={t`No data available. Click edit to configure this widget.`}
content={tooltipContent}
place="top"
/>
</>
@@ -40,7 +40,7 @@ export const GraphWidget = ({
);
if (!hasValidConfiguration) {
return <PageLayoutWidgetNoDataDisplay widgetId={widget.id} />;
return <PageLayoutWidgetNoDataDisplay />;
}
switch (graphType) {
@@ -10,7 +10,7 @@ type GraphWidgetRendererProps = {
export const GraphWidgetRenderer = ({ widget }: GraphWidgetRendererProps) => {
if (!widget.configuration || !('graphType' in widget.configuration)) {
return <PageLayoutWidgetNoDataDisplay widgetId={widget.id} />;
return <PageLayoutWidgetNoDataDisplay />;
}
const graphType = widget.configuration.graphType;
@@ -19,7 +19,7 @@ export const GraphWidgetRenderer = ({ widget }: GraphWidgetRendererProps) => {
!Object.values(GraphType).includes(graphType) ||
!isDefined(widget.objectMetadataId)
) {
return <PageLayoutWidgetNoDataDisplay widgetId={widget.id} />;
return <PageLayoutWidgetNoDataDisplay />;
}
return (
@@ -84,7 +84,7 @@ export const IframeWidget = ({ widget }: IframeWidgetProps) => {
return (
<StyledContainer $isEditMode={isPageLayoutInEditMode}>
<StyledErrorContainer>
<PageLayoutWidgetNoDataDisplay widgetId={widget.id} />
<PageLayoutWidgetNoDataDisplay />
</StyledErrorContainer>
</StyledContainer>
);