import { emitMapEvent } from '@/hooks/Mapper/events'; import { isDocked } from '@/hooks/Mapper/helpers/isDocked.ts'; import { useMapRootState } from '@/hooks/Mapper/mapRootProvider'; import { CharacterTypeRaw } from '@/hooks/Mapper/types'; import { Commands, OutCommand } from '@/hooks/Mapper/types/mapHandlers.ts'; import { useAutoAnimate } from '@formkit/auto-animate/react'; import clsx from 'clsx'; import { PrimeIcons } from 'primereact/api'; import { useCallback } from 'react'; import classes from './Characters.module.scss'; interface CharactersProps { data: CharacterTypeRaw[]; } export const Characters = ({ data }: CharactersProps) => { const [parent] = useAutoAnimate(); const { outCommand, data: { mainCharacterEveId, followingCharacterEveId }, } = useMapRootState(); const handleSelect = useCallback(async (character: CharacterTypeRaw) => { if (!character) { return; } await outCommand({ type: OutCommand.startTracking, data: { character_eve_id: character.eve_id }, }); emitMapEvent({ name: Commands.centerSystem, data: character.location?.solar_system_id?.toString(), }); }, []); const items = data.map(character => (