1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-01 13:47:06 +01:00
metamask-extension/ui/pages/settings/settings-search-list/settings-search-list.js
Garrett Bear 3e520214c9
update icons to ts enum version (#18698)
Co-authored-by: Nidhi Kumari <nidhi.kumari@consensys.net>
Co-authored-by: George Marshall <george.marshall@consensys.net>
Co-authored-by: Brad Decker <bhdecker84@gmail.com>
Co-authored-by: legobeat <109787230+legobeat@users.noreply.github.com>
2023-04-24 09:19:19 -05:00

105 lines
3.6 KiB
JavaScript

import React, { useContext, useEffect } from 'react';
import PropTypes from 'prop-types';
import classnames from 'classnames';
import { highlightSearchedText } from '../../../helpers/utils/settings-search';
import { I18nContext } from '../../../contexts/i18n';
import { Icon, IconName } from '../../../components/component-library';
import { Size } from '../../../helpers/constants/design-system';
export default function SettingsSearchList({ results, onClickSetting }) {
const t = useContext(I18nContext);
useEffect(highlightSearchedText, [results]);
return (
<div className="settings-page__header__search__list">
{results.slice(0, 5).map((result) => {
const { icon, iconName, tabMessage, sectionMessage, route } = result;
return (
Boolean(icon || tabMessage || sectionMessage) && (
<div key={`settings_${route}`}>
<div
className="settings-page__header__search__list__item"
onClick={() => onClickSetting(result)}
>
{iconName ? (
<Icon name={iconName} />
) : (
<i
className={classnames(
'settings-page__header__search__list__item__icon',
icon,
)}
/>
)}
<span
id={`menu-tab_${route}`}
className={classnames(
'settings-page__header__search__list__item__tab',
{
'settings-page__header__search__list__item__tab-multiple-lines':
tabMessage(t) === t('securityAndPrivacy'),
},
)}
>
{tabMessage(t)}
</span>
<Icon
name={IconName.ArrowRight}
size={Size.SM}
className="settings-page__header__search__list__item__caret"
/>
<span
id={`menu-section_${route}`}
className={classnames(
'settings-page__header__search__list__item__section',
{
'settings-page__header__search__list__item__section-multiple-lines':
tabMessage(t) === t('securityAndPrivacy') ||
tabMessage(t) === t('alerts'),
},
)}
>
{sectionMessage(t)}
</span>
</div>
</div>
)
);
})}
{results.length === 0 && (
<div
className="settings-page__header__search__list__item"
style={{ cursor: 'auto', display: 'flex' }}
>
<span className="settings-page__header__search__list__item__no-matching">
{t('settingsSearchMatchingNotFound')}
</span>
</div>
)}
<div
className="settings-page__header__search__list__item"
style={{ cursor: 'auto', display: 'flex' }}
>
<span className="settings-page__header__search__list__item__request">
{t('missingSetting')}
</span>
<a
href="https://community.metamask.io/c/feature-requests-ideas/13"
target="_blank"
rel="noopener noreferrer"
key="need-help-link"
className="settings-page__header__search__list__item__link"
>
{t('missingSettingRequest')}
</a>
</div>
</div>
);
}
SettingsSearchList.propTypes = {
results: PropTypes.array,
onClickSetting: PropTypes.func,
};