PromucFlow_constructor/app/client/src/selectors/appThemingSelectors.tsx
Pawan Kumar 0cc104ed93
chore: update import of AppState to DefaultReduxState (#40494)
We were using the AppState incorrectly in our selectors. We should use
`DefaultRootState` from react-redux.

/ok-to-test tags="@tag.Sanity"

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Refactor**
- Updated state parameter types in numerous selectors and hooks across
the application from a custom application state type to a standard Redux
root state type, enhancing type consistency and maintainability without
impacting functionality or user experience.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/14771101257>
> Commit: 48aef24d9a54ee63d06943128f7545ba0d461172
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=14771101257&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Sanity`
> Spec:
> <hr>Thu, 01 May 2025 07:16:33 UTC
<!-- end of auto-generated comment: Cypress test results  -->
2025-05-01 15:53:37 +05:30

76 lines
1.5 KiB
TypeScript

import type { DefaultRootState } from "react-redux";
export enum AppThemingMode {
APP_THEME_EDIT = "APP_THEME_EDIT",
APP_THEME_SELECTION = "APP_THEME_SELECTION",
}
/**
* returns the theming mode ( edit, selection, variant editor )
*
* @param state
* @returns
*/
export const getAppThemingStack = (state: DefaultRootState) => {
return state.ui.appTheming.stack;
};
/**
* gets the themes
*
* @param state
* @returns
*/
export const getAppThemes = (state: DefaultRootState) => {
return state.ui.appTheming.themes;
};
/**
* get the selected theme
*
* @param state
* @returns
*/
export const getSelectedAppTheme = (state: DefaultRootState) => {
return state.ui.appTheming.selectedTheme;
};
/**
* get the selected theme stylsheet
*
* @param state
* @returns
*/
export const getSelectedAppThemeStylesheet = (state: DefaultRootState) => {
return state.ui.appTheming.selectedTheme.stylesheet;
};
/**
* get the preview theme or selected theme
*
* @param state
* @returns
*/
export const getSelectedAppThemeProperties = (state: DefaultRootState) => {
return state.ui.appTheming.selectedTheme.properties;
};
/**
* gets the value of `state.ui.appTheming.isSaving`
*
* @param state
* @returns
*/
export const getAppThemeIsChanging = (state: DefaultRootState) => {
return state.ui.appTheming.isChanging;
};
/**
* gets the value of `state.ui.appTheming.isSaving`
*
* @param state
* @returns
*/
export const getIsBetaCardShown = (state: DefaultRootState): boolean =>
state.ui.appTheming.isBetaCardShown;