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)}
/>
)}
>
);
}