import { IReactionSpace } from '@livelike/javascript';
import { createStore } from './store';

export type ReactionSpaceStoreValue = Record<string, IReactionSpace>;

const initialReactionSpaceStoreValue: ReactionSpaceStoreValue = {};

export const reactionSpaceStore = createStore(initialReactionSpaceStoreValue);

export type UpdateReactionSpaceActionArgs = {
  targetGroupId: string;
  reactionSpace: IReactionSpace;
};

export const reactionSpaceStoreActions = {
  updateReactionSpaceAction({
    targetGroupId,
    reactionSpace,
  }: UpdateReactionSpaceActionArgs) {
    reactionSpaceStore.set({
      ...reactionSpaceStore.get(),
      [targetGroupId]: reactionSpace,
    });
  },
};
