File tree Expand file tree Collapse file tree
Widgets/TaskPropertiesWidget Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -73,6 +73,7 @@ const shortcutGroup = "layers";
7373 * @author [Neil Rotstan](https://github.com/nrotstan)
7474 */
7575export const TaskMapContent = ( props ) => {
76+ const { workspaceContext } = props ;
7677 const map = useMap ( ) ;
7778 const [ showTaskFeatures , setShowTaskFeatures ] = useState ( true ) ;
7879 const [ osmData , setOsmData ] = useState ( null ) ;
@@ -88,6 +89,22 @@ export const TaskMapContent = (props) => {
8889 const [ directionalityIndicators , setDirectionalityIndicators ] = useState ( { } ) ;
8990 const [ showMapControlsDrawer , setShowMapControlsDrawer ] = useState ( true ) ;
9091
92+ useEffect ( ( ) => {
93+ if ( workspaceContext ?. taskMapBounds ) {
94+ const isTaskInBundle =
95+ props . taskBundle ?. tasks ?. some ( ( t ) => t . id === workspaceContext . taskMapTask ?. id ) ||
96+ workspaceContext . taskMapTask ?. id === props . task ?. id ;
97+
98+ if ( isTaskInBundle ) {
99+ map . setView ( workspaceContext . taskMapBounds . getCenter ( ) , workspaceContext . taskMapZoom ) ;
100+ }
101+ }
102+ } , [
103+ workspaceContext ?. taskMapBounds ,
104+ workspaceContext ?. taskMapZoom ,
105+ workspaceContext ?. taskMapTask ?. id ,
106+ ] ) ;
107+
91108 const taskFeatures = ( ) => {
92109 if ( ( props . taskBundle ?. tasks ?. length ?? 0 ) > 0 ) {
93110 return featureCollection (
Original file line number Diff line number Diff line change @@ -7,6 +7,8 @@ import PropertyList from "../../EnhancedMap/PropertyList/PropertyList";
77import QuickWidget from "../../QuickWidget/QuickWidget" ;
88import messages from "./Messages" ;
99import "./TaskPropertiesWidget.scss" ;
10+ import bbox from "@turf/bbox" ;
11+ import { toLatLngBounds } from "../../../services/MapBounds/MapBounds" ;
1012
1113const descriptor = {
1214 widgetKey : "TaskPropertiesWidget" ,
@@ -19,6 +21,8 @@ const descriptor = {
1921} ;
2022
2123const TaskPropertiesWidget = ( props ) => {
24+ const { setWorkspaceContext } = props ;
25+
2226 const taskList = props . taskBundle ?. tasks || [ props . task ] ;
2327 const [ collapsed , setCollapsed ] = useState ( ) ;
2428
@@ -49,6 +53,23 @@ const TaskPropertiesWidget = (props) => {
4953 </ span >
5054 </ div >
5155 </ summary >
56+ { ! props . getUserAppSetting ( props . user , "isEditMode" ) && (
57+ < button
58+ className = "mr-button mr-button--blue-fill mr-mb-2 mr-mr-2 mr-mt-2"
59+ onClick = { ( ) => {
60+ const bounds = toLatLngBounds ( bbox ( feature . geometry ) ) ;
61+
62+ setWorkspaceContext ( {
63+ taskMapBounds : bounds ,
64+ taskMapZoom : 18 ,
65+ taskMapTask : task ,
66+ taskMapBoundsUpdate : Date . now ( ) ,
67+ } ) ;
68+ } }
69+ >
70+ Go to feature on map
71+ </ button >
72+ ) }
5273 < PropertyList
5374 featureProperties = { feature . properties }
5475 hideHeader
You can’t perform that action at this time.
0 commit comments