mirror of
https://github.com/wanderer-industries/wanderer
synced 2025-11-29 20:43:23 +00:00
* fix(Map): fix design of kills widget, fix design of signatures widget - refactor a lot of code, fixed problem with tooltip blinking * fix(Map): refactor Tracking dialog, refactor Activity tracker, refactor codebase and some styles * fix(Core): don't count character passage on manual add connection * refactor(Core): improved characters tracking API * fix(Core): fixed link signature to system on 'leads to' set * fix(Map): Refactor map settings and prepared it to easier using * fix(Map): Add support new command for following update * fix(Map): Add support new command for main update * refactor(Core): Reduce map init data by using cached system static data * refactor(Core): Reduce map init data by extract signatures loading to a separate event * fix(Core): adjusted IP rate limits * fix(Map): Update design of tracking characters. Added icons for following and main. Added ability to see that character on the station or structure --------- Co-authored-by: achichenkov <aleksei.chichenkov@telleqt.ai> Co-authored-by: Dmitry Popov <dmitriypopovsamara@gmail.com>
72 lines
2.3 KiB
TypeScript
72 lines
2.3 KiB
TypeScript
import { ProgressSpinner } from 'primereact/progressspinner';
|
|
import { DataTable } from 'primereact/datatable';
|
|
import {
|
|
getRowClassName,
|
|
renderCharacterTemplate,
|
|
renderValueTemplate,
|
|
} from '@/hooks/Mapper/components/mapRootContent/components/CharacterActivity/helpers.tsx';
|
|
import { Column } from 'primereact/column';
|
|
import { useMapRootState } from '@/hooks/Mapper/mapRootProvider';
|
|
import { useMemo } from 'react';
|
|
|
|
export const CharacterActivityContent = () => {
|
|
const {
|
|
data: { characterActivityData },
|
|
} = useMapRootState();
|
|
|
|
const activity = useMemo(() => characterActivityData?.activity || [], [characterActivityData]);
|
|
const loading = useMemo(() => characterActivityData?.loading !== false, [characterActivityData]);
|
|
|
|
if (loading) {
|
|
return (
|
|
<div className="flex flex-col items-center justify-center h-full w-full">
|
|
<ProgressSpinner className="w-[50px] h-[50px]" strokeWidth="4" />
|
|
<div className="mt-4 text-text-color-secondary text-sm">Loading character activity data...</div>
|
|
</div>
|
|
);
|
|
}
|
|
|
|
if (activity.length === 0) {
|
|
return <div className="p-8 text-center text-text-color-secondary italic">No character activity data available</div>;
|
|
}
|
|
|
|
return (
|
|
<DataTable
|
|
value={activity}
|
|
scrollable
|
|
className="w-full"
|
|
tableClassName="w-full border-0"
|
|
emptyMessage="No character activity data available"
|
|
sortField="passages"
|
|
sortOrder={-1}
|
|
size="small"
|
|
rowClassName={getRowClassName}
|
|
rowHover
|
|
>
|
|
<Column field="character_name" header="Character" body={renderCharacterTemplate} sortable className="!py-[6px]" />
|
|
|
|
<Column
|
|
field="passages"
|
|
header="Passages"
|
|
headerClassName="[&_.p-column-header-content]:justify-center"
|
|
body={rowData => renderValueTemplate(rowData, 'passages')}
|
|
sortable
|
|
/>
|
|
<Column
|
|
field="connections"
|
|
header="Connections"
|
|
headerClassName="[&_.p-column-header-content]:justify-center"
|
|
body={rowData => renderValueTemplate(rowData, 'connections')}
|
|
sortable
|
|
/>
|
|
<Column
|
|
field="signatures"
|
|
header="Signatures"
|
|
headerClassName="[&_.p-column-header-content]:justify-center"
|
|
body={rowData => renderValueTemplate(rowData, 'signatures')}
|
|
sortable
|
|
/>
|
|
</DataTable>
|
|
);
|
|
};
|