/**
* Copyright (c) 2020-present, Goldman Sachs
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { forwardRef, useEffect } from 'react';
import { observer } from 'mobx-react-lite';
import { LEGEND_STUDIO_TEST_ID } from '../../../__lib__/LegendStudioTesting.js';
import { useEditorStore } from '../EditorStoreProvider.js';
import {
ContextMenu,
PanelContent,
PURE_ServiceIcon,
clsx,
PlayIcon,
Dialog,
Modal,
TimesIcon,
CheckCircleIcon,
CircleNotchIcon,
TimesCircleIcon,
EmptyCircleIcon,
MenuContentItem,
MenuContent,
ModalBody,
ModalHeader,
ModalFooter,
ModalFooterButton,
CheckSquareIcon,
SquareIcon,
} from '@finos/legend-art';
import {
type GlobalBulkServiceRegistrationState,
REGISTRATION_RESULT,
getServiceRegistrationResult,
type BulkServiceRegistrationState,
} from '../../../stores/editor/sidebar-state/BulkServiceRegistrationState.js';
import { BulkServiceRegistrationEditor } from '../editor-group/service-editor/BulkServiceRegistrationEditor.js';
import { guaranteeNonNullable, noop } from '@finos/legend-shared';
import {
ServiceRegistrationFail,
type ServiceRegistrationResult,
ServiceRegistrationSuccess,
} from '@finos/legend-graph';
import { generateServiceManagementUrl } from '../../../stores/editor/editor-state/element-editor-state/service/ServiceRegistrationState.js';
import { useApplicationStore } from '@finos/legend-application';
import { CODE_EDITOR_LANGUAGE } from '@finos/legend-code-editor';
import { CodeEditor } from '@finos/legend-lego/code-editor';
export const getRegistrationStatusIcon = (
isSelected: boolean,
registrationResult: REGISTRATION_RESULT,
): React.ReactNode => {
if (registrationResult === REGISTRATION_RESULT.SUCCESS) {
return (