mirror of
https://github.com/stan-smith/FossFLOW.git
synced 2025-12-27 08:29:17 -05:00
feat: adds deleteView reducer
This commit is contained in:
@@ -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];
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user