import { createStore } from './store';

export type IEmojiSliderState = {
  magnitude: number;
};

export type EmojiSliderStoreValue = Record<string, IEmojiSliderState>;

const initialEmojiSliderStoreValue: EmojiSliderStoreValue = {};

export const emojiSliderWidgetStore = createStore(initialEmojiSliderStoreValue);

export type IUpdateSliderMagnitudeAction = {
  widgetId: string;
  magnitude: number;
};

export const emojiSliderWidgetStoreActions = {
  updateEmojiSliderMagnitudeAction({
    widgetId,
    magnitude,
  }: IUpdateSliderMagnitudeAction) {
    emojiSliderWidgetStore.set({
      ...emojiSliderWidgetStore.get(),
      [widgetId]: {
        magnitude,
      },
    });
  },
};
