35 lines
790 B
TypeScript
35 lines
790 B
TypeScript
|
|
import { isArray } from "lodash";
|
||
|
|
import { MenuButtonWidgetProps, MenuItemsSource } from "../constants";
|
||
|
|
|
||
|
|
export const getSourceDataKeysForEventAutocomplete = (
|
||
|
|
props: MenuButtonWidgetProps,
|
||
|
|
) => {
|
||
|
|
if (
|
||
|
|
props.menuItemsSource === MenuItemsSource.STATIC ||
|
||
|
|
!props.sourceDataKeys?.length
|
||
|
|
) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
return {
|
||
|
|
currentItem: props.sourceDataKeys.reduce(
|
||
|
|
(prev, cur) => ({ ...prev, [cur]: "" }),
|
||
|
|
{},
|
||
|
|
),
|
||
|
|
};
|
||
|
|
};
|
||
|
|
|
||
|
|
export const getSourceDataKeys = (props: MenuButtonWidgetProps) => {
|
||
|
|
if (!isArray(props.sourceData) || !props.sourceData?.length) {
|
||
|
|
return [];
|
||
|
|
}
|
||
|
|
|
||
|
|
const allKeys: string[] = [];
|
||
|
|
|
||
|
|
// get all keys
|
||
|
|
props.sourceData?.forEach((item) => allKeys.push(...Object.keys(item)));
|
||
|
|
|
||
|
|
// return unique keys
|
||
|
|
return [...new Set(allKeys)];
|
||
|
|
};
|