index.tsx 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import NavBarNormal from "@/components/nav-bar-normal";
  2. import { Image, Text, View } from "@tarojs/components";
  3. import Logo from "@/components/logo";
  4. import SummaryBar from "./components/SummaryBar";
  5. import { useAgentStore } from "@/store/agentStore";
  6. import { useEffect, useState } from "react";
  7. import { useComponentStore } from "@/store/componentStore";
  8. import ComponentList from "@/components/component-list";
  9. import { useUserStore } from "@/store/userStore";
  10. interface IProps {
  11. agentId: string;
  12. }
  13. export default function Index({ agentId }: IProps) {
  14. const { fetchAgent } = useAgentStore();
  15. const { fetchMyEntList } = useUserStore();
  16. const { setComponentList } = useComponentStore()
  17. const components = useComponentStore((state) => state.components);
  18. const fetchAgentDetail = async (agentId: string) => {
  19. const result = await fetchAgent(agentId);
  20. if (result) {
  21. const components = result.components ?? []
  22. // 过滤掉没有 id 的组件防止有错误数据
  23. setComponentList(components.filter(c => !!c.data?.id), agentId);
  24. }
  25. };
  26. useEffect(() => {
  27. if (agentId) {
  28. fetchAgentDetail(agentId);
  29. }
  30. }, [agentId]);
  31. useEffect(()=> {
  32. fetchMyEntList()
  33. }, [])
  34. return (
  35. <View className="w-full">
  36. <NavBarNormal scrollFadeIn showBgColor leftColumn={Logo}></NavBarNormal>
  37. <SummaryBar></SummaryBar>
  38. <View className="flex flex-col w-full p-16 gap-12">
  39. <ComponentList components={components}></ComponentList>
  40. </View>
  41. </View>
  42. );
  43. }