52 lines
1.4 KiB
TypeScript
52 lines
1.4 KiB
TypeScript
|
|
import {
|
||
|
|
RegisteredWidgetFeatures,
|
||
|
|
WidgetFeatureProps,
|
||
|
|
} from "utils/WidgetFeatures";
|
||
|
|
import { DSLWidget } from "widgets/constants";
|
||
|
|
export const migratePropertiesForDynamicHeight = (currentDSL: DSLWidget) => {
|
||
|
|
/* const widgetsWithDynamicHeight = compact(
|
||
|
|
ALL_WIDGETS_AND_CONFIG.map(([, config]) => {
|
||
|
|
if (config.features?.dynamicHeight) return config.type;
|
||
|
|
}),
|
||
|
|
); */
|
||
|
|
// Ideally the above should be the code, however,
|
||
|
|
// there seems to be some cyclic imports which
|
||
|
|
// cause the test to fail in CI.
|
||
|
|
const widgetsWithDynamicHeight = [
|
||
|
|
"CONTAINER_WIDGET",
|
||
|
|
"TEXT_WIDGET",
|
||
|
|
"CHECKBOX_WIDGET",
|
||
|
|
"RADIO_GROUP_WIDGET",
|
||
|
|
"TABS_WIDGET",
|
||
|
|
"MODAL_WIDGET",
|
||
|
|
"RICH_TEXT_EDITOR_WIDGET",
|
||
|
|
"DATE_PICKER_WIDGET2",
|
||
|
|
"SWITCH_WIDGET",
|
||
|
|
"FORM_WIDGET",
|
||
|
|
"RATE_WIDGET",
|
||
|
|
"CHECKBOX_GROUP_WIDGET",
|
||
|
|
"STATBOX_WIDGET",
|
||
|
|
"MULTI_SELECT_TREE_WIDGET",
|
||
|
|
"SINGLE_SELECT_TREE_WIDGET",
|
||
|
|
"SWITCH_GROUP_WIDGET",
|
||
|
|
"SELECT_WIDGET",
|
||
|
|
"MULTI_SELECT_WIDGET_V2",
|
||
|
|
"INPUT_WIDGET_V2",
|
||
|
|
"PHONE_INPUT_WIDGET",
|
||
|
|
"CURRENCY_INPUT_WIDGET",
|
||
|
|
"JSON_FORM_WIDGET",
|
||
|
|
];
|
||
|
|
if (widgetsWithDynamicHeight.includes(currentDSL.type)) {
|
||
|
|
currentDSL = {
|
||
|
|
...currentDSL,
|
||
|
|
...WidgetFeatureProps[RegisteredWidgetFeatures.DYNAMIC_HEIGHT],
|
||
|
|
};
|
||
|
|
}
|
||
|
|
if (Array.isArray(currentDSL.children)) {
|
||
|
|
currentDSL.children = currentDSL.children.map(
|
||
|
|
migratePropertiesForDynamicHeight,
|
||
|
|
);
|
||
|
|
}
|
||
|
|
return currentDSL;
|
||
|
|
};
|