fix: Tweaks tab dissapearing with hook component

This commit is contained in:
igorrCarvalho 2024-06-27 18:13:02 -03:00 • committed by Gabriel Luiz Freitas Almeida
commit ad3c47b8fd
4 changed files with 20 additions and 11 deletions

View file

@ -26,6 +26,7 @@ import {
TabsTrigger, TabsTrigger,
} from "../../components/ui/tabs"; } from "../../components/ui/tabs";
import { LANGFLOW_SUPPORTED_TYPES } from "../../constants/constants"; import { LANGFLOW_SUPPORTED_TYPES } from "../../constants/constants";
import getTabsOrder from "../../modals/apiModal/utils/get-tabs-order";
import { Case } from "../../shared/components/caseComponent"; import { Case } from "../../shared/components/caseComponent";
import { useDarkStore } from "../../stores/darkStore"; import { useDarkStore } from "../../stores/darkStore";
import useFlowStore from "../../stores/flowStore"; import useFlowStore from "../../stores/flowStore";
@ -56,6 +57,8 @@ export default function CodeTabsComponent({
setActiveTweaks, setActiveTweaks,
activeTweaks, activeTweaks,
allowExport = false, allowExport = false,
isThereTweaks = false,
isThereWH = false,
}: codeTabsPropsType) { }: codeTabsPropsType) {
const [isCopied, setIsCopied] = useState<Boolean>(false); const [isCopied, setIsCopied] = useState<Boolean>(false);
const [data, setData] = useState(flow ? flow["data"]!["nodes"] : null); const [data, setData] = useState(flow ? flow["data"]!["nodes"] : null);
@ -93,6 +96,8 @@ export default function CodeTabsComponent({
return node.data.node.template[templateParam].type; return node.data.node.template[templateParam].type;
}; };
const tabsOrder = getTabsOrder(isThereWH, isThereTweaks);
return ( return (
<Tabs <Tabs
value={activeTab} value={activeTab}
@ -168,11 +173,11 @@ export default function CodeTabsComponent({
{tabs.map((tab, idx) => ( {tabs.map((tab, idx) => (
<TabsContent <TabsContent
value={idx.toString()} value={idx.toString()}
className="api-modal-tabs-content overflow-hidden" className="api-modal-tabs-content overflow-hidden"
key={idx} // Remember to add a unique key prop key={idx} // Remember to add a unique key prop
> >
{idx < 5 ? ( {tabsOrder[idx].toLowerCase() !== "tweaks" ? (
<div className="flex h-full w-full flex-col"> <div className="flex h-full w-full flex-col">
{tab.description && ( {tab.description && (
<div <div
@ -188,7 +193,7 @@ export default function CodeTabsComponent({
{tab.code} {tab.code}
</SyntaxHighlighter> </SyntaxHighlighter>
</div> </div>
) : idx === 5 ? ( ) : tabsOrder[idx].toLowerCase() === "tweaks" ? (
<> <>
<div className="api-modal-according-display"> <div className="api-modal-according-display">
<div <div

View file

@ -43,12 +43,13 @@ const ApiModal = forwardRef(
setOpen?: (a: boolean | ((o?: boolean) => boolean)) => void; setOpen?: (a: boolean | ((o?: boolean) => boolean)) => void;
}, },
ref, ref,
) => { ) => {
const tweaksCode = buildTweaks(flow);
const tweak = useTweaksStore((state) => state.tweak); const tweak = useTweaksStore((state) => state.tweak);
const addTweaks = useTweaksStore((state) => state.setTweak); const addTweaks = useTweaksStore((state) => state.setTweak);
const setTweaksList = useTweaksStore((state) => state.setTweaksList); const setTweaksList = useTweaksStore((state) => state.setTweaksList);
const tweaksList = useTweaksStore((state) => state.tweaksList); const tweaksList = useTweaksStore((state) => state.tweaksList);
const isThereTweaks = Object.keys(tweaksCode).length > 0;
const [activeTweaks, setActiveTweaks] = useState(false); const [activeTweaks, setActiveTweaks] = useState(false);
const { autoLogin } = useContext(AuthContext); const { autoLogin } = useContext(AuthContext);
const [open, setOpen] = const [open, setOpen] =
@ -82,7 +83,6 @@ const ApiModal = forwardRef(
const pythonCode = getPythonCode(flow?.name, tweak); const pythonCode = getPythonCode(flow?.name, tweak);
const widgetCode = getWidgetCode(flow?.id, flow?.name, autoLogin); const widgetCode = getWidgetCode(flow?.id, flow?.name, autoLogin);
const includeWebhook = flow.webhook; const includeWebhook = flow.webhook;
const tweaksCode = buildTweaks(flow);
const codesArray = [ const codesArray = [
runCurlCode, runCurlCode,
webhookCurlCode, webhookCurlCode,
@ -121,7 +121,7 @@ const ApiModal = forwardRef(
filterNodes(); filterNodes();
if (Object.keys(tweaksCode).length > 0) { if (isThereTweaks) {
setActiveTab("0"); setActiveTab("0");
setTabs(createTabsArray(codesArray, includeWebhook, true)); setTabs(createTabsArray(codesArray, includeWebhook, true));
} else { } else {
@ -215,7 +215,6 @@ const ApiModal = forwardRef(
); );
const pythonCode = getPythonCode(flow?.name, cloneTweak); const pythonCode = getPythonCode(flow?.name, cloneTweak);
const widgetCode = getWidgetCode(flow?.id, flow?.name, autoLogin); const widgetCode = getWidgetCode(flow?.id, flow?.name, autoLogin);
const isThereTweaks = Object.keys(tweaksCode).length > 0;
const codesObj = getCodesObj({ const codesObj = getCodesObj({
runCurlCode, runCurlCode,
webhookCurlCode, webhookCurlCode,
@ -251,6 +250,8 @@ const ApiModal = forwardRef(
</BaseModal.Header> </BaseModal.Header>
<BaseModal.Content overflowHidden> <BaseModal.Content overflowHidden>
<CodeTabsComponent <CodeTabsComponent
isThereTweaks={isThereTweaks}
isThereWH={includeWebhook ?? false}
flow={flow} flow={flow}
tabs={tabs!} tabs={tabs!}
activeTab={activeTab} activeTab={activeTab}

View file

@ -1,10 +1,11 @@
import { cloneDeep } from "lodash";
import { TABS_ORDER } from "../../../constants/constants"; import { TABS_ORDER } from "../../../constants/constants";
export default function getTabsOrder( export default function getTabsOrder(
isThereWH: boolean = false, isThereWH: boolean = false,
isThereTweaks: boolean = false, isThereTweaks: boolean = false,
): string[] { ): string[] {
const defaultOrder = TABS_ORDER; const defaultOrder = cloneDeep(TABS_ORDER);
if (isThereTweaks) { if (isThereTweaks) {
defaultOrder.push("tweaks"); defaultOrder.push("tweaks");
} }

View file

@ -695,6 +695,8 @@ type codeTabsFuncTempType = {
}; };
export type codeTabsPropsType = { export type codeTabsPropsType = {
isThereTweaks?: boolean;
isThereWH?: boolean;
flow?: FlowType; flow?: FlowType;
tabs: Array<tabsArrayType>; tabs: Array<tabsArrayType>;
activeTab: string; activeTab: string;