Merge branch 'dev' into update_component
This commit is contained in:
commit
75e7f7ab46
1 changed files with 46 additions and 17 deletions
|
|
@ -1,3 +1,4 @@
|
||||||
|
import { Loader2 } from "lucide-react";
|
||||||
import { ReactNode, useContext, useEffect, useMemo, useState } from "react";
|
import { ReactNode, useContext, useEffect, useMemo, useState } from "react";
|
||||||
import EditFlowSettings from "../../components/EditFlowSettingsComponent";
|
import EditFlowSettings from "../../components/EditFlowSettingsComponent";
|
||||||
import IconComponent from "../../components/genericIconComponent";
|
import IconComponent from "../../components/genericIconComponent";
|
||||||
|
|
@ -56,6 +57,9 @@ export default function ShareModal({
|
||||||
>([]);
|
>([]);
|
||||||
const { saveFlow, flows, tabId } = useContext(FlowsContext);
|
const { saveFlow, flows, tabId } = useContext(FlowsContext);
|
||||||
|
|
||||||
|
const [nameIsAvailable, setNameIsAvailable] = useState(false);
|
||||||
|
const [loadingNames, setLoadingNames] = useState(false);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (open || internalOpen) {
|
if (open || internalOpen) {
|
||||||
if (hasApiKey && hasStore) {
|
if (hasApiKey && hasStore) {
|
||||||
|
|
@ -72,16 +76,20 @@ export default function ShareModal({
|
||||||
setLoadingTags(false);
|
setLoadingTags(false);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
function handleGetNames() {
|
|
||||||
|
async function handleGetNames() {
|
||||||
|
setLoadingNames(true);
|
||||||
const unavaliableNames: Array<{ id: string; name: string }> = [];
|
const unavaliableNames: Array<{ id: string; name: string }> = [];
|
||||||
getStoreComponents({ fields: ["name", "id"], filterByUser: true }).then(
|
await getStoreComponents({
|
||||||
(res) => {
|
fields: ["name", "id"],
|
||||||
res?.results?.forEach((element: any) => {
|
filterByUser: true,
|
||||||
unavaliableNames.push({ name: element.name, id: element.id });
|
}).then((res) => {
|
||||||
});
|
res?.results?.forEach((element: any) => {
|
||||||
setUnavaliableNames(unavaliableNames);
|
unavaliableNames.push({ name: element.name, id: element.id });
|
||||||
}
|
});
|
||||||
);
|
setUnavaliableNames(unavaliableNames);
|
||||||
|
setLoadingNames(false);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|
@ -89,7 +97,7 @@ export default function ShareModal({
|
||||||
setDescription(component?.description ?? "");
|
setDescription(component?.description ?? "");
|
||||||
}, [component, open, internalOpen]);
|
}, [component, open, internalOpen]);
|
||||||
|
|
||||||
const handleShareComponent = (update = false) => {
|
const handleShareComponent = async (update = false) => {
|
||||||
//remove file names from flows before sharing
|
//remove file names from flows before sharing
|
||||||
removeFileNameFromComponents(component);
|
removeFileNameFromComponents(component);
|
||||||
const flow: FlowType = checked
|
const flow: FlowType = checked
|
||||||
|
|
@ -119,7 +127,7 @@ export default function ShareModal({
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
saveFlow(flows.find((flow) => flow.id === tabId)!, true);
|
await saveFlow(flows.find((flow) => flow.id === tabId)!, true);
|
||||||
if (!update)
|
if (!update)
|
||||||
saveFlowStore(flow!, getTagsIds(selectedTags, tags), sharePublic).then(
|
saveFlowStore(flow!, getTagsIds(selectedTags, tags), sharePublic).then(
|
||||||
successShare,
|
successShare,
|
||||||
|
|
@ -178,9 +186,19 @@ export default function ShareModal({
|
||||||
</ConfirmationModal.Content>
|
</ConfirmationModal.Content>
|
||||||
<ConfirmationModal.Trigger>
|
<ConfirmationModal.Trigger>
|
||||||
<div className="text-right">
|
<div className="text-right">
|
||||||
<Button type="button">
|
<Button disabled={loadingNames} type="button">
|
||||||
{is_component ? "Save and " : ""}Share{" "}
|
{loadingNames ? (
|
||||||
{!is_component ? "Flow" : ""}
|
<>
|
||||||
|
<div className="center w-16">
|
||||||
|
<Loader2 className="m-auto h-4 w-4 animate-spin"></Loader2>
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
|
) : (
|
||||||
|
<>
|
||||||
|
{is_component && !loadingNames ? "Save and " : ""}Share{" "}
|
||||||
|
{!is_component && !loadingNames ? "Flow" : ""}
|
||||||
|
</>
|
||||||
|
)}
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
</ConfirmationModal.Trigger>
|
</ConfirmationModal.Trigger>
|
||||||
|
|
@ -188,6 +206,7 @@ export default function ShareModal({
|
||||||
) : (
|
) : (
|
||||||
<>
|
<>
|
||||||
<Button
|
<Button
|
||||||
|
disabled={loadingNames}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
handleShareComponent();
|
handleShareComponent();
|
||||||
if (setOpen) setOpen(false);
|
if (setOpen) setOpen(false);
|
||||||
|
|
@ -195,14 +214,24 @@ export default function ShareModal({
|
||||||
}}
|
}}
|
||||||
type="button"
|
type="button"
|
||||||
>
|
>
|
||||||
{is_component ? "Save and " : ""}Share{" "}
|
{loadingNames ? (
|
||||||
{!is_component ? "Flow" : ""}
|
<>
|
||||||
|
<div className="center w-16">
|
||||||
|
<Loader2 className="m-auto h-4 w-4 animate-spin"></Loader2>
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
|
) : (
|
||||||
|
<>
|
||||||
|
{is_component && !loadingNames ? "Save and " : ""}Share{" "}
|
||||||
|
{!is_component && !loadingNames ? "Flow" : ""}
|
||||||
|
</>
|
||||||
|
)}
|
||||||
</Button>
|
</Button>
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
}, [unavaliableNames, name]);
|
}, [unavaliableNames, name, loadingNames]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<BaseModal
|
<BaseModal
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue