import { LayoutEventBlocker, TooltipPosition, WdImageSize, WdImgButton } from '@/hooks/Mapper/components/ui-kit'; import { ANOIK_ICON, DOTLAN_ICON, ZKB_ICON } from '@/hooks/Mapper/icons'; import { useCallback, useRef } from 'react'; import clsx from 'clsx'; import { PrimeIcons } from 'primereact/api'; import classes from './FastSystemActions.module.scss'; export interface FastSystemActionsProps { systemId: string; systemName: string; regionName: string; isWH: boolean; showEdit?: boolean; onOpenSettings(): void; } export const FastSystemActions = ({ systemId, systemName, regionName, isWH, onOpenSettings, showEdit, }: FastSystemActionsProps) => { const ref = useRef({ systemId, systemName, regionName, isWH }); ref.current = { systemId, systemName, regionName, isWH }; const handleOpenZKB = useCallback( () => window.open(`https://zkillboard.com/system/${ref.current.systemId}/`, '_blank'), [], ); const handleOpenAnoikis = useCallback( () => window.open(`http://anoik.is/systems/${ref.current.systemName}`, '_blank'), [], ); const handleOpenDotlan = useCallback(() => { if (ref.current.isWH) { window.open(`https://evemaps.dotlan.net/system/${ref.current.systemName}`, '_blank'); return; } return window.open( `https://evemaps.dotlan.net/map/${ref.current.regionName.replace(/ /gim, '_')}/${ref.current.systemName}#jumps`, '_blank', ); }, []); const copySystemNameToClipboard = useCallback(async () => { try { await navigator.clipboard.writeText(ref.current.systemName); } catch (err) { console.error(err); } }, []); return (
{showEdit && ( )}
); };