import { merge } from 'lodash';
import { WidgetProps } from 'src/widgets/models';
import { computed } from 'vue';
import { useWidgetStore } from './useWidgetStore';

export function useWidgetData<T = any>(props: WidgetProps, defaultValue?: T) {
  const { getPropsFromStore } = useWidgetStore();
  const widgetProps = computed<T>(() => {
    const parsedProps = getPropsFromStore(props.data) as T;
    return merge(defaultValue || {}, parsedProps);
  });

  return widgetProps;
}
