Skip to content

#2121 - Enhance useDetectClickOut with extra nodes to cross reference#2123

Merged
allyoucanmap merged 1 commit intoGeoNode:masterfrom
dsuren1:#2121_fix
Jul 14, 2025
Merged

#2121 - Enhance useDetectClickOut with extra nodes to cross reference#2123
allyoucanmap merged 1 commit intoGeoNode:masterfrom
dsuren1:#2121_fix

Conversation

@dsuren1
Copy link
Copy Markdown

@dsuren1 dsuren1 commented Jul 9, 2025

Description

This PR enhances the use detect click out with extra nodes to be cross referenced before performing click out operation

Issue

@dsuren1 dsuren1 added this to the 5.0.0 milestone Jul 9, 2025
@dsuren1 dsuren1 requested a review from allyoucanmap July 9, 2025 10:32
@dsuren1 dsuren1 self-assigned this Jul 9, 2025
@dsuren1 dsuren1 added bug Something isn't working master geonode-ui labels Jul 9, 2025
@dsuren1 dsuren1 linked an issue Jul 9, 2025 that may be closed by this pull request
Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Summary of Changes

Hello @dsuren1, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request refines the behavior of the useDetectClickOut hook by introducing a mechanism to exclude specific DOM elements from triggering an 'outside click' event. This enhancement provides more granular control over click-out detection, preventing unintended dismissals of UI elements when interacting with related overlays or popovers. The updated hook is then integrated into existing components to improve their user experience.

Highlights

  • Hook Enhancement: The useDetectClickOut React hook has been enhanced to accept an optional extraNodes parameter, which is an array of CSS selectors. Clicks occurring within elements matching these selectors will now be considered 'inside' and will not trigger the onClickOut callback.
  • Improved Click-Out Logic: The internal logic of useDetectClickOut's handleClickOut function has been updated to incorporate the extraNodes check. This ensures that the onClickOut callback is only fired when the click truly occurs outside the primary target node AND outside any specified extraNodes.
  • Application in UI Components: The enhanced useDetectClickOut hook has been applied to LayerDetailViewer.jsx and ResourceDetails.jsx. Both components now pass ['.ms-popover-overlay'] as extraNodes, preventing their click-out logic from being triggered when a user clicks inside a MapStore popover overlay.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in issue comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist is currently in preview and may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments to provide feedback.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request enhances the useDetectClickOut hook by adding the ability to specify extra nodes to check for clicks inside, preventing the click out callback from being triggered. This provides more flexibility in defining what constitutes a click outside the target node. The hook is used in LayerDetailViewer and ResourceDetails components.

@allyoucanmap allyoucanmap merged commit 802d5fd into GeoNode:master Jul 14, 2025
4 checks passed
dsuren1 added a commit to dsuren1/geonode-mapstore-client that referenced this pull request Jul 18, 2025
* commit '4f51a4366a5c092e9eabdf84c84a02bfb6c6b66c':
  [create-pull-request] automated change (GeoNode#2141)
  Translate resource type in the detail panel (GeoNode#2108)
  [create-pull-request] automated change (GeoNode#2140)
  GeoNode#2109: Add Edit Permissions to resource menu (GeoNode#2111)
  GeoNode#2110: Fix - Pending prompt inside viewer (GeoNode#2114)
  GeoNode#2113: Fix - Incorrect url formation on copy resource url in resource grid page (GeoNode#2115)
  [create-pull-request] automated change (GeoNode#2139)
  GeoNode#2119 - Update client to show exported data from layer download (GeoNode#2120)
  GeoNode#2122: Fix - MS search bar is shifted when plugin panel is visible (GeoNode#2124)
  GeoNode#2135: Fix - View menu is hidden when a mapviewer is connected to a map (GeoNode#2137)
  GeoNode#2136: Update loader and upload processing buttons (GeoNode#2138)
  [create-pull-request] automated change (GeoNode#2134)
  Fix GeoNode#2132 Tab switch is broken (GeoNode#2133)
  [create-pull-request] automated change (GeoNode#2131)
  Fix GeoNode#2129 Upgrade MapStore to include the fix for Download (GeoNode#2130)
  [create-pull-request] automated change (GeoNode#2127)
  Enhance useDetectClickOut with extra nodes to cross reference (GeoNode#2123)
  [create-pull-request] automated change (GeoNode#2118)
  Include the new LayerDownload in GeoNode client (GeoNode#2112)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working geonode-ui master

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Cannot assign specific permissions to user or group in management panel

2 participants