import { useState } from 'react'; import { useNavigate } from 'react-router-dom-v5-compat'; import { Trans, t } from '@grafana/i18n'; import { Button, ConfirmModal } from '@grafana/ui'; import { Repository, useCreateRepositoryJobsMutation } from 'app/api/clients/provisioning/v0alpha1'; import { PROVISIONING_URL } from '../constants'; interface Props { repository: Repository; } export function SyncRepository({ repository }: Props) { const [createJob, jobQuery] = useCreateRepositoryJobsMutation(); const [isModalOpen, setIsModalOpen] = useState(false); const navigate = useNavigate(); const name = repository.metadata?.name; const onClick = () => { if (!name) { return; } createJob({ name, jobSpec: { pull: { incremental: false, // will queue a full resync job }, }, }); setIsModalOpen(false); }; const isHealthy = Boolean(repository.status?.health.healthy); return ( <> {!repository.spec?.sync.enabled && ( navigate(`${PROVISIONING_URL}/${name}/edit`)} onDismiss={() => setIsModalOpen(false)} /> )} ); }