diff --git a/openmetadata-ui/src/main/resources/ui/src/components/AddService/Steps/SelectServiceType.tsx b/openmetadata-ui/src/main/resources/ui/src/components/AddService/Steps/SelectServiceType.tsx
index 214b6541955..05e3724b53d 100644
--- a/openmetadata-ui/src/main/resources/ui/src/components/AddService/Steps/SelectServiceType.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/components/AddService/Steps/SelectServiceType.tsx
@@ -117,7 +117,9 @@ const SelectServiceType = ({
)}
-
{type}
+
+ {type.includes('Custom') ? startCase(type) : type}
+
))}
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/TeamsSelectable/TeamsSelectable.tsx b/openmetadata-ui/src/main/resources/ui/src/components/TeamsSelectable/TeamsSelectable.tsx
index 0b6c6ec5bd9..1bec49525b2 100644
--- a/openmetadata-ui/src/main/resources/ui/src/components/TeamsSelectable/TeamsSelectable.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/components/TeamsSelectable/TeamsSelectable.tsx
@@ -66,7 +66,8 @@ const TeamsSelectable = ({
return (
- {team.children && team.children.map((n) => getTreeNodes(n))}
+ {team.children &&
+ team.children.map((n: TeamHierarchy) => getTreeNodes(n))}
);
};
diff --git a/openmetadata-ui/src/main/resources/ui/src/constants/services.const.ts b/openmetadata-ui/src/main/resources/ui/src/constants/services.const.ts
index f125fe166d4..4293c0eebdc 100644
--- a/openmetadata-ui/src/main/resources/ui/src/constants/services.const.ts
+++ b/openmetadata-ui/src/main/resources/ui/src/constants/services.const.ts
@@ -70,6 +70,7 @@ import { DatabaseServiceType } from '../generated/entity/services/databaseServic
import { MessagingServiceType } from '../generated/entity/services/messagingService';
import { MlModelServiceType } from '../generated/entity/services/mlmodelService';
import { PipelineServiceType } from '../generated/entity/services/pipelineService';
+import { customServiceComparator } from '../utils/StringsUtils';
export const NoDataFoundPlaceHolder = noDataFound;
export const AddPlaceHolder = addPlaceHolder;
@@ -126,12 +127,23 @@ export const PIPELINE_DEFAULT = pipelineDefault;
export const PLUS = plus;
export const NOSERVICE = noService;
export const excludedService = [MlModelServiceType.Sklearn];
+
export const serviceTypes: Record> = {
- databaseServices: Object.values(DatabaseServiceType),
- messagingServices: Object.values(MessagingServiceType),
- dashboardServices: Object.values(DashboardServiceType),
- pipelineServices: Object.values(PipelineServiceType),
- mlmodelServices: Object.values(MlModelServiceType),
+ databaseServices: (Object.values(DatabaseServiceType) as string[]).sort(
+ customServiceComparator
+ ),
+ messagingServices: (Object.values(MessagingServiceType) as string[]).sort(
+ customServiceComparator
+ ),
+ dashboardServices: (Object.values(DashboardServiceType) as string[]).sort(
+ customServiceComparator
+ ),
+ pipelineServices: (Object.values(PipelineServiceType) as string[]).sort(
+ customServiceComparator
+ ),
+ mlmodelServices: (Object.values(MlModelServiceType) as string[]).sort(
+ customServiceComparator
+ ),
};
export const arrServiceTypes: Array = [
diff --git a/openmetadata-ui/src/main/resources/ui/src/styles/app.less b/openmetadata-ui/src/main/resources/ui/src/styles/app.less
index 2aa8ddc9927..436b57ad178 100644
--- a/openmetadata-ui/src/main/resources/ui/src/styles/app.less
+++ b/openmetadata-ui/src/main/resources/ui/src/styles/app.less
@@ -35,7 +35,7 @@
justify-content: space-between;
}
.break-word {
- word-break: break-all;
+ word-break: break-word;
}
.justify-center {
justify-content: center;
diff --git a/openmetadata-ui/src/main/resources/ui/src/utils/StringsUtils.ts b/openmetadata-ui/src/main/resources/ui/src/utils/StringsUtils.ts
index cd78bff4348..db73b58757c 100644
--- a/openmetadata-ui/src/main/resources/ui/src/utils/StringsUtils.ts
+++ b/openmetadata-ui/src/main/resources/ui/src/utils/StringsUtils.ts
@@ -161,3 +161,17 @@ export const getDecodedFqn = (fqn: string, plusAsSpace = false) => {
export const isExternalUrl = (url = '') => {
return /^https?:\/\//.test(url);
};
+
+/**
+ *
+ * @param a compare value one
+ * @param b compare value two
+ * @returns sorted array (A-Z) which will have custom value at last
+ */
+export const customServiceComparator = (a: string, b: string): number => {
+ if (a.includes('Custom') || b.includes('Custom')) {
+ return a.includes('Custom') ? 1 : -1;
+ } else {
+ return a.localeCompare(b);
+ }
+};