From: Daniel Karbach Date: Thu, 29 May 2025 14:03:39 +0000 (+0200) Subject: mark assigned entrances on map X-Git-Url: https://git.localhorst.tv/?a=commitdiff_plain;h=853e422ef18d9dc737cbdeddf51f91215cc2359c;p=alttp.git mark assigned entrances on map --- diff --git a/resources/js/components/zootr/MixedPoolsTracker.js b/resources/js/components/zootr/MixedPoolsTracker.js index a97dd3f..5d1d516 100644 --- a/resources/js/components/zootr/MixedPoolsTracker.js +++ b/resources/js/components/zootr/MixedPoolsTracker.js @@ -2656,31 +2656,58 @@ const MapEntrance = ({ entrance }) => { setConnection, } = useTracker(); - const classNames = ['entrance']; - if (connections[entrance.id] === 'trash') classNames.push('is-trash'); - if (isDragging(entrance)) classNames.push('is-dragging'); + const className = React.useMemo(() => { + const cs = ['entrance']; + if (connections[entrance.id] === 'trash') cs.push('is-trash'); + if (isDragging(entrance)) cs.push('is-dragging'); + return cs.join(' '); + }, [connections, entrance, isDragging]); + + const destination = React.useMemo(() => { + return getEntrance(connections[entrance.id]) || getRoom(connections[entrance.id]); + }, [connections, entrance]); + + const onClick = React.useCallback((e) => { + onMapEntranceClick(entrance); + e.preventDefault(); + e.stopPropagation(); + }, [entrance, onMapEntranceClick]); + + const onContext = React.useCallback((e) => { + if (connections[entrance.id]) { + setConnection(entrance.id, null); + } else { + setConnection(entrance.id, 'trash'); + } + e.preventDefault(); + e.stopPropagation(); + }, [connections, entrance, setConnection]); + + if (destination) { + return + {destination.name} @ {entrance.name} + ; + } return { - onMapEntranceClick(entrance); - e.preventDefault(); - e.stopPropagation(); - }} - onContextMenu={(e) => { - if (connections[entrance.id]) { - setConnection(entrance.id, null); - } else { - setConnection(entrance.id, 'trash'); - } - e.preventDefault(); - e.stopPropagation(); - }} + onClick={onClick} + onContextMenu={onContext} > {entrance.name} ;