diff --git a/assets/js/hooks/Mapper/components/mapRootContent/components/Connections/Connections.module.scss b/assets/js/hooks/Mapper/components/mapRootContent/components/Connections/Connections.module.scss index 42c9c058..fd2d2393 100644 --- a/assets/js/hooks/Mapper/components/mapRootContent/components/Connections/Connections.module.scss +++ b/assets/js/hooks/Mapper/components/mapRootContent/components/Connections/Connections.module.scss @@ -3,7 +3,7 @@ } .SidebarOnTheMap { - width: 400px; + width: 460px; padding: 0 !important; :global { diff --git a/assets/js/hooks/Mapper/components/mapRootContent/components/Connections/Connections.tsx b/assets/js/hooks/Mapper/components/mapRootContent/components/Connections/Connections.tsx index d88d6b24..35b95b7e 100644 --- a/assets/js/hooks/Mapper/components/mapRootContent/components/Connections/Connections.tsx +++ b/assets/js/hooks/Mapper/components/mapRootContent/components/Connections/Connections.tsx @@ -5,6 +5,7 @@ import { ConnectionType, OutCommand, Passage, + PassageWithSourceTarget, SolarSystemConnection, } from '@/hooks/Mapper/types'; import clsx from 'clsx'; @@ -19,7 +20,7 @@ import { PassageCard } from './PassageCard'; const sortByDate = (a: string, b: string) => new Date(a).getTime() - new Date(b).getTime(); -const itemTemplate = (item: Passage, options: VirtualScrollerTemplateOptions) => { +const itemTemplate = (item: PassageWithSourceTarget, options: VirtualScrollerTemplateOptions) => { return (
}; export interface ConnectionPassagesContentProps { - passages: Passage[]; + passages: PassageWithSourceTarget[]; } export const ConnectionPassages = ({ passages = [] }: ConnectionPassagesContentProps) => { @@ -113,6 +114,20 @@ export const Connections = ({ selectedConnection, onHide }: OnTheMapProps) => { [outCommand], ); + const preparedPassages = useMemo(() => { + if (!cnInfo) { + return []; + } + + return passages + .sort((a, b) => sortByDate(b.inserted_at, a.inserted_at)) + .map(x => ({ + ...x, + source: x.from ? cnInfo.target : cnInfo.source, + target: x.from ? cnInfo.source : cnInfo.target, + })); + }, [cnInfo, passages]); + useEffect(() => { if (!selectedConnection) { return; @@ -145,12 +160,14 @@ export const Connections = ({ selectedConnection, onHide }: OnTheMapProps) => {
{ {/* separator */}
- +
); diff --git a/assets/js/hooks/Mapper/components/mapRootContent/components/Connections/PassageCard/PassageCard.module.scss b/assets/js/hooks/Mapper/components/mapRootContent/components/Connections/PassageCard/PassageCard.module.scss index f36b6021..08af7c64 100644 --- a/assets/js/hooks/Mapper/components/mapRootContent/components/Connections/PassageCard/PassageCard.module.scss +++ b/assets/js/hooks/Mapper/components/mapRootContent/components/Connections/PassageCard/PassageCard.module.scss @@ -35,6 +35,10 @@ &.ThreeColumns { grid-template-columns: auto 1fr auto; } + + &.FourColumns { + grid-template-columns: auto auto 1fr auto; + } } .CardBorderLeftIsOwn { diff --git a/assets/js/hooks/Mapper/components/mapRootContent/components/Connections/PassageCard/PassageCard.tsx b/assets/js/hooks/Mapper/components/mapRootContent/components/Connections/PassageCard/PassageCard.tsx index 04669de2..fe7ff986 100644 --- a/assets/js/hooks/Mapper/components/mapRootContent/components/Connections/PassageCard/PassageCard.tsx +++ b/assets/js/hooks/Mapper/components/mapRootContent/components/Connections/PassageCard/PassageCard.tsx @@ -1,7 +1,7 @@ import clsx from 'clsx'; import classes from './PassageCard.module.scss'; -import { Passage } from '@/hooks/Mapper/types'; -import { TimeAgo } from '@/hooks/Mapper/components/ui-kit'; +import { PassageWithSourceTarget } from '@/hooks/Mapper/types'; +import { SystemView, TimeAgo, TooltipPosition } from '@/hooks/Mapper/components/ui-kit'; import { WdTooltipWrapper } from '@/hooks/Mapper/components/ui-kit/WdTooltipWrapper'; import { kgToTons } from '@/hooks/Mapper/utils/kgToTons.ts'; import { useMemo } from 'react'; @@ -11,7 +11,7 @@ type PassageCardType = { showShipName?: boolean; // showSystem?: boolean; // useSystemsCache?: boolean; -} & Passage; +} & PassageWithSourceTarget; const SHIP_NAME_RX = /u'|'/g; export const getShipName = (name: string) => { @@ -25,7 +25,7 @@ export const getShipName = (name: string) => { }); }; -export const PassageCard = ({ inserted_at, character: char, ship }: PassageCardType) => { +export const PassageCard = ({ inserted_at, character: char, ship, source, target, from }: PassageCardType) => { const isOwn = false; const insertedAt = useMemo(() => { @@ -37,7 +37,39 @@ export const PassageCard = ({ inserted_at, character: char, ship }: PassageCardT
{/*here icon and other*/} -
+
+ + + + +
+ } + > +
+ + {/*portrait*/} ; export type Passage = { + from: boolean; inserted_at: string; // Date ship: ShipTypeRaw; character: PassageLimitedCharacterType; }; +export type PassageWithSourceTarget = { + source: string; + target: string; +} & Passage; + export type ConnectionInfoOutput = { marl_eol_time: string; };