This commit is contained in:
Cristhian Zanforlin Lousa 2023-09-26 20:55:56 -03:00
commit 13fae3875b
6 changed files with 40 additions and 9 deletions

View file

@ -52,7 +52,7 @@ const TabsContextInitialValue: TabsContextType = {
isBuilt: false, isBuilt: false,
setIsBuilt: (state: boolean) => {}, setIsBuilt: (state: boolean) => {},
hardReset: () => {}, hardReset: () => {},
saveFlow: async (flow: FlowType) => {}, saveFlow: async (flow: FlowType, silent?: boolean) => {},
lastCopiedSelection: null, lastCopiedSelection: null,
setLastCopiedSelection: (selection: any) => {}, setLastCopiedSelection: (selection: any) => {},
tabsState: {}, tabsState: {},
@ -588,13 +588,15 @@ export function TabsProvider({ children }: { children: ReactNode }) {
}); });
} }
async function saveFlow(newFlow: FlowType) { async function saveFlow(newFlow: FlowType, silent?: boolean) {
try { try {
// updates flow in db // updates flow in db
const updatedFlow = await updateFlowInDatabase(newFlow); const updatedFlow = await updateFlowInDatabase(newFlow);
if (updatedFlow) { if (updatedFlow) {
// updates flow in state // updates flow in state
if (!silent) {
setSuccessData({ title: "Changes saved successfully" }); setSuccessData({ title: "Changes saved successfully" });
}
setFlows((prevState) => { setFlows((prevState) => {
const newFlows = [...prevState]; const newFlows = [...prevState];
const index = newFlows.findIndex((flow) => flow.id === newFlow.id); const index = newFlows.findIndex((flow) => flow.id === newFlow.id);

View file

@ -70,7 +70,7 @@ interface BaseModalProps {
| "medium-h-full"; | "medium-h-full";
disable?: boolean; disable?: boolean;
onChangeOpenModal?: (open: boolean) => void; onChangeOpenModal?: (open?: boolean) => void;
} }
function BaseModal({ function BaseModal({
open, open,

View file

@ -160,6 +160,27 @@ export default function Page({
setExtraNavigation({ title: "Components" }); setExtraNavigation({ title: "Components" });
}, [setExtraComponent, setExtraNavigation]); }, [setExtraComponent, setExtraNavigation]);
const [seconds, setSeconds] = useState(0);
useEffect(() => {
const interval = setInterval(() => {
setSeconds((prevSeconds) => {
let updatedSeconds = prevSeconds + 1;
if (updatedSeconds % 30 === 0) {
saveFlow(flow, true);
updatedSeconds = 0;
}
return updatedSeconds;
});
}, 1000);
return () => {
clearInterval(interval);
};
}, []);
const onEdgesChangeMod = useCallback( const onEdgesChangeMod = useCallback(
(change: EdgeChange[]) => { (change: EdgeChange[]) => {
onEdgesChange(change); onEdgesChange(change);

View file

@ -62,6 +62,9 @@ export default function NodeToolbarComponent({
setShowNode((prev) => !prev); setShowNode((prev) => !prev);
updateNodeInternals(data.id); updateNodeInternals(data.id);
} }
if(event.includes("disabled")){
return;
}
}; };
return ( return (
@ -153,8 +156,8 @@ export default function NodeToolbarComponent({
</SelectTrigger> </SelectTrigger>
</ShadTooltip> </ShadTooltip>
<SelectContent> <SelectContent>
<SelectItem value={getRandomKeyByssmm() + "advanced"}> <SelectItem value={getRandomKeyByssmm() + (nodeLength==0?"disabled":"advanced")}>
<div className="flex"> <div className={"flex "+(nodeLength==0?"text-muted-foreground":"text-primary")}>
<IconComponent <IconComponent
name="Settings2" name="Settings2"
className="relative top-0.5 mr-2 h-4 w-4" className="relative top-0.5 mr-2 h-4 w-4"
@ -179,6 +182,7 @@ export default function NodeToolbarComponent({
<ShadTooltip content="Edit" side="top"> <ShadTooltip content="Edit" side="top">
<div> <div>
<button <button
disabled={nodeLength === 0}
onClick={() => setShowModalAdvanced(true)} onClick={() => setShowModalAdvanced(true)}
className={classNames( className={classNames(
"relative -ml-px inline-flex items-center rounded-r-md bg-background px-2 py-2 text-foreground shadow-md ring-1 ring-inset ring-ring transition-all duration-500 ease-in-out hover:bg-muted focus:z-10" + "relative -ml-px inline-flex items-center rounded-r-md bg-background px-2 py-2 text-foreground shadow-md ring-1 ring-inset ring-ring transition-all duration-500 ease-in-out hover:bg-muted focus:z-10" +

View file

@ -41,12 +41,16 @@ export default function HomePage(): JSX.Element {
const dragOver = (e) => { const dragOver = (e) => {
e.preventDefault(); e.preventDefault();
if(e.dataTransfer.types.some((types) => types === "Files")){
setIsDragging(true); setIsDragging(true);
}
}; };
const dragEnter = (e) => { const dragEnter = (e) => {
e.preventDefault(); if(e.dataTransfer.types.some((types) => types === "Files")){
setIsDragging(true); setIsDragging(true);
}
e.preventDefault();
}; };
const dragLeave = () => { const dragLeave = () => {

View file

@ -2,7 +2,7 @@ import { tweakType } from "../components";
import { FlowType } from "../flow"; import { FlowType } from "../flow";
export type TabsContextType = { export type TabsContextType = {
saveFlow: (flow: FlowType) => Promise<void>; saveFlow: (flow: FlowType, silent?: boolean) => Promise<void>;
save: () => void; save: () => void;
tabId: string; tabId: string;
isLoading: boolean; isLoading: boolean;