Проблемная часть, я думаю, заключается в следующем:
...state.tabs.map(
(tab, index) => index === action.payload
? tab.active = true
: tab.active = false
)
Вы ничего не возвращаете из функции внутри карты. Вместо этого вы должны вернуть объекты табуляции.
...state.tabs.map(
(tab, index) => ({
...tab,
isActive: index === action.payload
}))
И, как указал @Gangadhar Gandi, вы должны включить action.type, а не action.payload