import React, { FC, useCallback } from 'react'; import { SupportedActionType } from '~/interfaces/activity'; type Props = { dropdownItems: Array<{actionCategory: string, actionNames: SupportedActionType[]}> actionMap: Map onChangeAction: (action: SupportedActionType) => void onChangeMultipleAction: (actions: SupportedActionType[], isChecked: boolean) => void } export const SelectActionDropdown: FC = (props: Props) => { const { dropdownItems, actionMap, onChangeAction, onChangeMultipleAction, } = props; const actionCheckboxChangedHandler = useCallback((action) => { if (onChangeAction != null) { onChangeAction(action); } }, [onChangeAction]); const multipleActionCheckboxChangedHandler = useCallback((actions, isChecked) => { if (onChangeMultipleAction != null) { onChangeMultipleAction(actions, isChecked); } }, [onChangeMultipleAction]); return (
    {dropdownItems.map(item => (
    { multipleActionCheckboxChangedHandler(item.actionNames, e.target.checked) }} />
    { item.actionNames.map(action => (
    { actionCheckboxChangedHandler(action) }} checked={actionMap.get(action)} />
    )) }
    ))}
); };