Improve sorting indexer by status

pull/2205/head v1.23.0.4690
Bogdan 4 months ago
parent 696001a8bb
commit 99f9a0b4e6

@ -8,6 +8,30 @@ import translate from 'Utilities/String/translate';
import DisabledIndexerInfo from './DisabledIndexerInfo';
import styles from './IndexerStatusCell.css';
function getIconKind(enabled: boolean, redirect: boolean) {
if (enabled) {
return redirect ? kinds.INFO : kinds.SUCCESS;
}
return kinds.DEFAULT;
}
function getIconName(enabled: boolean, redirect: boolean) {
if (enabled) {
return redirect ? icons.REDIRECT : icons.CHECK;
}
return icons.BLOCKLIST;
}
function getIconTooltip(enabled: boolean, redirect: boolean) {
if (enabled) {
return redirect ? translate('EnabledRedirected') : translate('Enabled');
}
return translate('Disabled');
}
interface IndexerStatusCellProps {
className: string;
enabled: boolean;
@ -30,19 +54,13 @@ function IndexerStatusCell(props: IndexerStatusCellProps) {
...otherProps
} = props;
const enableKind = redirect ? kinds.INFO : kinds.SUCCESS;
const enableIcon = redirect ? icons.REDIRECT : icons.CHECK;
const enableTitle = redirect
? translate('EnabledRedirected')
: translate('Enabled');
return (
<Component className={className} {...otherProps}>
<Icon
className={styles.statusIcon}
kind={enabled ? enableKind : kinds.DEFAULT}
name={enabled ? enableIcon : icons.BLOCKLIST}
title={enabled ? enableTitle : translate('Disabled')}
kind={getIconKind(enabled, redirect)}
name={getIconName(enabled, redirect)}
title={getIconTooltip(enabled, redirect)}
/>
{status ? (
<Popover

@ -100,8 +100,22 @@ export const filterPredicates = {
};
export const sortPredicates = {
vipExpiration: function(item) {
return item.fields.find((field) => field.name === 'vipExpiration')?.value ?? '';
status: function({ enable, redirect }) {
let result = 0;
if (redirect) {
result++;
}
if (enable) {
result += 2;
}
return result;
},
vipExpiration: function({ fields = [] }) {
return fields.find((field) => field.name === 'vipExpiration')?.value ?? '';
}
};

Loading…
Cancel
Save