PromucFlow_constructor/app/client/src/actions/debuggerActions.ts
Druthi Polisetty 50cd13e362
fix: Retain last selected tab on debugger and user selected filter condition (#25538)
## Description
Retains last selected tab on debugger and user selected filter condition

#### PR fixes following issue(s)
Fixes #23108

#### Type of change
- Bug fix (non-breaking change which fixes an issue)

>
>
## Testing
>
#### How Has This Been Tested?
- [x] Manual
- [x] 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
- [x] My code follows the style guidelines of this project
- [x] 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
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] 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
- [x] 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
- [x] Manually tested functionality on DP
- [x] We had an implementation alignment call with stakeholders post QA
Round 2
- [x] Cypress test cases have been added and approved by SDET/manual QA
- [x] Added `Test Plan Approved` label after Cypress tests were reviewed
- [ ] Added `Test Plan Approved` label after JUnit tests were reviewed

---------

Co-authored-by: Rishabh Rathod <rishabh.rathod@appsmith.com>
Co-authored-by: arunvjn <arun@appsmith.com>
2023-08-09 15:19:32 +05:30

130 lines
3.3 KiB
TypeScript

import { ReduxActionTypes } from "@appsmith/constants/ReduxActionConstants";
import type { ENTITY_TYPE, Log, Message } from "entities/AppsmithConsole";
import type { DebuggerContext } from "reducers/uiReducers/debuggerReducer";
import type { EventName } from "@appsmith/utils/analyticsUtilTypes";
export interface LogDebuggerErrorAnalyticsPayload {
entityName: string;
entityId: string;
entityType: ENTITY_TYPE;
eventName: EventName;
propertyPath: string;
errorId?: string;
errorMessages?: Message[];
errorMessage?: Message["message"];
errorType?: Message["type"];
errorSubType?: Message["subType"];
analytics?: Log["analytics"];
}
export const debuggerLogInit = (payload: Log[]) => ({
type: ReduxActionTypes.DEBUGGER_LOG_INIT,
payload,
});
export const debuggerLog = (payload: Log[]) => ({
type: ReduxActionTypes.DEBUGGER_LOG,
payload,
});
export const clearLogs = () => ({
type: ReduxActionTypes.CLEAR_DEBUGGER_LOGS,
});
export const showDebugger = (payload?: boolean) => ({
type: ReduxActionTypes.SHOW_DEBUGGER,
payload,
});
// Add an error
export const addErrorLogInit = (payload: Log[]) => ({
type: ReduxActionTypes.DEBUGGER_ADD_ERROR_LOG_INIT,
payload,
});
export const addErrorLogs = (payload: Log[]) => ({
type: ReduxActionTypes.DEBUGGER_ADD_ERROR_LOGS,
payload,
});
export const deleteErrorLogsInit = (
payload: { id: string; analytics?: Log["analytics"] }[],
) => ({
type: ReduxActionTypes.DEBUGGER_DELETE_ERROR_LOG_INIT,
payload,
});
export const deleteErrorLog = (ids: string[]) => ({
type: ReduxActionTypes.DEBUGGER_DELETE_ERROR_LOG,
payload: ids,
});
// Only used for analytics
export const logDebuggerErrorAnalytics = (
payload: LogDebuggerErrorAnalyticsPayload,
) => ({
type: ReduxActionTypes.DEBUGGER_ERROR_ANALYTICS,
payload,
});
export const hideDebuggerErrors = (payload: boolean) => ({
type: ReduxActionTypes.HIDE_DEBUGGER_ERRORS,
payload,
});
// set the selected tab in the debugger.
export const setDebuggerSelectedTab = (selectedTab: string) => {
return {
type: ReduxActionTypes.SET_DEBUGGER_SELECTED_TAB,
selectedTab,
};
};
// set the selected filter in the debugger.
export const setDebuggerSelectedFilter = (selectedFilter: string) => {
return {
type: ReduxActionTypes.SET_DEBUGGER_SELECTED_FILTER,
selectedFilter,
};
};
// set the height of the response pane in the debugger.
export const setResponsePaneHeight = (height: number) => {
return {
type: ReduxActionTypes.SET_RESPONSE_PANE_HEIGHT,
height,
};
};
// set the height of the response pane in the debugger.
export const setErrorCount = (count: number) => {
return {
type: ReduxActionTypes.SET_ERROR_COUNT,
count,
};
};
// set the height of the response pane in the debugger.
export const setResponsePaneScrollPosition = (position: number) => {
return {
type: ReduxActionTypes.SET_RESPONSE_PANE_SCROLL_POSITION,
position,
};
};
//toggle expand error log item state.
export const toggleExpandErrorLogItem = (id: string, isExpanded: boolean) => {
return {
type: ReduxActionTypes.TOGGLE_EXPAND_ERROR_LOG_ITEM,
payload: { id, isExpanded },
};
};
//set the debugger context in store.
export const setDebuggerContext = (context: DebuggerContext) => {
return {
type: ReduxActionTypes.SET_DEBUGGER_CONTEXT,
payload: { context },
};
};