import { useState } from 'react' import { FcAcceptDatabase } from 'react-icons/fc' import { Button } from '@/components/ui' import ConfirmDialog from '@/components/shared/ConfirmDialog' import { UiEvalService } from '@/services/UiEvalService' import { useLocalization } from '@/utils/hooks/useLocalization' import { usePermission } from '@/utils/hooks/usePermission' import { DB_MIGRATE } from '@/constants/permission.constant' interface DbMigrateButtonProps { /** Küçük ekranlarda etiketi gizle (yalnızca ikon göster). */ hideLabelOnMobile?: boolean className?: string } /** * "DB Migrate" aksiyonu — onay diyaloğu ve yetki kontrolü dahil. * * SQL Query Manager ve Wizard dosya yöneticisi aynı işi yaptığı için tek bileşende * toplanmıştır. Yetkisi olmayan kullanıcıya buton hiç render edilmez; asıl kontrol * yine de sunucuda (`App.Setup.Migrate`) yapılır. */ const DbMigrateButton = ({ hideLabelOnMobile = false, className }: DbMigrateButtonProps) => { const { translate } = useLocalization() const { checkPermission } = usePermission() const [isConfirmOpen, setIsConfirmOpen] = useState(false) if (!checkPermission(DB_MIGRATE)) { return null } const label = translate('::ListForms.ListForm.DbMigrate') || 'DB Migrate' return ( <> setIsConfirmOpen(false)} onClose={() => setIsConfirmOpen(false)} onConfirm={() => { setIsConfirmOpen(false) UiEvalService.ApiDbMigrate() }} >

{translate('::App.DbMigrate.ConfirmMessage') || 'Are you sure you want to start the database migration process?'}

) } export default DbMigrateButton