diff --git a/web/src/app/home/bots/components/bot-form/BotForm.tsx b/web/src/app/home/bots/components/bot-form/BotForm.tsx index e2e12778..2ab46bdb 100644 --- a/web/src/app/home/bots/components/bot-form/BotForm.tsx +++ b/web/src/app/home/bots/components/bot-form/BotForm.tsx @@ -61,11 +61,13 @@ export default function BotForm({ onFormSubmit, onFormCancel, onBotDeleted, + onNewBotCreated, }: { initBotId?: string; onFormSubmit: (value: z.infer) => void; onFormCancel: () => void; onBotDeleted: () => void; + onNewBotCreated: (botId: string) => void; }) { const form = useForm>({ resolver: zodResolver(formSchema), @@ -106,6 +108,11 @@ export default function BotForm({ const [, setIsLoading] = useState(false); useEffect(() => { + setBotFormValues(); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + + function setBotFormValues() { initBotFormComponent().then(() => { // 拉取初始化表单信息 if (initBotId) { @@ -128,8 +135,8 @@ export default function BotForm({ form.reset(); } }); - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []); + } + async function initBotFormComponent() { // 初始化流水线列表 const pipelinesRes = await httpClient.getPipelines(); @@ -281,9 +288,13 @@ export default function BotForm({ httpClient .createBot(newBot) .then((res) => { - console.log(res); - onFormSubmit(form.getValues()); - toast.success('创建成功'); + console.log('create bot success', res); + toast.success('创建成功 请启用或修改绑定流水线'); + initBotId = res.uuid; + + setBotFormValues(); + + onNewBotCreated(res.uuid); }) .catch((err) => { toast.error('创建失败:' + err.message); diff --git a/web/src/app/home/bots/page.tsx b/web/src/app/home/bots/page.tsx index 1b9409c4..34d0b3cf 100644 --- a/web/src/app/home/bots/page.tsx +++ b/web/src/app/home/bots/page.tsx @@ -19,7 +19,7 @@ export default function BotConfigPage() { const [modalOpen, setModalOpen] = useState(false); const [botList, setBotList] = useState([]); const [isEditForm, setIsEditForm] = useState(false); - const [nowSelectedBotCard, setNowSelectedBotCard] = useState(); + const [nowSelectedBotUUID, setNowSelectedBotUUID] = useState(); useEffect(() => { getBotList(); @@ -62,18 +62,13 @@ export default function BotConfigPage() { function handleCreateBotClick() { setIsEditForm(false); - setNowSelectedCard(undefined); + setNowSelectedBotUUID(''); setModalOpen(true); } - function setNowSelectedCard(cardVO: BotCardVO | undefined) { - setNowSelectedBotCard(cardVO); - } - - function selectBot(cardVO: BotCardVO) { + function selectBot(botUUID: string) { + setNowSelectedBotUUID(botUUID); setIsEditForm(true); - setNowSelectedCard(cardVO); - console.log('set now vo', cardVO); setModalOpen(true); } @@ -88,7 +83,7 @@ export default function BotConfigPage() {
{ getBotList(); setModalOpen(false); @@ -98,6 +93,11 @@ export default function BotConfigPage() { getBotList(); setModalOpen(false); }} + onNewBotCreated={(botId) => { + console.log('new bot created', botId); + getBotList(); + selectBot(botId); + }} />
@@ -116,7 +116,7 @@ export default function BotConfigPage() {
{ - selectBot(cardVO); + selectBot(cardVO.id); }} > diff --git a/web/src/app/infra/http/HttpClient.ts b/web/src/app/infra/http/HttpClient.ts index 695134e6..e5a457bb 100644 --- a/web/src/app/infra/http/HttpClient.ts +++ b/web/src/app/infra/http/HttpClient.ts @@ -328,7 +328,7 @@ class HttpClient { return this.get(`/api/v1/platform/bots/${uuid}`); } - public createBot(bot: Bot): Promise { + public createBot(bot: Bot): Promise<{ uuid: string }> { return this.post('/api/v1/platform/bots', bot); } @@ -445,8 +445,8 @@ class HttpClient { } // export const httpClient = new HttpClient("https://version-4.langbot.dev"); -// export const httpClient = new HttpClient('http://localhost:5300'); -export const httpClient = new HttpClient('/'); +export const httpClient = new HttpClient('http://localhost:5300'); +// export const httpClient = new HttpClient('/'); // 临时写法,未来两种Client都继承自HttpClient父类,不允许共享方法 export const spaceClient = new HttpClient('https://space.langbot.app');