UNPKG

rsuite

Version:

A suite of react components

46 lines 1.35 kB
'use client'; export const initialState = { items: [] }; export let DropdownActionType = /*#__PURE__*/function (DropdownActionType) { DropdownActionType[DropdownActionType["RegisterItem"] = 0] = "RegisterItem"; DropdownActionType[DropdownActionType["UnregisterItem"] = 1] = "UnregisterItem"; DropdownActionType[DropdownActionType["UpdateItem"] = 2] = "UpdateItem"; return DropdownActionType; }({}); export function reducer(state = initialState, action) { switch (action.type) { case DropdownActionType.RegisterItem: if (state.items.find(item => item.id === action.payload.id)) { return { ...state, items: state.items.map(item => { if (item.id === action.payload.id) { return { ...item, props: { ...item.props, selected: action.payload.props.selected } }; } return item; }) }; } return { ...state, items: [...state.items, { id: action.payload.id, props: action.payload.props }] }; case DropdownActionType.UnregisterItem: return { ...state, items: state.items.filter(item => item.id !== action.payload.id) }; default: return state; } }