Есть ли способ вернуться к тому же виду при выходе из полноэкранного режима с помощью ReactMapGL FullscreenControl?

#reactjs #typescript #mapbox #react-map-gl

Вопрос:

Здравствуйте, я пытаюсь исправить свой вид приложения при выходе из полноэкранного режима. Я использую библиотеку React-Map-GL и компонент FullscreenControl, который добавляет кнопку к вашему экземпляру карты и позволяет вам просматривать ее в полноэкранном режиме. При открытии он работает нормально, но при закрытии вид не сворачивается до того же размера. Странный полноэкранный режим при выходе

Вот мой код.

 import React, { useState } from 'react' import ReactMapGL, { Source, Layer, FullscreenControl, NavigationControl } from 'react-map-gl'   type InstanceCardProps = {  item: any  activeResourceType: ResourceType | null  checked: boolean  onChange: any  icon: any  }  export default function InstanceCard (this: any, {  item,  activeResourceType,  checked,  onChange,  icon  }: InstanceCardProps): JSX.Element {  const [collapsed, setCollapsed] = useStatelt;booleangt;(true)   const toggleCollapse = () =gt; {  setCollapsed(!collapsed)  }  const fieldType = activeResourceType === ResourceType.field   const formatDate = (og_date_format: string) =gt; {  return DateTime.fromISO(og_date_format).toFormat(`d MMM yyyy', ' h:mm a`)  }  const centergeo = fieldType amp;amp; item.geometry? [item.geometry][0].coordinates[0][0][0] : "dean"  const Centercoords = [centergeo]  const Multipolycoords = Centercoords[0][0]  const MoreCoords = Centercoords[0][1]  const latitude = fieldType amp;amp; item.center? item.center[1] : Centercoords[0][1]  const longitude = fieldType amp;amp; item.center? item.center[0] : Centercoords[0][0]  const [viewport, setViewPort] = useState({  latitude: latitude,  longitude: longitude,  zoom: 15,  width:500,  height:500,  })  const fullscreenControlStyle={  right:10,  top:10,   };  const ControlStyle={  left:10,  top:10  };  const location = fieldType amp;amp; item.center amp;amp; (  lt;pgt;  Location: {item.center[0].toFixed(2)},{" "}  {item.center[1].toFixed(2)}  lt;/pgt;  )  const PolyCoords = item.geometry   const geojsonSpace = fieldType amp;amp; item amp;amp; (  lt;Spacegt;  lt;Colgt;  lt;ReactMapGL  mapboxApiAccessToken={'token'}  {...viewport}  mapStyle="mapbox://styles/mapbox/light-v9"  interactiveLayerIds={PolyCoords}  onViewportChange={(newView: React.SetStateActionlt;{ latitude: number; longitude: number; zoom: number; width: number; height: number }gt;) =gt; setViewPort(newView)}  gt;  lt;FullscreenControl style={fullscreenControlStyle}/gt;  lt;NavigationControl style={ControlStyle}gt; lt;/NavigationControlgt;  lt;Source  id="fieldjson"  type="geojson"  data={PolyCoords}  /gt;  {/* lt;Layer  id="anything"  type="line"  source="fieldjson"  paint={{  "line-color": "#090909",  "fill-opacity": 0.90  }}  /gt; */}  lt;Layer  id="anything"  type="fill"  source="fieldjson"  paint={{  "fill-color": "#10961b",  "fill-opacity": 0.90  }}  /gt;  lt;/ReactMapGLgt;  lt;/Colgt;  lt;Colgt;  lt;h1gt;{item.name}lt;/h1gt;  lt;Rowgt;{location}lt;/Rowgt;  lt;Rowgt;Acres: {item.declared_area amp;amp; (item.declared_area * 2.471).toFixed(3)} ac lt;/Rowgt;  lt;/Colgt;  lt;/Spacegt;  )