Added an option to disable track hover info
*Added an option to disable track hover info in the side menu
This commit is contained in:
parent
66eae33e80
commit
2c904664e6
@ -5,6 +5,7 @@ import Constants from "../helpers/constants";
|
|||||||
export default function SettingsManager(props) {
|
export default function SettingsManager(props) {
|
||||||
const [ layers, setLayers ] = useState([]);
|
const [ layers, setLayers ] = useState([]);
|
||||||
const [ trackColorMode, setTrackColorMode ] = useState(Constants.trackColorModeDefault);
|
const [ trackColorMode, setTrackColorMode ] = useState(Constants.trackColorModeDefault);
|
||||||
|
const [ showTrackHoverInfo, setShowTrackHoverInfo ] = useState(false);
|
||||||
const [ settingsLoaded, setSettingsLoaded ] = useState(false);
|
const [ settingsLoaded, setSettingsLoaded ] = useState(false);
|
||||||
|
|
||||||
const loadLayersSettings = useCallback(() => {
|
const loadLayersSettings = useCallback(() => {
|
||||||
@ -24,6 +25,7 @@ export default function SettingsManager(props) {
|
|||||||
return (
|
return (
|
||||||
<SettingsContext.Provider value={{
|
<SettingsContext.Provider value={{
|
||||||
layers, setLayers,
|
layers, setLayers,
|
||||||
|
showTrackHoverInfo, setShowTrackHoverInfo,
|
||||||
trackColorMode, setTrackColorMode
|
trackColorMode, setTrackColorMode
|
||||||
}}>
|
}}>
|
||||||
{ props.children }
|
{ props.children }
|
||||||
|
|||||||
@ -5,6 +5,16 @@ import SettingsContext from "../../../contexts/SettingsContext";
|
|||||||
import './TrackHoverInfo.css';
|
import './TrackHoverInfo.css';
|
||||||
|
|
||||||
export default function TrackHoverInfo() {
|
export default function TrackHoverInfo() {
|
||||||
|
const { showTrackHoverInfo } = useContext(SettingsContext);
|
||||||
|
|
||||||
|
if (!showTrackHoverInfo) return null;
|
||||||
|
|
||||||
|
return (
|
||||||
|
<InnerTrackHoverInfo />
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function InnerTrackHoverInfo() {
|
||||||
const [ hoveredTrack, setHoveredTrack ] = useState(null);
|
const [ hoveredTrack, setHoveredTrack ] = useState(null);
|
||||||
const mousePos = useRef({ x: 0, y: 0 });
|
const mousePos = useRef({ x: 0, y: 0 });
|
||||||
const divRef = useRef(null);
|
const divRef = useRef(null);
|
||||||
|
|||||||
23
src/components/sidemenu/ShowTrackHoverInfoCheckbox.js
Normal file
23
src/components/sidemenu/ShowTrackHoverInfoCheckbox.js
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
import { useContext } from "react";
|
||||||
|
import SettingsContext from "../../contexts/SettingsContext";
|
||||||
|
|
||||||
|
export default function ShowTrackHoverInfoCheckbox(props) {
|
||||||
|
const { showTrackHoverInfo, setShowTrackHoverInfo } = useContext(SettingsContext);
|
||||||
|
|
||||||
|
const handleChange = (event) => {
|
||||||
|
setShowTrackHoverInfo(event.target.checked);
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="show-track-hover-info-checkbox">
|
||||||
|
<label>
|
||||||
|
<input
|
||||||
|
type="checkbox"
|
||||||
|
checked={showTrackHoverInfo}
|
||||||
|
onChange={handleChange}
|
||||||
|
/>
|
||||||
|
Show track info on hover
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@ -56,3 +56,8 @@
|
|||||||
margin-top: auto;
|
margin-top: auto;
|
||||||
align-items: flex-end;
|
align-items: flex-end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.show-track-hover-info-checkbox input {
|
||||||
|
margin-right: 0.5em;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|||||||
@ -2,6 +2,7 @@ import {useContext} from 'react';
|
|||||||
import MainContext from '../../contexts/MainContext';
|
import MainContext from '../../contexts/MainContext';
|
||||||
import './SideMenu.css';
|
import './SideMenu.css';
|
||||||
import LayersMenu from './LayersMenu';
|
import LayersMenu from './LayersMenu';
|
||||||
|
import ShowTrackHoverInfoCheckbox from './ShowTrackHoverInfoCheckbox';
|
||||||
import TrackColorMode from './track-color-mode/TrackColorMode';
|
import TrackColorMode from './track-color-mode/TrackColorMode';
|
||||||
import SceneryInfoButton from './SceneryInfoButton';
|
import SceneryInfoButton from './SceneryInfoButton';
|
||||||
import DistanceMeterButton from './DistanceMeterButton';
|
import DistanceMeterButton from './DistanceMeterButton';
|
||||||
@ -18,6 +19,7 @@ export default function SideMenu() {
|
|||||||
<SceneryInfoButton />
|
<SceneryInfoButton />
|
||||||
<DistanceMeterButton />
|
<DistanceMeterButton />
|
||||||
<LayersMenu />
|
<LayersMenu />
|
||||||
|
<ShowTrackHoverInfoCheckbox />
|
||||||
<TrackColorMode />
|
<TrackColorMode />
|
||||||
<InfoFooter />
|
<InfoFooter />
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user