in web/frontend/src/app/pages/streams/store/streams-tabs/streams-tabs.reducer.ts [153:227]
silent: Boolean(action.payload.tab.filter.silent),
},
active: true,
});
}
return {
...state,
tabs: tabs,
};
case StreamsTabsActionTypes.UPDATE_TAB:
const stateTabs = [...state.tabs];
action.payload.forEach((update) => (stateTabs[update.position] = new TabModel(update.tab)));
return {...state, tabs: stateTabs};
case StreamsTabsActionTypes.REMOVE_ALL_TABS:
return {
...state,
tabs: [],
};
case StreamsTabsActionTypes.REMOVE_TABS:
const removeIds = new Set(action.payload.tabs.map((tab) => tab.id));
return {
...state,
tabs: state.tabs.filter((tab) => !removeIds.has(tab.id)),
};
case StreamsTabsActionTypes.REMOVE_TAB:
tabs = [...state.tabs];
selectedTabIndex = tabs.findIndex((tab) => {
const action_tab = action.payload.tab;
if (action_tab.symbol) {
return (
action_tab.symbol === tab.symbol &&
action_tab.stream === tab.stream &&
action_tab.id === tab.id
);
} else {
return action_tab.stream === tab.stream && action_tab.id === tab.id;
}
});
if (selectedTabIndex > -1) {
tabs.splice(selectedTabIndex, 1);
}
return {
...state,
tabs: tabs,
};
case StreamsTabsActionTypes.REMOVE_STREAM_TABS:
if (!action.payload.streamKey) return state;
tabs = [...state.tabs];
tabs = tabs.filter((tab) => {
if (action.payload.spaceName) {
return !(
tab.stream === action.payload.streamKey && tab.space === action.payload.spaceName
);
} else {
return tab.stream !== action.payload.streamKey;
}
});
return {
...state,
tabs: tabs,
};
case StreamsTabsActionTypes.REMOVE_SYMBOL_TABS:
tabs = [...state.tabs];
if (action.payload.streamId) {
tabs = tabs.filter((tab) => {
if (tab.symbol) {