diff --git a/app/client/src/ce/pages/Editor/IDE/EditorPane/JS/hooks.ts b/app/client/src/ce/pages/Editor/IDE/EditorPane/JS/hooks.ts index fe816cf00b..ec41864db1 100644 --- a/app/client/src/ce/pages/Editor/IDE/EditorPane/JS/hooks.ts +++ b/app/client/src/ce/pages/Editor/IDE/EditorPane/JS/hooks.ts @@ -57,6 +57,18 @@ export const useJSAdd = () => { ]); }; +export const useIsJSAddLoading = () => { + const moduleCreationOptions = useModuleOptions(); + const jsModuleCreationOptions = moduleCreationOptions.filter( + (opt) => opt.focusEntityType === FocusEntity.JS_MODULE_INSTANCE, + ); + const { isCreating } = useSelector((state) => state.ui.jsPane); + if (jsModuleCreationOptions.length === 0) { + return isCreating; + } + return false; +}; + export const useGroupedAddJsOperations = (): GroupedAddOperations => { return [ { diff --git a/app/client/src/pages/Editor/IDE/EditorTabs/SplitScreenTabs.tsx b/app/client/src/pages/Editor/IDE/EditorTabs/SplitScreenTabs.tsx index 1f09447bb6..9ca8841f3e 100644 --- a/app/client/src/pages/Editor/IDE/EditorTabs/SplitScreenTabs.tsx +++ b/app/client/src/pages/Editor/IDE/EditorTabs/SplitScreenTabs.tsx @@ -1,5 +1,5 @@ import React, { useCallback } from "react"; -import { ToggleButton } from "design-system"; +import { Flex, Spinner, ToggleButton } from "design-system"; import FileTabs from "./FileTabs"; import { useSelector } from "react-redux"; @@ -16,7 +16,10 @@ import { EditorEntityTabState, EditorViewMode, } from "@appsmith/entities/IDE/constants"; -import { useJSAdd } from "@appsmith/pages/Editor/IDE/EditorPane/JS/hooks"; +import { + useIsJSAddLoading, + useJSAdd, +} from "@appsmith/pages/Editor/IDE/EditorPane/JS/hooks"; import { useQueryAdd } from "@appsmith/pages/Editor/IDE/EditorPane/Query/hooks"; import { TabSelectors } from "./constants"; import { getCurrentPageId } from "@appsmith/selectors/entitiesSelector"; @@ -33,6 +36,7 @@ const SplitScreenTabs = () => { const { segment, segmentMode } = useCurrentEditorState(); const onJSAddClick = useJSAdd(); + const isJSLoading = useIsJSAddLoading(); const onQueryAddClick = useQueryAdd(); const onAddClick = useCallback(() => { if (segment === EditorEntityTab.JS) onJSAddClick(); @@ -89,7 +93,13 @@ const SplitScreenTabs = () => { } return ( <> - + {isJSLoading ? ( + + + + ) : ( + + )}