fix(shareModal/index.tsx): fix variable naming and improve code readability

fix(nodeToolbarComponent/index.tsx): fix issue with flowComponent not being cloned before setting it
This commit is contained in:
anovazzi1 2023-11-20 15:32:15 -03:00
commit 36bcea49a4
2 changed files with 160 additions and 172 deletions

View file

@ -1,11 +1,4 @@
import { import { ReactNode, useContext, useEffect, useRef, useState } from "react";
ReactNode,
forwardRef,
useContext,
useEffect,
useRef,
useState,
} from "react";
import EditFlowSettings from "../../components/EditFlowSettingsComponent"; import EditFlowSettings from "../../components/EditFlowSettingsComponent";
import IconComponent from "../../components/genericIconComponent"; import IconComponent from "../../components/genericIconComponent";
import { TagsSelector } from "../../components/tagsSelectorComponent"; import { TagsSelector } from "../../components/tagsSelectorComponent";
@ -19,27 +12,27 @@ import { removeApiKeys } from "../../utils/reactflowUtils";
import { getTagsIds } from "../../utils/storeUtils"; import { getTagsIds } from "../../utils/storeUtils";
import BaseModal from "../baseModal"; import BaseModal from "../baseModal";
const ShareModal = forwardRef( export default function ShareModal({
( component,
props: { is_component,
children,
open,
setOpen,
}: {
children?: ReactNode; children?: ReactNode;
is_component: boolean; is_component: boolean;
component: FlowType; component: FlowType;
open?: boolean; open?: boolean;
setOpen?: (open: boolean) => void; setOpen?: (open: boolean) => void;
}, }): JSX.Element {
ref
): JSX.Element => {
const { version, addFlow } = useContext(FlowsContext); const { version, addFlow } = useContext(FlowsContext);
const { setSuccessData, setErrorData } = useContext(alertContext); const { setSuccessData, setErrorData } = useContext(alertContext);
const [checked, setChecked] = useState(true); const [checked, setChecked] = useState(true);
const [name, setName] = useState(props.component?.name ?? ""); const [name, setName] = useState(component?.name ?? "");
const [description, setDescription] = useState( const [description, setDescription] = useState(component?.description ?? "");
props.component?.description ?? "" const [internalOpen, internalSetOpen] = useState(children ? false : true);
);
const [open, setOpen] = useState(props.children ? false : true);
const nameComponent = props.is_component ? "Component" : "Flow"; const nameComponent = is_component ? "Component" : "Flow";
const [tags, setTags] = useState<{ id: string; name: string }[]>([]); const [tags, setTags] = useState<{ id: string; name: string }[]>([]);
const [loadingTags, setLoadingTags] = useState<boolean>(false); const [loadingTags, setLoadingTags] = useState<boolean>(false);
@ -60,27 +53,27 @@ const ShareModal = forwardRef(
} }
useEffect(() => { useEffect(() => {
setName(props.component?.name ?? ""); setName(component?.name ?? "");
setDescription(props.component?.description ?? ""); setDescription(component?.description ?? "");
}, [props.component]); }, [component]);
const handleShareComponent = () => { const handleShareComponent = () => {
const saveFlow: FlowType = checked const saveFlow: FlowType = checked
? { ? {
id: props.component!.id, id: component!.id,
data: props.component!.data, data: component!.data,
description, description,
name, name,
last_tested_version: version, last_tested_version: version,
is_component: props.is_component, is_component: is_component,
} }
: removeApiKeys({ : removeApiKeys({
id: props.component!.id, id: component!.id,
data: props.component!.data, data: component!.data,
description, description,
name, name,
last_tested_version: version, last_tested_version: version,
is_component: props.is_component, is_component: is_component,
}); });
saveFlowStore( saveFlowStore(
saveFlow, saveFlow,
@ -88,7 +81,7 @@ const ShareModal = forwardRef(
sharePublic sharePublic
).then( ).then(
() => { () => {
if (props.is_component) { if (is_component) {
addFlow(true, saveFlow); addFlow(true, saveFlow);
} }
setSuccessData({ setSuccessData({
@ -107,12 +100,10 @@ const ShareModal = forwardRef(
return ( return (
<BaseModal <BaseModal
size="smaller-h-full" size="smaller-h-full"
open={props.open ?? open} open={open ?? internalOpen}
setOpen={props.setOpen ?? setOpen} setOpen={setOpen ?? internalSetOpen}
> >
<BaseModal.Trigger> <BaseModal.Trigger>{children ? children : <></>}</BaseModal.Trigger>
{props.children ? props.children : <></>}
</BaseModal.Trigger>
<BaseModal.Header <BaseModal.Header
description={`Share your ${nameComponent} to the Langflow Store`} description={`Share your ${nameComponent} to the Langflow Store`}
> >
@ -173,17 +164,14 @@ const ShareModal = forwardRef(
<Button <Button
onClick={() => { onClick={() => {
handleShareComponent(); handleShareComponent();
if (props.setOpen) props.setOpen(false); if (setOpen) setOpen(false);
else setOpen(false); else internalSetOpen(false);
}} }}
type="button" type="button"
> >
{props.is_component ? "Save and " : ""}Share{" "} {is_component ? "Save and " : ""}Share {!is_component ? "Flow" : ""}
{!props.is_component ? "Flow" : ""}
</Button> </Button>
</BaseModal.Footer> </BaseModal.Footer>
</BaseModal> </BaseModal>
); );
} }
);
export default ShareModal;

View file

@ -69,7 +69,7 @@ export default function NodeToolbarComponent({
const [flowComponent, setFlowComponent] = useState<FlowType>(); const [flowComponent, setFlowComponent] = useState<FlowType>();
useEffect(() => { useEffect(() => {
setFlowComponent(createFlowComponent(data, version)); setFlowComponent(createFlowComponent(cloneDeep(data), version));
}, [data]); }, [data]);
const handleSelectChange = (event) => { const handleSelectChange = (event) => {