RocketChat/Rocket.Chat

View on GitHub
apps/meteor/client/views/marketplace/hooks/useRadioToggle.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { useCallback } from 'react';

import type { RadioDropDownItem, RadioDropDownOnSelected, RadioDropDownSetData } from '../definitions/RadioDropDownDefinitions';

export const useRadioToggle = (setData: RadioDropDownSetData): RadioDropDownOnSelected => {
    const onSelected = useCallback(
        (item: RadioDropDownItem) => {
            setData((prevState) => {
                prevState.items.forEach((currentItem) => {
                    currentItem.checked = currentItem === item;
                });
                return { ...prevState };
            });
        },
        [setData],
    );
    return onSelected;
};