All files / src/form/dashboard WidgetComponentsMapping.tsx

14.28% Statements 1/7
0% Branches 0/2
0% Functions 0/2
16.66% Lines 1/6

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                  
import { ReactElement } from "react";
import { DashboardWidgetProps, WidgetDataResponseProps } from "@props/RecordProps";
import { DefaultWidget } from "./widgets";
import { WidgetConfigures } from "./WidgetConfigs";
 
export type DashboardWidgetComponent = ((props: WidgetComponentRenderProps) => ReactElement);
export type WidgetComponentRenderProps = {
  widget: DashboardWidgetProps;
  dataAndConfigs: WidgetDataResponseProps;
};
 
export type AntdChartWidgetComponentRenderProps = {
  Component: ((props: unknown) => ReactElement);
  extraProps: {
    [propName: string]: unknown;
  }
}
 
export const getWidgetComponent = (props: DashboardWidgetProps): DashboardWidgetComponent => {
  const { type } = props;
  const component = WidgetConfigures.find(w => w.type === type)?.component;
  if (component != null) {
    return component;
  } else {
    return DefaultWidget;
  }
};