Files
sanasto-app/store/actions.ts
2024-03-07 11:36:12 -06:00

41 lines
909 B
TypeScript

import Store from '.';
import { ListItem, Settings, TodoListItem } from '../mock';
export const setMenuOpen = (open: boolean) => {
Store.update(s => {
s.menuOpen = open;
});
};
export const setNotificationsOpen = (open: boolean) => {
Store.update(s => {
s.notificationsOpen = open;
});
};
export const setSettings = (settings: Settings) => {
Store.update(s => {
s.settings = settings;
});
};
// App-specific actions
export const setDone = (
list: TodoListItem,
listItem: ListItem,
done: boolean,
) => {
Store.update((s, o) => {
const listIndex = o.lists.findIndex(l => l === list);
const items = o.lists[listIndex].items;
const itemIndex = items?.findIndex(i => i === listItem);
const item = items?.[itemIndex ?? -1];
if (!item) return;
item.done = done;
if (list === o.selectedList) {
s.selectedList = s.lists[listIndex];
}
});
};