import { Box, Button, DialogActions, DialogContent, DialogTitle, Slider, TextField } from "@mui/material"; import ColourPicker from "common/ColourPicker"; import ResponsiveDialog from "common/ResponsiveDialog"; import { pond } from "protobuf-ts/pond"; import { useEffect, useState } from "react"; interface Props { open: boolean; close: () => void; theme: pond.ObjectTheme; sizeControl?: boolean; currentSize?: number; colourControl?: boolean; updateObject: (newTheme: pond.ObjectTheme) => void; } export default function MapMarkerSettings(props: Props) { const { theme, sizeControl, colourControl, updateObject, currentSize } = props; //const [objectSettings, setObjectSettings] = useState(props.objectSettings); const [newColour, setNewColour] = useState(""); const [newSize, setNewSize] = useState(50); const markerMin = 40; const markerMax = 125; useEffect(() => { if (currentSize) { setNewSize(currentSize); } else { setNewSize(50); } }, [currentSize]); const reSize = (val: number) => { let size = val; if (val > markerMax) { size = markerMax; } if (val < markerMin) { size = markerMin; } setNewSize(size); }; const update = () => { let newTheme = theme; newTheme.color = newColour; newTheme.height = newSize; newTheme.width = newSize; updateObject(newTheme); }; return ( Change Marker Settings {sizeControl && ( Marker Size reSize(val as number)} valueLabelDisplay="auto" /> reSize(+e.target.value)} /> )} {colourControl && ( Marker Colour setNewColour(color)} /> )} ); }