fix: If navigation settings object is empty in application details, use the default settings (#27779)
## Description We removed the clone/duplication feature, but if an app for some reason has an empty navigation settings object - it doesn't show any pages in the navbar nor any of the customization options for navigation inside the app settings pane. This PR adds a check for this and uses the default navigation settings as a fallback. #### PR fixes following issue(s) Fixes #27721 Fixes #23565 #### Type of change - Bug fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? To recreate this scenario, we can import this app that has an empty navigation settings object. [App JSON here.](https://github.com/appsmithorg/appsmith/files/12791775/navigationSettingsEmptyObject.json.zip) - [x] Manual - [ ] JUnit - [ ] Jest - [ ] Cypress > > #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## Checklist: #### Dev activity - [ ] My code follows the style guidelines of this project - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [ ] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [ ] New and existing unit tests pass locally with my changes - [ ] PR is being merged under a feature flag #### QA activity: - [ ] [Speedbreak features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-) - [ ] Test plan has been peer reviewed by project stakeholders and other QA members - [ ] Manually tested functionality on DP - [ ] We had an implementation alignment call with stakeholders post QA Round 2 - [ ] Cypress test cases have been added and approved by SDET/manual QA - [ ] Added `Test Plan Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed
This commit is contained in:
parent
9be87c2cc2
commit
14e75be6d2
|
|
@ -27,7 +27,7 @@ import type { IconNames } from "design-system";
|
|||
import type { NavigationSetting } from "constants/AppConstants";
|
||||
import { defaultNavigationSetting } from "constants/AppConstants";
|
||||
import produce from "immer";
|
||||
import { groupBy } from "lodash";
|
||||
import { groupBy, isEmpty } from "lodash";
|
||||
|
||||
export const initialState: ApplicationsReduxState = {
|
||||
isFetchingApplications: false,
|
||||
|
|
@ -242,7 +242,10 @@ export const handlers = {
|
|||
isFetchingApplication: false,
|
||||
};
|
||||
|
||||
if (!newState.currentApplication.applicationDetail.navigationSetting) {
|
||||
if (
|
||||
!newState.currentApplication.applicationDetail.navigationSetting ||
|
||||
isEmpty(newState.currentApplication.applicationDetail.navigationSetting)
|
||||
) {
|
||||
newState.currentApplication.applicationDetail.navigationSetting =
|
||||
defaultNavigationSetting;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user