StepConfirm.tsx 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import { View, Image } from "@tarojs/components";
  2. import React, { useState } from "react";
  3. import style from "./index.module.less";
  4. import WemetaRadio from '@/components/WemetaRadio'
  5. import { AvatarMedia } from "@/components/AvatarMedia";
  6. import WemetaButton from '@/components/buttons/WemetaButton'
  7. import Taro from "@tarojs/taro";
  8. import { TAvatarItem } from "@/service/storage";
  9. // import { editAgentAvatar } from "@/service/agent";
  10. import { useAgentStore, useAgentStoreActions } from "@/store/agentStore";
  11. interface IProps {
  12. prev: ()=>void
  13. pickedAvatar: TAvatarItem
  14. }
  15. export default React.memo(function Index({prev, pickedAvatar}:IProps) {
  16. const agent = useAgentStore((state) => state.agent);
  17. const {fetchAgent} = useAgentStoreActions();
  18. const [enabledChatBg, setEnabledChatBg] = useState(true)
  19. const handleConfirm = async () => {
  20. if(!agent?.agentId){
  21. return
  22. }
  23. // await editAgentAvatar(
  24. // agent.agentId,
  25. // pickedAvatar.avatarId,
  26. // enabledChatBg,
  27. // );
  28. await fetchAgent(agent.agentId)
  29. Taro.redirectTo({url: '/pages/agent/index'})
  30. }
  31. return (
  32. <View>
  33. <View className={style.confirmContainer}>
  34. <View className={style.confirmRoundedAvatarWrap}>
  35. <Image
  36. mode='aspectFill'
  37. className={style.confirmRoundedAvatar}
  38. src={pickedAvatar?.avatarLogo}
  39. ></Image>
  40. </View>
  41. <View className={style.confirmChatAvatarBg}>
  42. <View className={style.confirmChatAvatarImage}>
  43. <AvatarMedia roundedFull={false} source={pickedAvatar?.avatarUrl} className={style.confirmChatAvatarImage} />
  44. {!pickedAvatar.isOriginal && <View className={style.aiTips}>图片由AI生成</View> }
  45. {/* <Image
  46. mode="widthFix"
  47. className="w-full"
  48. src={pickedAvatar.avatarUrl}
  49. ></Image> */}
  50. </View>
  51. <View className={style.confirmChatAvatarBgCover}>
  52. <View className={style.block1}></View>
  53. <View className={style.block2}></View>
  54. <View className={style.block3}></View>
  55. </View>
  56. </View>
  57. <View className="flex-center gap-8 text-14 font-medium leading-22 text-black" onClick={()=> setEnabledChatBg((prev)=> !prev)}>
  58. <WemetaRadio checked={enabledChatBg} checkbox></WemetaRadio>
  59. 启用聊天背景
  60. </View>
  61. </View>
  62. <View className="bottom-bar">
  63. <View className="grid grid-cols-2 gap-8 px-20 py-12">
  64. <View className={`button-rounded`} onClick={prev}>更换形象</View>
  65. <WemetaButton className="flex-1" onClick={handleConfirm}>确定</WemetaButton>
  66. </View>
  67. </View>
  68. </View>
  69. );
  70. });