RocketChat/Rocket.Chat

View on GitHub
packages/ui-client/src/components/MultiSelectCustom/useFilteredOptions.tsx

Summary

Maintainability
A
0 mins
Test Coverage
import type { TranslationKey } from '@rocket.chat/ui-contexts';
import { useTranslation } from '@rocket.chat/ui-contexts';

import type { OptionProp } from './MultiSelectCustom';

export const useFilteredOptions = (optionSearch: string | undefined, options: OptionProp[]) => {
    const t = useTranslation();

    if (!optionSearch) return options;

    let filtered: OptionProp[] = [];

    options.forEach((option) => {
        if (
            t(option.text as TranslationKey)
                .toLowerCase()
                .includes(optionSearch.toLowerCase())
        ) {
            filtered = [...filtered, option];
        }
    });

    return filtered;
};