From f70a7be8bfe53b5ca6bc0ebb526617eaf36c5521 Mon Sep 17 00:00:00 2001 From: heheer <71265218+newfish-cmyk@users.noreply.github.com> Date: Thu, 25 Apr 2024 14:12:47 +0800 Subject: [PATCH] feat(web): recommend function template config with templateid (#1947) * feat(web): recommend function template config with templateid --- .../mods/FunctionPanel/CreateModal/index.tsx | 42 +++++++++++++++++-- 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/web/src/pages/app/functions/mods/FunctionPanel/CreateModal/index.tsx b/web/src/pages/app/functions/mods/FunctionPanel/CreateModal/index.tsx index 950697ee0f..c1b4bce04f 100644 --- a/web/src/pages/app/functions/mods/FunctionPanel/CreateModal/index.tsx +++ b/web/src/pages/app/functions/mods/FunctionPanel/CreateModal/index.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import React, { useEffect, useMemo, useState } from "react"; import { Controller, useForm } from "react-hook-form"; import { useNavigate } from "react-router-dom"; import { @@ -31,7 +31,10 @@ import useFunctionStore from "../../../store"; import { TFunctionTemplate, TMethod } from "@/apis/typing"; import FunctionTemplate from "@/pages/functionTemplate"; import TemplateCard from "@/pages/functionTemplate/Mods/TemplateCard"; -import { useGetRecommendFunctionTemplatesQuery } from "@/pages/functionTemplate/service"; +import { + useGetFunctionTemplatesQuery, + useGetRecommendFunctionTemplatesQuery, +} from "@/pages/functionTemplate/service"; import useTemplateStore from "@/pages/functionTemplate/store"; import useGlobalStore from "@/pages/globalStore"; @@ -54,6 +57,13 @@ const CreateModal = (props: { useFunctionStore(); const { setShowTemplateItem } = useTemplateStore(); + useEffect(() => { + const searchParams = new URLSearchParams(window.location.search); + const templateId = searchParams.get("templateId"); + if (!templateId) return; + localStorage.setItem("templateId", templateId); + }, []); + const defaultValues = { name: functionItem?.name || "", description: functionItem?.desc || "", @@ -100,6 +110,31 @@ const CreateModal = (props: { enabled: !isOpen && !isEdit, }, ); + const searchedTemplateList = useGetFunctionTemplatesQuery( + { + page: 1, + pageSize: 3, + keyword: localStorage.getItem("templateId") || "", + type: "default", + asc: 1, + sort: null, + }, + { + enabled: !!localStorage.getItem("templateId") && !isEdit, + }, + ); + + const recommendedList = useMemo( + () => InitialTemplateList.data?.data.list || [], + [InitialTemplateList], + ); + const searchedList = useMemo( + () => searchedTemplateList.data?.data.list || [], + [searchedTemplateList], + ); + const showedList = useMemo(() => { + return [...searchedList, ...recommendedList].slice(0, 3); + }, [searchedList, recommendedList]); const onSubmit = async (data: any) => { let res: any = {}; @@ -226,7 +261,6 @@ const CreateModal = (props: { /> -