From 7ffdf87409e579da9def184551af66a1bffe54cf Mon Sep 17 00:00:00 2001 From: izawartka <59137928+izawartka@users.noreply.github.com> Date: Sun, 27 Jul 2025 22:34:17 +0200 Subject: [PATCH] Added original signal names option +Added an option to show original (internal) signal names --- src/components/SettingsManager.js | 2 ++ .../SignalExtendedRenderer.js | 9 ++++--- .../map/object-renderers/SignalRenderer.js | 8 +++--- .../SignalStandardRenderer.js | 5 ++-- src/components/sidemenu/LayerOptionsMenu.js | 2 ++ .../sidemenu/OriginalSignalNamesCheckbox.js | 26 +++++++++++++++++++ src/components/sidemenu/SideMenu.css | 3 ++- 7 files changed, 44 insertions(+), 11 deletions(-) create mode 100644 src/components/sidemenu/OriginalSignalNamesCheckbox.js diff --git a/src/components/SettingsManager.js b/src/components/SettingsManager.js index d37f480..3b0b7ae 100644 --- a/src/components/SettingsManager.js +++ b/src/components/SettingsManager.js @@ -7,6 +7,7 @@ export default function SettingsManager(props) { const [ trackColorMode, setTrackColorMode ] = useState(Constants.trackColorModeDefault); const [ showTrackHoverInfo, setShowTrackHoverInfo ] = useState(true); const [ extendedSignals, setExtendedSignals ] = useState(true); + const [ originalSignalNames, setOriginalSignalNames ] = useState(false); const [ settingsLoaded, setSettingsLoaded ] = useState(false); const loadLayersSettings = useCallback(() => { @@ -29,6 +30,7 @@ export default function SettingsManager(props) { showTrackHoverInfo, setShowTrackHoverInfo, trackColorMode, setTrackColorMode, extendedSignals, setExtendedSignals, + originalSignalNames, setOriginalSignalNames }}> { props.children } diff --git a/src/components/map/object-renderers/SignalExtendedRenderer.js b/src/components/map/object-renderers/SignalExtendedRenderer.js index 59372ca..ec34f6d 100644 --- a/src/components/map/object-renderers/SignalExtendedRenderer.js +++ b/src/components/map/object-renderers/SignalExtendedRenderer.js @@ -7,7 +7,7 @@ import AlwaysUpText from '../text/AlwaysUpText'; import C from '../../../helpers/extendedSignalsConstants'; export default function SignalExtendedRenderer(props) { - const { object } = props; + const { object, showOriginalName } = props; const [x, y] = object.pos.toSVGCoords(); const baseRot = object.rot.y; @@ -18,23 +18,24 @@ export default function SignalExtendedRenderer(props) { return ( - + ); } function SignalNameText(props) { - const {object, rot, pointsData} = props; + const {object, rot, pointsData, showOriginalName} = props; const isOverhead = object.signal_elements.isOverhead(); const baseY = isOverhead ? pointsData.headOffsetY + pointsData.polePoints.end : 0; + const name = showOriginalName ? object.name : object.getPrintableSignalName(); return ( ); diff --git a/src/components/map/object-renderers/SignalRenderer.js b/src/components/map/object-renderers/SignalRenderer.js index e5a2267..5bfde22 100644 --- a/src/components/map/object-renderers/SignalRenderer.js +++ b/src/components/map/object-renderers/SignalRenderer.js @@ -5,12 +5,12 @@ import SettingsContext from '../../../contexts/SettingsContext'; export default function SignalRenderer(props) { const { object } = props; - const { extendedSignals } = useContext(SettingsContext); - + const { extendedSignals, originalSignalNames: showOriginalName } = useContext(SettingsContext); + if (extendedSignals && object.signal_elements) { - return ; + return ; } else { - return ; + return ; } } diff --git a/src/components/map/object-renderers/SignalStandardRenderer.js b/src/components/map/object-renderers/SignalStandardRenderer.js index 4535e57..79dff7f 100644 --- a/src/components/map/object-renderers/SignalStandardRenderer.js +++ b/src/components/map/object-renderers/SignalStandardRenderer.js @@ -2,8 +2,9 @@ import { ReactSVG } from "react-svg"; import AlwaysUpText from "../text/AlwaysUpText"; export default function SignalStandardRenderer(props) { - const { object } = props; + const { object, showOriginalName } = props; const [x, y] = object.pos.toSVGCoords(); + const name = showOriginalName ? object.name : object.getPrintableSignalName(); return ( @@ -22,7 +23,7 @@ export default function SignalStandardRenderer(props) { baseRot={object.rot.y} additionalRot={-90} offsetY={-2} - text={object.getPrintableSignalName()} + text={name} /> ); diff --git a/src/components/sidemenu/LayerOptionsMenu.js b/src/components/sidemenu/LayerOptionsMenu.js index 7103abe..58c4165 100644 --- a/src/components/sidemenu/LayerOptionsMenu.js +++ b/src/components/sidemenu/LayerOptionsMenu.js @@ -1,4 +1,5 @@ import ExtendedSignalsCheckbox from "./ExtendedSignalsCheckbox"; +import OriginalSignalNamesCheckbox from "./OriginalSignalNamesCheckbox"; import ShowTrackHoverInfoCheckbox from "./ShowTrackHoverInfoCheckbox"; import TrackColorMode from "./track-color-mode/TrackColorMode"; @@ -9,6 +10,7 @@ export default function LayerOptionsMenu() {
+
diff --git a/src/components/sidemenu/OriginalSignalNamesCheckbox.js b/src/components/sidemenu/OriginalSignalNamesCheckbox.js new file mode 100644 index 0000000..f25e505 --- /dev/null +++ b/src/components/sidemenu/OriginalSignalNamesCheckbox.js @@ -0,0 +1,26 @@ +import { useContext } from "react"; +import SettingsContext from "../../contexts/SettingsContext"; + +export default function OriginalSignalNamesCheckbox(props) { + const { originalSignalNames, setOriginalSignalNames, layers } = useContext(SettingsContext); + + const handleChange = (event) => { + setOriginalSignalNames(event.target.checked); + }; + + let divClass = 'original-signal-names-checkbox'; + if (!layers['signals']) divClass += ' hidden'; + + return ( +
+ +
+ ); +} diff --git a/src/components/sidemenu/SideMenu.css b/src/components/sidemenu/SideMenu.css index 74d39ef..831072a 100644 --- a/src/components/sidemenu/SideMenu.css +++ b/src/components/sidemenu/SideMenu.css @@ -80,7 +80,8 @@ } .extended-signals-checkbox input, -.show-track-hover-info-checkbox input { +.show-track-hover-info-checkbox input, +.original-signal-names-checkbox input { margin-right: 0.5em; vertical-align: middle; }