All files / src/form/dashboard/widgets AntdChartWidget.tsx

42.85% Statements 3/7
0% Branches 0/2
50% Functions 1/2
42.85% Lines 3/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28          6x 90x 90x                                        
import React, { Suspense } from "react";
import {
  AntdChartWidgetComponentRenderProps, DashboardWidgetComponent, WidgetComponentRenderProps
} from "../WidgetComponentsMapping";
 
const AntdChartWidget = (props: AntdChartWidgetComponentRenderProps): DashboardWidgetComponent => {
  const { Component, extraProps } = props;
  return (props: WidgetComponentRenderProps) => {
    const { dataAndConfigs, widget } = props;
    const config = JSON.parse(widget.options)?.config ?? {};
    //ATTENTION: the merge sequence should be extraProps, config, dataAndConfig
    //Since the settings on frontend has lowest priority
    //Then the settings on widget definition
    //Then the settings returned from widget render core logic
    const mergedConfigs = { ...extraProps, ...config, ...dataAndConfigs };
    return (
      <Suspense fallback={<div />}>
        <Component
          className="ds-simple-chart"
          {...mergedConfigs}
        />
      </Suspense>
    );
  };
};
 
export default AntdChartWidget;