Improve sorting indexer by status

This commit is contained in:
Bogdan
2024-08-23 02:52:59 +03:00
parent 696001a8bb
commit 99f9a0b4e6
2 changed files with 43 additions and 11 deletions

View File

@@ -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

View File

@@ -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 ?? '';
}
};