## Description Remove the IDE constants from the entities folder and move it to the common IDE folder Create separate buttons exports for sidebar buttons Update the button usages Fixes #39050 ## Automation /ok-to-test tags="@tag.All" ### 🔍 Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/13191919670> > Commit: 5055b6ed0394b5f3fe1450bd7a042eb851fe39ab > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13191919670&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.All` > Spec: > <hr>Fri, 07 Feb 2025 05:19:56 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced new editor state definitions and enhanced sidebar configurations with conditional messaging for data source availability. - **Refactor** - Reorganized internal module structures and consolidated type definitions to improve maintainability, consistency, and type safety. - **Tests** - Updated test references to align with the new module organization. These changes streamline the codebase and lay the groundwork for future improvements while maintaining the existing end-user experience. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Ankita Kinger <ankita@appsmith.com>
110 lines
2.9 KiB
TypeScript
110 lines
2.9 KiB
TypeScript
import store from "store";
|
|
import { EditorViewMode } from "IDE/Interfaces/EditorTypes";
|
|
import type { AppState } from "ee/reducers";
|
|
import MockPluginsState from "test/factories/MockPluginsState";
|
|
import type { Action } from "entities/Action";
|
|
import type {
|
|
IDETabs,
|
|
ParentEntityIDETabs,
|
|
} from "reducers/uiReducers/ideReducer";
|
|
import { IDETabsDefaultValue } from "reducers/uiReducers/ideReducer";
|
|
import type { JSCollection } from "entities/JSCollection";
|
|
import type { FocusHistory } from "reducers/uiReducers/focusHistoryReducer";
|
|
import type { Datasource } from "entities/Datasource";
|
|
import type { FeatureFlags } from "ee/entities/FeatureFlag";
|
|
import type { Page } from "entities/Page";
|
|
|
|
interface IDEStateArgs {
|
|
ideView?: EditorViewMode;
|
|
pages?: Page[];
|
|
actions?: Action[];
|
|
js?: JSCollection[];
|
|
tabs?: IDETabs;
|
|
branch?: string;
|
|
focusHistory?: FocusHistory;
|
|
datasources?: Datasource[];
|
|
featureFlags?: Partial<FeatureFlags>;
|
|
}
|
|
|
|
export const getIDETestState = ({
|
|
actions = [],
|
|
branch,
|
|
datasources = [],
|
|
featureFlags,
|
|
focusHistory = {},
|
|
ideView = EditorViewMode.FullScreen,
|
|
js = [],
|
|
pages = [],
|
|
tabs = IDETabsDefaultValue,
|
|
}: IDEStateArgs): AppState => {
|
|
const initialState = store.getState();
|
|
|
|
const pageList = {
|
|
pages,
|
|
isGeneratingTemplatePage: false,
|
|
applicationId: "655716e035e2c9432e4bd94b",
|
|
baseApplicationId: "655716e035e2c9432e4bd94b",
|
|
currentPageId: pages[0]?.pageId,
|
|
currentBasePageId: pages[0]?.basePageId,
|
|
defaultPageId: pages[0]?.pageId,
|
|
defaultBasePageId: pages[0]?.basePageId,
|
|
loading: {},
|
|
};
|
|
|
|
let ideTabs: ParentEntityIDETabs = {};
|
|
if (pageList.currentBasePageId) {
|
|
ideTabs = { [pageList.currentBasePageId]: tabs };
|
|
}
|
|
|
|
const actionData = actions.map((a) => ({ isLoading: false, config: a }));
|
|
const jsData = js.map((a) => ({ isLoading: false, config: a }));
|
|
const featureFlag = featureFlags ? { data: featureFlags } : {};
|
|
|
|
return {
|
|
...initialState,
|
|
entities: {
|
|
...initialState.entities,
|
|
datasources: {
|
|
...initialState.entities.datasources,
|
|
list: datasources,
|
|
},
|
|
plugins: MockPluginsState,
|
|
pageList: pageList,
|
|
actions: actionData,
|
|
jsActions: jsData,
|
|
},
|
|
ui: {
|
|
...initialState.ui,
|
|
users: {
|
|
...initialState.ui.users,
|
|
featureFlag,
|
|
},
|
|
ide: {
|
|
...initialState.ui.ide,
|
|
view: ideView,
|
|
tabs: ideTabs,
|
|
},
|
|
focusHistory: {
|
|
history: {
|
|
...focusHistory,
|
|
},
|
|
},
|
|
editor: {
|
|
...initialState.ui.editor,
|
|
initialized: true,
|
|
},
|
|
applications: {
|
|
...initialState.ui.applications,
|
|
currentApplication: branch
|
|
? {
|
|
...initialState.ui.applications.currentApplication,
|
|
gitApplicationMetadata: {
|
|
branchName: branch || "",
|
|
},
|
|
}
|
|
: { ...initialState.ui.applications.currentApplication },
|
|
},
|
|
},
|
|
};
|
|
};
|