TrackObjectRenderer and Signal bugfixes

*Fixed track objects having too small hover area
*Fixed track objects names not being centered
*Removed unneccessary '\' from Signal.getPrintableSignalName causing a warning
This commit is contained in:
izawartka 2025-06-02 21:10:10 +02:00
parent 25a3b278d0
commit ad628207ab
3 changed files with 18 additions and 8 deletions

View File

@ -26,12 +26,6 @@ const ObjectRendererQueue = [
'renderer': SwitchNameRenderer, 'renderer': SwitchNameRenderer,
'cond': (settings) => settings.layers['switches-names'] 'cond': (settings) => settings.layers['switches-names']
}, },
{
'name': 'track-objects',
'category': 'track-objects',
'renderer': TrackObjectRenderer,
'cond': (settings) => settings.layers['track-objects']
},
{ {
'name': 'signals', 'name': 'signals',
'category': 'track-objects', 'category': 'track-objects',
@ -50,7 +44,13 @@ const ObjectRendererQueue = [
'category': 'routes', 'category': 'routes',
'renderer': RouteRenderer, 'renderer': RouteRenderer,
'cond': (settings) => settings.layers['routes'] 'cond': (settings) => settings.layers['routes']
} },
{
'name': 'track-objects',
'category': 'track-objects',
'renderer': TrackObjectRenderer,
'cond': (settings) => settings.layers['track-objects']
},
] ]
export default ObjectRendererQueue; export default ObjectRendererQueue;

View File

@ -5,6 +5,14 @@ export default function TrackObjectRenderer(props) {
return ( return (
<g className="track-object"> <g className="track-object">
<rect
x={x - 2}
y={y - 2}
width='4px'
height='4px'
fill='transparent'
stroke='none'
></rect>
<circle <circle
cx={x} cx={x}
cy={y} cy={y}
@ -16,6 +24,8 @@ export default function TrackObjectRenderer(props) {
id={`track-object-${object.id}`} id={`track-object-${object.id}`}
style={{ userSelect: "none" }} style={{ userSelect: "none" }}
enableBackground="new 0 0 100 100" enableBackground="new 0 0 100 100"
textAnchor="middle"
dominantBaseline="middle"
> >
{text} {text}
</text> </text>

View File

@ -34,7 +34,7 @@ export default class Signal extends TrackObject {
} }
// remove everything after the first '[' or '<' character (inclusive) // remove everything after the first '[' or '<' character (inclusive)
const match = name.match(/^[^<\[]*/); const match = name.match(/^[^<[]*/);
if (match) { if (match) {
name = match[0].trim(); name = match[0].trim();
} }