-
Notifications
You must be signed in to change notification settings - Fork 127
#2247 - Show pending indicator when new unsaved resource is exited #2269
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Summary of ChangesHello @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 enhances the user experience by adding a pending indicator when a user tries to navigate away from a newly created, but unsaved, Map, Dashboard, or GeoStory. This feature provides critical visual feedback, ensuring users are aware of unsaved changes and can choose to save their work before exiting. The implementation involves detailed state comparisons to accurately identify when a new resource has been modified. Highlights
Using Gemini Code AssistThe 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 by creating a comment using either
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 Limitations & Feedback Gemini Code Assist 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. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. 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
|
There was a problem hiding this 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 introduces logic to detect unsaved changes in new resources (Map, Dashboard, GeoStory) to show a pending indicator when exiting. The refactoring in the selectors to create specific 'isDirty' checks for each resource type is a good improvement. However, I've found a critical issue in how the initial state of a new GeoStory is stored, which will prevent correct detection of some changes. Please see my detailed comment.
| return ( | ||
| currentData.sections?.length > 1 || // More than the default title section | ||
| currentData.sections?.[0]?.contents?.[0]?.html?.trim() || // Title section has content | ||
| currentData.sections?.[0]?.title !== defaultConfig.sections?.[0]?.title || // Title changed from default | ||
| currentData.resources?.length > 0 || // Has resources | ||
| !isEqual( // Settings changed from default | ||
| omitBy(currentData.settings || {}, isNil), | ||
| omitBy(defaultConfig.settings || {}, isNil) | ||
| ) | ||
| ); | ||
| }; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In this case shouldn't be enough to check the pendingChanges selector of GeoStory? https://github.com/geosolutions-it/MapStore2/blob/master/web/client/selectors/geostory.js#L315
If I remember correctly geostory store a flat at true as soon some modification is applied to the story
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The reason is that pendingChanges is updated only for existing GeoStories and is modified as a side effect of a dispatch action triggered from the GeoStory page. Since the GeoNode client uses a custom page to manage the resource, this update is never invoked.
…2269) (#2277) (cherry picked from commit 74bee0c) Co-authored-by: Suren <[email protected]>
…ce is exited (GeoNode#2269) (GeoNode#2277)" This reverts commit af800e5.
…ce is exited (GeoNode#2269) (GeoNode#2277)" This reverts commit af800e5.
Description
This PR show pending indicator and show a confirmation message when unsaved resource is exited (Map, dashboard & Geostory)
Issue