Merge branch 'refs/heads/main' into fix-signatures-sort

# Conflicts:
#	assets/js/hooks/Mapper/components/mapInterface/widgets/SystemSignatures/SystemSignaturesContent/SystemSignaturesContent.tsx
This commit is contained in:
achichenkov
2024-10-07 09:13:35 +03:00
4 changed files with 30 additions and 3 deletions

View File

@@ -4,7 +4,7 @@ import { parseSignatures } from '@/hooks/Mapper/helpers';
import { OutCommand } from '@/hooks/Mapper/types/mapHandlers.ts';
import { WdTooltip, WdTooltipHandlers } from '@/hooks/Mapper/components/ui-kit';
import { DataTable, DataTableRowMouseEvent } from 'primereact/datatable';
import { DataTable, DataTableRowMouseEvent, SortOrder } from 'primereact/datatable';
import { Column } from 'primereact/column';
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
import useRefState from 'react-usestateref';
@@ -26,6 +26,17 @@ import {
renderTimeLeft,
} from '@/hooks/Mapper/components/mapInterface/widgets/SystemSignatures/renders';
// import { PrimeIcons } from 'primereact/api';
import useLocalStorageState from 'use-local-storage-state';
type SystemSignaturesSortSettings = {
sortField: string;
sortOrder: SortOrder;
}
const SORT_DEFAULT_VALUES: SystemSignaturesSortSettings = {
sortField: 'eve_id',
sortOrder: 1
};
interface SystemSignaturesContentProps {
systemId: string;
@@ -40,6 +51,10 @@ export const SystemSignaturesContent = ({ systemId, settings }: SystemSignatures
const [hoveredSig, setHoveredSig] = useState<SystemSignature | null>(null);
const [sortSettings, setSortSettings] = useLocalStorageState<SystemSignaturesSortSettings>('window:signatures:sort', {
defaultValue: SORT_DEFAULT_VALUES,
});
const tableRef = useRef<HTMLDivElement>(null);
const compact = useMaxWidth(tableRef, 260);
const medium = useMaxWidth(tableRef, 380);
@@ -191,7 +206,9 @@ export const SystemSignaturesContent = ({ systemId, settings }: SystemSignatures
resizableColumns={false}
rowHover
selectAll
sortField="eve_id"
sortField={sortSettings.sortField}
sortOrder={sortSettings.sortOrder}
onSort={(event) => setSortSettings(() => ({ sortField: event.sortField, sortOrder: event.sortOrder }))}
onRowMouseEnter={compact || medium ? handleEnterRow : undefined}
onRowMouseLeave={compact || medium ? handleLeaveRow : undefined}
rowClassName={row => {