@livelike/react-native
Version:
LiveLike React Native package
53 lines • 1.57 kB
JavaScript
import { createStore } from './store';
const initialTimelineWidgetStoreValue = {};
export const timelineWidgetStore = createStore(initialTimelineWidgetStoreValue);
export const timelineWidgetStoreActions = {
updateTimelineWidgetStateAction(_ref) {
let {
programId,
widgetTimelineState
} = _ref;
const prevTimelineWidgetsState = timelineWidgetStore.get()[programId];
timelineWidgetStore.set({
...timelineWidgetStore.get(),
[]: {
...prevTimelineWidgetsState,
...widgetTimelineState
}
});
},
updateTimelineWidgetsAction(_ref2) {
let {
programId,
widgets,
prepend
} = _ref2;
const prevTimelineWidgetsState = timelineWidgetStore.get()[programId];
let updatedWidgets = (prevTimelineWidgetsState === null || prevTimelineWidgetsState === void 0 ? void 0 : prevTimelineWidgetsState.widgets) ?? [];
const widgetIdSet = new Set();
for (const {
widgetId
} of updatedWidgets) {
widgetIdSet.add(widgetId);
}
const filteredWidgets = widgets.filter(_ref3 => {
let {
widgetId
} = _ref3;
return !widgetIdSet.has(widgetId);
});
if (prepend) {
updatedWidgets = [...filteredWidgets, ...updatedWidgets];
} else {
updatedWidgets = [...updatedWidgets, ...filteredWidgets];
}
timelineWidgetStore.set({
...timelineWidgetStore.get(),
[]: {
...prevTimelineWidgetsState,
widgets: updatedWidgets
}
});
}
};
//# sourceMappingURL=timelineWidget.js.map