import { Modal } from '@tidbcloud/uikit'

import { ModalCodeTitle } from 'dbaas/components'
import { PremiumAnnotation } from 'dbaas/screens/NextGen/shared/model/annotation'
import { TidbCloudOpenApinextgenv1beta2Tidb } from 'dbaas/services/api-clients/v2025/tidb-management/v1beta2/interface'

import { PremiumChangeRootPwd } from './ChangeRootPwd'

interface PremiumChangeRootPwdModalProps {
  tidb: TidbCloudOpenApinextgenv1beta2Tidb
  opened: boolean
  onClose: () => void
  onFinish?: () => Promise<unknown> | void
}

export const PremiumChangeRootPwdModal = ({ tidb, opened, onClose }: PremiumChangeRootPwdModalProps) => {
  const isEdit = tidb?.annotations?.[PremiumAnnotation.PwdSet] === 'true'

  return (
    <Modal
      size="lg"
      centered
      opened={opened}
      closeOnClickOutside={false}
      title={
        <>
          Change Root Password for <ModalCodeTitle maxWidth={320}>{tidb?.displayName}</ModalCodeTitle>
        </>
      }
      onClose={onClose}
      styles={{
        body: { padding: 0 }
      }}
      data-testid="premium-change-root-password-modal"
    >
      <PremiumChangeRootPwd tidbId={tidb?.tidbId!} isEditMode={isEdit} onDone={onClose} onCancel={onClose} />
    </Modal>
  )
}
