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 type { NavigationSetting } from "constants/AppConstants";
|
||||||
import { defaultNavigationSetting } from "constants/AppConstants";
|
import { defaultNavigationSetting } from "constants/AppConstants";
|
||||||
import produce from "immer";
|
import produce from "immer";
|
||||||
import { groupBy } from "lodash";
|
import { groupBy, isEmpty } from "lodash";
|
||||||
|
|
||||||
export const initialState: ApplicationsReduxState = {
|
export const initialState: ApplicationsReduxState = {
|
||||||
isFetchingApplications: false,
|
isFetchingApplications: false,
|
||||||
|
|
@ -242,7 +242,10 @@ export const handlers = {
|
||||||
isFetchingApplication: false,
|
isFetchingApplication: false,
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!newState.currentApplication.applicationDetail.navigationSetting) {
|
if (
|
||||||
|
!newState.currentApplication.applicationDetail.navigationSetting ||
|
||||||
|
isEmpty(newState.currentApplication.applicationDetail.navigationSetting)
|
||||||
|
) {
|
||||||
newState.currentApplication.applicationDetail.navigationSetting =
|
newState.currentApplication.applicationDetail.navigationSetting =
|
||||||
defaultNavigationSetting;
|
defaultNavigationSetting;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user