diff --git a/app/client/src/IDE/utils/groupAndSortEntitySegmentList.ts b/app/client/src/IDE/utils/groupAndSortEntitySegmentList.ts new file mode 100644 index 000000000000..0c661cc82f25 --- /dev/null +++ b/app/client/src/IDE/utils/groupAndSortEntitySegmentList.ts @@ -0,0 +1,28 @@ +import { groupBy, sortBy } from "lodash"; +import type { EntityItem } from "ee/IDE/Interfaces/EntityItem"; + +export type EditorSegmentList = Array<{ + group: string | "NA"; + items: EntityItem[]; +}>; + +export const groupAndSortEntitySegmentList = ( + items: EntityItem[], +): EditorSegmentList => { + const groups = groupBy(items, (item) => { + if (item.group) return item.group; + + return "NA"; + }); + + // Entity Segment Lists are sorted alphabetically at both group and item level + return sortBy( + Object.keys(groups).map((group) => { + return { + group: group, + items: sortBy(groups[group], "title"), + }; + }), + "group", + ); +}; diff --git a/app/client/src/ce/selectors/appIDESelectors.test.ts b/app/client/src/ce/selectors/appIDESelectors.test.ts index e2fce1e4c4d6..ffe1b94951ed 100644 --- a/app/client/src/ce/selectors/appIDESelectors.test.ts +++ b/app/client/src/ce/selectors/appIDESelectors.test.ts @@ -1,5 +1,5 @@ import type { EntityItem } from "ee/IDE/Interfaces/EntityItem"; -import { groupAndSortEntitySegmentList } from "./appIDESelectors"; +import { groupAndSortEntitySegmentList } from "IDE/utils/groupAndSortEntitySegmentList"; import { PluginType } from "entities/Plugin"; describe("groupAndSortEntitySegmentList", () => { diff --git a/app/client/src/ce/selectors/appIDESelectors.ts b/app/client/src/ce/selectors/appIDESelectors.ts index 0b67086f9831..2e3403705c19 100644 --- a/app/client/src/ce/selectors/appIDESelectors.ts +++ b/app/client/src/ce/selectors/appIDESelectors.ts @@ -1,6 +1,5 @@ -import { groupBy, keyBy, sortBy } from "lodash"; +import { keyBy } from "lodash"; import { createSelector } from "reselect"; -import type { EntityItem } from "ee/IDE/Interfaces/EntityItem"; import { getJSSegmentItems, getQuerySegmentItems, @@ -10,32 +9,7 @@ import type { AppState } from "ee/reducers"; import { identifyEntityFromPath } from "navigation/FocusEntity"; import { getCurrentBasePageId } from "selectors/editorSelectors"; import { getQueryEntityItemUrl } from "ee/pages/AppIDE/layouts/routers/utils/getQueryEntityItemUrl"; - -export type EditorSegmentList = Array<{ - group: string | "NA"; - items: EntityItem[]; -}>; - -export const groupAndSortEntitySegmentList = ( - items: EntityItem[], -): EditorSegmentList => { - const groups = groupBy(items, (item) => { - if (item.group) return item.group; - - return "NA"; - }); - - // Entity Segment Lists are sorted alphabetically at both group and item level - return sortBy( - Object.keys(groups).map((group) => { - return { - group: group, - items: sortBy(groups[group], "title"), - }; - }), - "group", - ); -}; +import { groupAndSortEntitySegmentList } from "IDE/utils/groupAndSortEntitySegmentList"; export const selectQuerySegmentEditorList = createSelector( getQuerySegmentItems, diff --git a/app/client/src/pages/AppIDE/components/JSExplorer/JSSegmentList.tsx b/app/client/src/pages/AppIDE/components/JSExplorer/JSSegmentList.tsx index e4a4835c016f..7b6302565f06 100644 --- a/app/client/src/pages/AppIDE/components/JSExplorer/JSSegmentList.tsx +++ b/app/client/src/pages/AppIDE/components/JSExplorer/JSSegmentList.tsx @@ -77,7 +77,7 @@ export const ListJSObjects = () => { {isNewADSTemplatesEnabled ? ( diff --git a/app/client/src/pages/AppIDE/components/QueryExplorer/Explorer.tsx b/app/client/src/pages/AppIDE/components/QueryExplorer/Explorer.tsx index 2a644a686486..d5da1b3b430c 100644 --- a/app/client/src/pages/AppIDE/components/QueryExplorer/Explorer.tsx +++ b/app/client/src/pages/AppIDE/components/QueryExplorer/Explorer.tsx @@ -1,5 +1,5 @@ import React from "react"; -import { ListQuery } from "./List"; +import { ListQuery } from "./QuerySegmentList"; import styled from "styled-components"; import { Flex } from "@appsmith/ads"; import { useSelector } from "react-redux"; diff --git a/app/client/src/pages/AppIDE/components/QueryExplorer/List.tsx b/app/client/src/pages/AppIDE/components/QueryExplorer/QuerySegmentList.tsx similarity index 99% rename from app/client/src/pages/AppIDE/components/QueryExplorer/List.tsx rename to app/client/src/pages/AppIDE/components/QueryExplorer/QuerySegmentList.tsx index 1de34ab122fd..f1b4209556ce 100644 --- a/app/client/src/pages/AppIDE/components/QueryExplorer/List.tsx +++ b/app/client/src/pages/AppIDE/components/QueryExplorer/QuerySegmentList.tsx @@ -72,7 +72,7 @@ export const ListQuery = () => { {isNewADSTemplatesEnabled ? ( diff --git a/app/client/src/pages/AppIDE/components/QueryExplorer/index.tsx b/app/client/src/pages/AppIDE/components/QueryExplorer/index.tsx index 4849ce2f108b..1036e2314dbd 100644 --- a/app/client/src/pages/AppIDE/components/QueryExplorer/index.tsx +++ b/app/client/src/pages/AppIDE/components/QueryExplorer/index.tsx @@ -1,2 +1,2 @@ export { QueryExplorer } from "./Explorer"; -export { ListQuery } from "./List"; +export { ListQuery } from "./QuerySegmentList";