|
@@ -96,30 +96,35 @@ export const tabStore = createStore<State & Action>(function (set) {
|
|
|
const result = reducer(prev.tabList, value);
|
|
|
|
|
|
switch (value.type) {
|
|
|
- case 'ADD':
|
|
|
+ case 'ADD': // 新增后key改为最后一个
|
|
|
nextActiveKey = value.payload.key;
|
|
|
break;
|
|
|
case 'REMOVE': {
|
|
|
+ // 如果关闭的是当前active 修改为active的前一个
|
|
|
const idx = prev.tabList.findIndex(
|
|
|
val => val.key === value.payload,
|
|
|
);
|
|
|
- idx >= 0 && (nextActiveKey = prev.tabList[idx].key);
|
|
|
+
|
|
|
+ prev.activeKey === prev.tabList[idx].key &&
|
|
|
+ (nextActiveKey = prev.tabList[idx - 1].key);
|
|
|
+
|
|
|
break;
|
|
|
}
|
|
|
- case 'REMOVE_OTHER':
|
|
|
+ case 'REMOVE_OTHER': // 修改为关闭的那个
|
|
|
nextActiveKey = value.payload;
|
|
|
break;
|
|
|
case 'REMOVE_RIGHT': {
|
|
|
+ // 判断是否关闭了active 如果关闭了则显示触发的那个
|
|
|
result.findIndex(val => val.key === prev.activeKey) < 0 &&
|
|
|
(nextActiveKey = value.payload);
|
|
|
break;
|
|
|
}
|
|
|
- case 'CLEAR':
|
|
|
+ case 'CLEAR': // 显示首页
|
|
|
nextActiveKey = '-1';
|
|
|
break;
|
|
|
- case 'SORT': {
|
|
|
+ case 'SORT':
|
|
|
+ // 不需要操作
|
|
|
break;
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
return {tabList: result, activeKey: nextActiveKey};
|