Merge branch 'dev' of https://github.com/logspace-ai/langflow into dev
This commit is contained in:
commit
13fae3875b
6 changed files with 40 additions and 9 deletions
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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" +
|
||||||
|
|
|
||||||
|
|
@ -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 = () => {
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue