UNPKG

@livelike/react-native

Version:

LiveLike React Native package

48 lines (41 loc) 1.41 kB
import { INumberPredictionItemOption } from '@livelike/javascript'; import { createStore } from './store'; export type INumberPredictionState = { numberOptions: INumberPredictionItemOption[]; }; export type NumberPredictionStoreValue = Record<string, INumberPredictionState>; const initialNumberPredictionStoreValue: NumberPredictionStoreValue = {}; export const numberPredictionWidgetStore = createStore( initialNumberPredictionStoreValue ); export type IUpdateNumberPredictionOptionActionArg = { widgetId: string; numberOption: INumberPredictionItemOption; optionIndex: number; }; export const numberPredictionWidgetStoreActions = { updateNumberPredictionOptionAction({ widgetId, numberOption, optionIndex, }: IUpdateNumberPredictionOptionActionArg) { const numberPredictionState = numberPredictionWidgetStore.get()[widgetId]; if (!numberPredictionState) { return numberPredictionWidgetStore.set({ ...numberPredictionWidgetStore.get(), [widgetId]: { numberOptions: [numberOption], }, }); } const newNumberOptions = [...numberPredictionState.numberOptions]; newNumberOptions.splice(optionIndex, 1, numberOption); numberPredictionWidgetStore.set({ ...numberPredictionWidgetStore.get(), [widgetId]: { ...numberPredictionState, numberOptions: newNumberOptions, }, }); }, };