feat: adds deleteView reducer

This commit is contained in:
Mark Mankarious
2023-11-03 19:41:36 +00:00
parent 28267da22d
commit 80f257b016
2 changed files with 17 additions and 0 deletions

View File

@@ -29,6 +29,10 @@ type ViewReducerAction =
action: 'UPDATE_VIEW';
payload: Parameters<typeof viewReducers.updateView>[0];
}
| {
action: 'DELETE_VIEW';
payload: undefined;
}
| {
action: 'CREATE_VIEWITEM';
payload: Parameters<typeof viewItemReducers.createViewItem>[0];

View File

@@ -46,6 +46,16 @@ export const syncScene = ({ viewId, state }: ViewReducerContext): State => {
return stateAfterTextBoxesSynced;
};
export const deleteView = (ctx: ViewReducerContext): State => {
const newState = produce(ctx.state, (draft) => {
const view = getItemByIdOrThrow(draft.model.views, ctx.viewId);
draft.model.views.splice(view.index, 1);
});
return newState;
};
export const updateView = (
updates: Partial<Pick<View, 'name'>>,
ctx: ViewReducerContext
@@ -86,6 +96,9 @@ export const view = ({ action, payload, ctx }: ViewReducerParams) => {
case 'UPDATE_VIEW':
newState = updateView(payload, ctx);
break;
case 'DELETE_VIEW':
newState = deleteView(ctx);
break;
case 'CREATE_VIEWITEM':
newState = viewItemReducers.createViewItem(payload, ctx);
break;