Files
Alex Khomenko 6a11d462cb API: Support versioned frontend clients (#106545)
* Update the generator to include version

* Add versioned APIs

* Update imports

* Prettier
2025-06-13 13:24:37 +03:00

36 lines
1.3 KiB
TypeScript

import { Trans } from '@grafana/i18n';
import { Button, LinkButton, Stack } from '@grafana/ui';
import { Repository } from 'app/api/clients/provisioning/v0alpha1';
import { StatusBadge } from '../Shared/StatusBadge';
import { PROVISIONING_URL } from '../constants';
import { getRepoHref } from '../utils/git';
import { DeleteRepositoryButton } from './DeleteRepositoryButton';
import { SyncRepository } from './SyncRepository';
interface RepositoryActionsProps {
repository: Repository;
}
export function RepositoryActions({ repository }: RepositoryActionsProps) {
const name = repository.metadata?.name ?? '';
const repoHref = getRepoHref(repository.spec?.github);
return (
<Stack>
<StatusBadge repo={repository} />
{repoHref && (
<Button variant="secondary" icon="github" onClick={() => window.open(repoHref, '_blank')}>
<Trans i18nKey="provisioning.repository-actions.source-code">Source Code</Trans>
</Button>
)}
<SyncRepository repository={repository} />
<LinkButton variant="secondary" icon="cog" href={`${PROVISIONING_URL}/${name}/edit`}>
<Trans i18nKey="provisioning.repository-actions.settings">Settings</Trans>
</LinkButton>
<DeleteRepositoryButton name={name} redirectTo={PROVISIONING_URL} />
</Stack>
);
}