Skip to main content
Glama
overwrite-draft-dialog.tsx2.86 kB
import { t } from 'i18next'; import { useState } from 'react'; import { PermissionNeededTooltip } from '@/components/custom/permission-needed-tooltip'; import { Button } from '@/components/ui/button'; import { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from '@/components/ui/dialog'; import { flowHooks } from '@/features/flows/lib/flow-hooks'; import { useAuthorization } from '@/hooks/authorization-hooks'; import { Permission } from '@activepieces/shared'; import { RightSideBarType, useBuilderStateContext } from '../builder-hooks'; const OverwriteDraftDialog = ({ onConfirm, children, versionId, versionNumber, }: OverwriteDraftDialogProps) => { const { checkAccess } = useAuthorization(); const [setVersion, setRightSidebar, flow] = useBuilderStateContext( (state) => [state.setVersion, state.setRightSidebar, state.flow], ); const { mutate: overWriteDraftWithVersion, isPending: isOverwritingDraft } = flowHooks.useOverWriteDraftWithVersion({ onSuccess: (updatedFlow) => { setVersion(updatedFlow.version); setRightSidebar(RightSideBarType.NONE); }, }); const userHasPermissionToWriteFlow = checkAccess(Permission.WRITE_FLOW); const [open, setOpen] = useState(false); return ( <Dialog open={open} onOpenChange={setOpen}> <DialogTrigger disabled={!userHasPermissionToWriteFlow} className="w-full" > <PermissionNeededTooltip hasPermission={userHasPermissionToWriteFlow}> {children} </PermissionNeededTooltip> </DialogTrigger> <DialogContent> <DialogHeader> <DialogTitle>{t('Are you sure?')}</DialogTitle> <DialogDescription> {t('Your current draft version will be overwritten with')}{' '} <span className="font-semibold"> {t('version #')} {versionNumber} </span> </DialogDescription> </DialogHeader> <DialogFooter className="justify-end"> <DialogClose asChild> <Button variant={'outline'}>{t('Cancel')}</Button> </DialogClose> <DialogClose asChild> <Button loading={isOverwritingDraft} onClick={() => { overWriteDraftWithVersion({ flowId: flow.id, versionId: versionId, }); onConfirm?.(); }} > {t('Confirm')} </Button> </DialogClose> </DialogFooter> </DialogContent> </Dialog> ); }; type OverwriteDraftDialogProps = { onConfirm: (() => void) | undefined; children: React.ReactNode; versionId: string; versionNumber: string; }; export { OverwriteDraftDialog };

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/activepieces/activepieces'

If you have feedback or need assistance with the MCP directory API, please join our Discord server