Implement custom save shortcut in SaveControl component ()

Co-authored-by: Nicholas Tindle <nicktindle@outlook.com>
pull/8424/head
Abhimanyu Yadav 2024-10-24 02:42:39 +05:30 committed by GitHub
parent e5ea62dc25
commit e908068f22
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 25 additions and 3 deletions
autogpt_platform/frontend/src/components/edit/control

View File

@ -1,4 +1,4 @@
import React from "react";
import React, { useCallback, useEffect } from "react";
import {
Popover,
PopoverContent,
@ -15,6 +15,7 @@ import {
TooltipContent,
TooltipTrigger,
} from "@/components/ui/tooltip";
import { useToast } from "@/components/ui/use-toast";
interface SaveControlProps {
agentMeta: GraphMeta | null;
@ -52,14 +53,35 @@ export const SaveControl = ({
// Determines if we're saving a template or an agent
let isTemplate = agentMeta?.is_template ? true : undefined;
const handleSave = () => {
const handleSave = useCallback(() => {
onSave(isTemplate);
};
}, [onSave, isTemplate]);
const getType = () => {
return agentMeta?.is_template ? "template" : "agent";
};
const { toast } = useToast();
useEffect(() => {
const handleKeyDown = (event: KeyboardEvent) => {
if ((event.ctrlKey || event.metaKey) && event.key === "s") {
event.preventDefault(); // Stop the browser default action
handleSave(); // Call your save function
toast({
duration: 2000,
title: "All changes saved successfully!",
});
}
};
window.addEventListener("keydown", handleKeyDown);
return () => {
window.removeEventListener("keydown", handleKeyDown);
};
}, [handleSave]);
return (
<Popover open={pinSavePopover ? true : undefined}>
<Tooltip delayDuration={500}>