Skip to content

Commit 21d78e3

Browse files
committed
add goToFeature effect in taskCluster map
1 parent ef65885 commit 21d78e3

4 files changed

Lines changed: 30 additions & 1 deletion

File tree

lang/en-US.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1519,6 +1519,7 @@
15191519
"Widgets.TaskNearbyMap.tooltip.taskCountLabel": "Tasks: {count}",
15201520
"Widgets.TaskPropertiesWidget.collapseAll": "Collapse All",
15211521
"Widgets.TaskPropertiesWidget.expandAll": "Expand All",
1522+
"Widgets.TaskPropertiesWidget.goToFeatureOnMap": "Go to feature on map",
15221523
"Widgets.TaskPropertiesWidget.label": "Task Properties",
15231524
"Widgets.TaskPropertiesWidget.task.label": "Task {taskId}",
15241525
"Widgets.TaskReviewWidget.label": "Task Review",

src/components/TaskClusterMap/TaskClusterMap.jsx

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ export const CLUSTER_ICON_PIXELS = 40;
5656
* @author [Kelli Rotstan](https://github.com/krotstan)
5757
*/
5858
export const TaskClusterMap = (props) => {
59+
const { workspaceContext, setWorkspaceContext } = props;
5960
const [currentBounds, setCurrentBounds] = useState(null);
6061
const [searchOpen, setSearchOpen] = useState(false);
6162
const [currentZoom, setCurrentZoom] = useState();
@@ -164,6 +165,27 @@ export const TaskClusterMap = (props) => {
164165
useEffect(() => {
165166
map.invalidateSize();
166167
}, [props.widgetLayout?.w, props.widgetLayout?.h]);
168+
169+
useEffect(() => {
170+
if (workspaceContext?.taskMapBounds && workspaceContext?.taskPropertyClicked) {
171+
const isTaskInBundle =
172+
props.taskBundle?.tasks?.some((t) => t.id === workspaceContext.taskMapTask?.id) ||
173+
workspaceContext.taskMapTask?.id === props.task?.id;
174+
175+
if (isTaskInBundle) {
176+
map.setView(workspaceContext.taskMapBounds.getCenter(), workspaceContext.taskMapZoom);
177+
setWorkspaceContext({
178+
taskPropertyClicked: false,
179+
});
180+
}
181+
}
182+
}, [
183+
workspaceContext?.taskMapBounds,
184+
workspaceContext?.taskMapZoom,
185+
workspaceContext?.taskMapTask?.id,
186+
workspaceContext?.taskPropertyClicked,
187+
]);
188+
167189
return null;
168190
};
169191

src/components/Widgets/TaskPropertiesWidget/Messages.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,9 @@ export default defineMessages({
2828
id: "Widgets.TaskPropertiesWidget.collapseAll",
2929
defaultMessage: "Collapse All",
3030
},
31+
32+
goToFeatureOnMap: {
33+
id: "Widgets.TaskPropertiesWidget.goToFeatureOnMap",
34+
defaultMessage: "Go to feature on map",
35+
},
3136
});

src/components/Widgets/TaskPropertiesWidget/TaskPropertiesWidget.jsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,11 @@ const TaskPropertiesWidget = (props) => {
6464
taskMapZoom: 18,
6565
taskMapTask: task,
6666
taskMapBoundsUpdate: Date.now(),
67+
taskPropertyClicked: true,
6768
});
6869
}}
6970
>
70-
Go to feature on map
71+
<FormattedMessage {...messages.goToFeatureOnMap} />
7172
</button>
7273
)}
7374
<PropertyList

0 commit comments

Comments
 (0)