import { useParams } from 'common' import { Lock } from 'lucide-react' import { toast } from 'sonner' import { Modal } from 'ui' import { Admonition } from 'ui-patterns' import { useAuthorizedAppRevokeMutation } from '@/data/oauth/authorized-app-revoke-mutation' import type { AuthorizedApp } from '@/data/oauth/authorized-apps-query' export interface RevokeAppModalProps { selectedApp?: AuthorizedApp onClose: () => void } export const RevokeAppModal = ({ selectedApp, onClose }: RevokeAppModalProps) => { const { slug } = useParams() const { mutate: revokeAuthorizedApp, isPending: isDeleting } = useAuthorizedAppRevokeMutation({ onSuccess: () => { toast.success(`Successfully revoked the app "${selectedApp?.name}"`) onClose() }, }) const onConfirmDelete = async () => { if (!slug) return console.error('Slug is required') if (!selectedApp?.id) return console.error('App ID is required') revokeAuthorizedApp({ slug, id: selectedApp?.id }) } return ( ) }