Browse Source

fix: bug修复

version/2.05
WIN-UGQIHHLSKBB\EDY 3 months ago
parent
commit
d89bc60ca0
  1. 4
      dist/assets/index-4_vgfGRD.js
  2. 2
      dist/assets/index-4_vgfGRD.js.map
  3. 4
      dist/assets/index-B31bvijX.js
  4. 2
      dist/assets/index-B31bvijX.js.map
  5. 4
      dist/assets/index-BOdvuzA5.js
  6. 2
      dist/assets/index-BOdvuzA5.js.map
  7. 2
      dist/assets/index-BawMthRG.css
  8. 4
      dist/assets/index-CFE14uAE.js
  9. 2
      dist/assets/index-CFE14uAE.js.map
  10. 4
      dist/assets/index-COrnfX8o.js
  11. 2
      dist/assets/index-COrnfX8o.js.map
  12. 2
      dist/assets/index-CUncuWcT.js
  13. 1
      dist/assets/index-CUncuWcT.js.map
  14. 1
      dist/assets/index-Cbh_5Ssw.js.map
  15. 4
      dist/assets/index-Ccz8tTiD.js
  16. 2
      dist/assets/index-Ccz8tTiD.js.map
  17. 4
      dist/assets/index-D6s7DLC0.js
  18. 2
      dist/assets/index-D6s7DLC0.js.map
  19. 14
      dist/assets/index-DSZ4TxXA.js
  20. 1
      dist/assets/index-DSZ4TxXA.js.map
  21. 4
      dist/assets/index-Dy0mUgCw.js
  22. 2
      dist/assets/index-Dy0mUgCw.js.map
  23. 4
      dist/assets/index-IYrYe2z2.js
  24. 2
      dist/assets/index-IYrYe2z2.js.map
  25. 4
      dist/assets/index-WndMfowJ.js
  26. 2
      dist/assets/index-WndMfowJ.js.map
  27. 4
      dist/assets/index-m-i9epVT.js
  28. 2
      dist/assets/index-m-i9epVT.js.map
  29. 2
      dist/assets/index-neZGhFpy.js
  30. 1
      dist/assets/index-neZGhFpy.js.map
  31. 4
      dist/index.html
  32. 11
      src/dialog/material-picker/index.scss
  33. 6
      src/dialog/material-picker/index.tsx
  34. 23
      src/layouts/globalPromptPanel/globalPromptPanel.tsx
  35. 17
      src/pages/CharactersCreate/components/CreateRoleModal/index.tsx
  36. 17
      src/pages/CharactersCreate/index.tsx

4
dist/assets/index-CUX4TrzF.js → dist/assets/index-4_vgfGRD.js

File diff suppressed because one or more lines are too long

2
dist/assets/index-CUX4TrzF.js.map → dist/assets/index-4_vgfGRD.js.map

File diff suppressed because one or more lines are too long

4
dist/assets/index-BXMeLtfi.js → dist/assets/index-B31bvijX.js

File diff suppressed because one or more lines are too long

2
dist/assets/index-BXMeLtfi.js.map → dist/assets/index-B31bvijX.js.map

File diff suppressed because one or more lines are too long

4
dist/assets/index-CAqVSrm1.js → dist/assets/index-BOdvuzA5.js

@ -1,2 +1,2 @@
import{j as s}from"./markdown-vendor-BZI_VWzW.js";import{u as G,r as t}from"./data-vendor-BOGugMqL.js";import{g as U}from"./react-vendor-wlKWdfEb.js";import{bm as V,bn as H,o as Y,f as Z}from"./index-Cbh_5Ssw.js";import"./arco-vendor-CAnKnMnO.js";const _=20,T=[{title:"image",assetType:"1"},{title:"video",assetType:"2"},{title:"template",assetType:"4"},{title:"character",assetType:"5"}];function A(o){const r=o;return r?.data?.list??r?.list??[]}function B(o){const r=o?.id??o?.assetId;return r==null||r===""?null:String(r)}function ee({tabIdPrefix:o}){const{t:r}=G(),[x,S]=U(),[l,b]=t.useState("1"),[c,f]=t.useState([]),[N,j]=t.useState(1),[g,u]=t.useState(!0),[d,F]=t.useState(!1),[v,C]=t.useState(!1),[h,I]=t.useState(null),L=t.useRef(null),P=t.useRef(!1),i=t.useRef(0),k=t.useRef(async()=>{});t.useEffect(()=>{const e=x.get("type");e!=null&&T.some(a=>a.assetType===e)&&b(e)},[x]);const w=t.useCallback(e=>({assetType:l,page:e,pageSize:_}),[l]),p=t.useCallback(e=>l==="5"?V({page:e,pageSize:_}):H(w(e)),[w,l]);t.useEffect(()=>{let e=!1;i.current+=1;const a=i.current;return j(1),u(!0),f([]),F(!0),I(null),p(1).then(n=>{if(e||i.current!==a)return;const m=A(n);f(m),u(m.length>=_)}).catch(n=>{e||i.current!==a||(I(n instanceof Error?n:new Error(String(n))),f([]),u(!1))}).finally(()=>{!e&&i.current===a&&F(!1)}),()=>{e=!0}},[p,l]);const D=t.useCallback(async()=>{if(!g||P.current||d||v)return;P.current=!0,C(!0);const e=i.current,a=N+1;try{const n=await p(a);if(i.current!==e)return;const m=A(n);m.length===0?u(!1):(f(q=>[...q,...m]),j(a),u(m.length>=_))}catch{i.current===e&&u(!1)}finally{P.current=!1,C(!1)}},[p,g,d,v,N]);k.current=D,t.useEffect(()=>{const e=L.current;if(!e||!g||d)return;const a=new IntersectionObserver(n=>{n[0]?.isIntersecting&&k.current()},{root:null,rootMargin:"200px",threshold:0});return a.observe(e),()=>a.disconnect()},[g,d,c.length]);const z=t.useCallback(e=>{b(e),S(a=>{const n=new URLSearchParams(a);return n.set("type",String(e)),n},{replace:!0})},[S]),y=t.useCallback(async e=>{const a=e.assetId;a!=null&&await Y({assetId:a})},[]),E=t.useCallback(async e=>{Z({id:e.id})},[]),R=t.useCallback(e=>{e.currentTarget.querySelector("video")?.play()},[]),M=t.useCallback(e=>{e.currentTarget.querySelector("video")?.pause()},[]),O=t.useMemo(()=>T.map(({title:e,assetType:a})=>({assetType:a,label:r(`pages.create.filters.${e}`)})),[r]),$=t.useMemo(()=>c.map(e=>{const a=B(e)??`row-${l}`;return l=="2"?s.jsx("li",{className:"myFavoritePanel__item",onClick:()=>void y(e),onMouseEnter:R,onMouseLeave:M,children:s.jsx("video",{className:"myFavoritePanel__media",src:e.asset.video,muted:!0,playsInline:!0,loop:!0,preload:"metadata",poster:e.asset.cover,"aria-hidden":!0})},a):l=="1"||l=="4"?s.jsx("li",{className:"myFavoritePanel__item",onClick:()=>void y(e),children:s.jsx("img",{className:"myFavoritePanel__media",src:e?.asset?.images?.[0],alt:"",loading:"lazy"})},a):l=="5"?s.jsx("li",{className:"myFavoritePanel__item",onClick:()=>void E(e),children:s.jsx("img",{className:"myFavoritePanel__media",src:e.avatar,alt:"",loading:"lazy"})},a):s.jsx("li",{className:"myFavoritePanel__item myFavoritePanel__item_empty",children:s.jsx("span",{className:"myFavoritePanel__emptyLabel",children:r("pages.create.panels.favorite.noPreview")})},a)}),[y,E,c,R,M,l,r]);return s.jsxs("div",{className:"myFavoritePanel",children:[s.jsx("div",{className:"createPage__subRow myFavoritePanel__subRow",children:s.jsx("div",{className:"createPage__filters",role:"group","aria-label":r("pages.create.filtersAria"),"data-active-tab":l,children:O.map(({assetType:e,label:a})=>s.jsx("button",{type:"button","data-type":e,"data-selected":l===e,"aria-pressed":l===e,className:classNames("createPage__filterPill",l===e&&"createPage__filterPill_active"),onClick:()=>z(e),children:a},e))})}),s.jsxs("section",{className:"createPage__panel createPage__panel_below_filters",id:`${o}-panel-favorite`,role:"tabpanel","aria-labelledby":`${o}-tab-favorite`,children:[d&&c.length===0?s.jsx("p",{className:"createPage__panelStatus",children:r("common.loading")}):null,h?s.jsx("p",{className:"createPage__panelStatus createPage__panelStatus_error",children:h.message}):null,!d&&!h&&c.length===0?s.jsx("p",{className:"createPage__panelPlaceholder",children:r("pages.create.panels.favorite.placeholder")}):null,c.length>0?s.jsxs(s.Fragment,{children:[s.jsx("ul",{className:"myFavoritePanel__list",role:"list",children:$}),g?s.jsx("div",{ref:L,className:"myFavoritePanel__sentinel","aria-hidden":!0}):null,v?s.jsx("p",{className:"createPage__panelStatus myFavoritePanel__loadMore",children:r("common.loading")}):null]}):null]})]})}export{ee as default};
//# sourceMappingURL=index-CAqVSrm1.js.map
import{j as s}from"./markdown-vendor-BZI_VWzW.js";import{u as G,r as t}from"./data-vendor-BOGugMqL.js";import{g as U}from"./react-vendor-wlKWdfEb.js";import{bm as V,bn as H,o as Y,f as Z}from"./index-DSZ4TxXA.js";import"./arco-vendor-CAnKnMnO.js";const _=20,T=[{title:"image",assetType:"1"},{title:"video",assetType:"2"},{title:"template",assetType:"4"},{title:"character",assetType:"5"}];function A(o){const r=o;return r?.data?.list??r?.list??[]}function B(o){const r=o?.id??o?.assetId;return r==null||r===""?null:String(r)}function ee({tabIdPrefix:o}){const{t:r}=G(),[x,S]=U(),[l,b]=t.useState("1"),[c,f]=t.useState([]),[N,j]=t.useState(1),[g,u]=t.useState(!0),[d,F]=t.useState(!1),[v,C]=t.useState(!1),[h,I]=t.useState(null),L=t.useRef(null),P=t.useRef(!1),i=t.useRef(0),k=t.useRef(async()=>{});t.useEffect(()=>{const e=x.get("type");e!=null&&T.some(a=>a.assetType===e)&&b(e)},[x]);const w=t.useCallback(e=>({assetType:l,page:e,pageSize:_}),[l]),p=t.useCallback(e=>l==="5"?V({page:e,pageSize:_}):H(w(e)),[w,l]);t.useEffect(()=>{let e=!1;i.current+=1;const a=i.current;return j(1),u(!0),f([]),F(!0),I(null),p(1).then(n=>{if(e||i.current!==a)return;const m=A(n);f(m),u(m.length>=_)}).catch(n=>{e||i.current!==a||(I(n instanceof Error?n:new Error(String(n))),f([]),u(!1))}).finally(()=>{!e&&i.current===a&&F(!1)}),()=>{e=!0}},[p,l]);const D=t.useCallback(async()=>{if(!g||P.current||d||v)return;P.current=!0,C(!0);const e=i.current,a=N+1;try{const n=await p(a);if(i.current!==e)return;const m=A(n);m.length===0?u(!1):(f(q=>[...q,...m]),j(a),u(m.length>=_))}catch{i.current===e&&u(!1)}finally{P.current=!1,C(!1)}},[p,g,d,v,N]);k.current=D,t.useEffect(()=>{const e=L.current;if(!e||!g||d)return;const a=new IntersectionObserver(n=>{n[0]?.isIntersecting&&k.current()},{root:null,rootMargin:"200px",threshold:0});return a.observe(e),()=>a.disconnect()},[g,d,c.length]);const z=t.useCallback(e=>{b(e),S(a=>{const n=new URLSearchParams(a);return n.set("type",String(e)),n},{replace:!0})},[S]),y=t.useCallback(async e=>{const a=e.assetId;a!=null&&await Y({assetId:a})},[]),E=t.useCallback(async e=>{Z({id:e.id})},[]),R=t.useCallback(e=>{e.currentTarget.querySelector("video")?.play()},[]),M=t.useCallback(e=>{e.currentTarget.querySelector("video")?.pause()},[]),O=t.useMemo(()=>T.map(({title:e,assetType:a})=>({assetType:a,label:r(`pages.create.filters.${e}`)})),[r]),$=t.useMemo(()=>c.map(e=>{const a=B(e)??`row-${l}`;return l=="2"?s.jsx("li",{className:"myFavoritePanel__item",onClick:()=>void y(e),onMouseEnter:R,onMouseLeave:M,children:s.jsx("video",{className:"myFavoritePanel__media",src:e.asset.video,muted:!0,playsInline:!0,loop:!0,preload:"metadata",poster:e.asset.cover,"aria-hidden":!0})},a):l=="1"||l=="4"?s.jsx("li",{className:"myFavoritePanel__item",onClick:()=>void y(e),children:s.jsx("img",{className:"myFavoritePanel__media",src:e?.asset?.images?.[0],alt:"",loading:"lazy"})},a):l=="5"?s.jsx("li",{className:"myFavoritePanel__item",onClick:()=>void E(e),children:s.jsx("img",{className:"myFavoritePanel__media",src:e.avatar,alt:"",loading:"lazy"})},a):s.jsx("li",{className:"myFavoritePanel__item myFavoritePanel__item_empty",children:s.jsx("span",{className:"myFavoritePanel__emptyLabel",children:r("pages.create.panels.favorite.noPreview")})},a)}),[y,E,c,R,M,l,r]);return s.jsxs("div",{className:"myFavoritePanel",children:[s.jsx("div",{className:"createPage__subRow myFavoritePanel__subRow",children:s.jsx("div",{className:"createPage__filters",role:"group","aria-label":r("pages.create.filtersAria"),"data-active-tab":l,children:O.map(({assetType:e,label:a})=>s.jsx("button",{type:"button","data-type":e,"data-selected":l===e,"aria-pressed":l===e,className:classNames("createPage__filterPill",l===e&&"createPage__filterPill_active"),onClick:()=>z(e),children:a},e))})}),s.jsxs("section",{className:"createPage__panel createPage__panel_below_filters",id:`${o}-panel-favorite`,role:"tabpanel","aria-labelledby":`${o}-tab-favorite`,children:[d&&c.length===0?s.jsx("p",{className:"createPage__panelStatus",children:r("common.loading")}):null,h?s.jsx("p",{className:"createPage__panelStatus createPage__panelStatus_error",children:h.message}):null,!d&&!h&&c.length===0?s.jsx("p",{className:"createPage__panelPlaceholder",children:r("pages.create.panels.favorite.placeholder")}):null,c.length>0?s.jsxs(s.Fragment,{children:[s.jsx("ul",{className:"myFavoritePanel__list",role:"list",children:$}),g?s.jsx("div",{ref:L,className:"myFavoritePanel__sentinel","aria-hidden":!0}):null,v?s.jsx("p",{className:"createPage__panelStatus myFavoritePanel__loadMore",children:r("common.loading")}):null]}):null]})]})}export{ee as default};
//# sourceMappingURL=index-BOdvuzA5.js.map

2
dist/assets/index-CAqVSrm1.js.map → dist/assets/index-BOdvuzA5.js.map

File diff suppressed because one or more lines are too long

2
dist/assets/index-CF2h73Px.css → dist/assets/index-BawMthRG.css

File diff suppressed because one or more lines are too long

4
dist/assets/index-D9hQWjnv.js → dist/assets/index-CFE14uAE.js

File diff suppressed because one or more lines are too long

2
dist/assets/index-D9hQWjnv.js.map → dist/assets/index-CFE14uAE.js.map

File diff suppressed because one or more lines are too long

4
dist/assets/index-C7Ic3fN2.js → dist/assets/index-COrnfX8o.js

File diff suppressed because one or more lines are too long

2
dist/assets/index-C7Ic3fN2.js.map → dist/assets/index-COrnfX8o.js.map

File diff suppressed because one or more lines are too long

2
dist/assets/index-CUncuWcT.js

File diff suppressed because one or more lines are too long

1
dist/assets/index-CUncuWcT.js.map

File diff suppressed because one or more lines are too long

1
dist/assets/index-Cbh_5Ssw.js.map

File diff suppressed because one or more lines are too long

4
dist/assets/index-CuLNkp-2.js → dist/assets/index-Ccz8tTiD.js

File diff suppressed because one or more lines are too long

2
dist/assets/index-CuLNkp-2.js.map → dist/assets/index-Ccz8tTiD.js.map

File diff suppressed because one or more lines are too long

4
dist/assets/index-BKLpFVXo.js → dist/assets/index-D6s7DLC0.js

@ -1,2 +1,2 @@
import{j as t}from"./markdown-vendor-BZI_VWzW.js";import{L as o}from"./react-vendor-wlKWdfEb.js";import{R as s}from"./index-Cbh_5Ssw.js";import{u as r}from"./data-vendor-BOGugMqL.js";import"./arco-vendor-CAnKnMnO.js";function c(){const{t:e}=r();return t.jsxs("div",{className:"flex min-h-[60vh] flex-col items-center justify-center text-gray-600",children:[t.jsx("p",{className:"text-6xl font-bold text-gray-300",children:"404"}),t.jsx("p",{className:"mt-2",children:e("notFound.title")}),t.jsx(o,{to:s.EXPLORE,className:"mt-4 text-blue-600 hover:underline",children:e("notFound.backHome")})]})}export{c as default};
//# sourceMappingURL=index-BKLpFVXo.js.map
import{j as t}from"./markdown-vendor-BZI_VWzW.js";import{L as o}from"./react-vendor-wlKWdfEb.js";import{R as s}from"./index-DSZ4TxXA.js";import{u as r}from"./data-vendor-BOGugMqL.js";import"./arco-vendor-CAnKnMnO.js";function c(){const{t:e}=r();return t.jsxs("div",{className:"flex min-h-[60vh] flex-col items-center justify-center text-gray-600",children:[t.jsx("p",{className:"text-6xl font-bold text-gray-300",children:"404"}),t.jsx("p",{className:"mt-2",children:e("notFound.title")}),t.jsx(o,{to:s.EXPLORE,className:"mt-4 text-blue-600 hover:underline",children:e("notFound.backHome")})]})}export{c as default};
//# sourceMappingURL=index-D6s7DLC0.js.map

2
dist/assets/index-BKLpFVXo.js.map → dist/assets/index-D6s7DLC0.js.map

@ -1 +1 @@
{"version":3,"file":"index-BKLpFVXo.js","sources":["../../src/pages/NotFound/index.tsx"],"sourcesContent":["import { Link } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\nimport { ROUTES } from \"@/constants\";\n\nexport default function NotFound() {\n const { t } = useTranslation();\n return (\n <div className=\"flex min-h-[60vh] flex-col items-center justify-center text-gray-600\">\n <p className=\"text-6xl font-bold text-gray-300\">404</p>\n <p className=\"mt-2\">{t(\"notFound.title\")}</p>\n <Link to={ROUTES.EXPLORE} className=\"mt-4 text-blue-600 hover:underline\">\n {t(\"notFound.backHome\")}\n </Link>\n </div>\n );\n}\n"],"names":["NotFound","t","useTranslation","jsxs","jsx","Link","ROUTES"],"mappings":"yNAIA,SAAwBA,GAAW,CACjC,KAAM,CAAE,EAAAC,CAAA,EAAMC,EAAA,EACd,OACEC,EAAAA,KAAC,MAAA,CAAI,UAAU,uEACb,SAAA,CAAAC,EAAAA,IAAC,IAAA,CAAE,UAAU,mCAAmC,SAAA,MAAG,QAClD,IAAA,CAAE,UAAU,OAAQ,SAAAH,EAAE,gBAAgB,EAAE,EACzCG,EAAAA,IAACC,GAAK,GAAIC,EAAO,QAAS,UAAU,qCACjC,SAAAL,EAAE,mBAAmB,CAAA,CACxB,CAAA,EACF,CAEJ"}
{"version":3,"file":"index-D6s7DLC0.js","sources":["../../src/pages/NotFound/index.tsx"],"sourcesContent":["import { Link } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\nimport { ROUTES } from \"@/constants\";\n\nexport default function NotFound() {\n const { t } = useTranslation();\n return (\n <div className=\"flex min-h-[60vh] flex-col items-center justify-center text-gray-600\">\n <p className=\"text-6xl font-bold text-gray-300\">404</p>\n <p className=\"mt-2\">{t(\"notFound.title\")}</p>\n <Link to={ROUTES.EXPLORE} className=\"mt-4 text-blue-600 hover:underline\">\n {t(\"notFound.backHome\")}\n </Link>\n </div>\n );\n}\n"],"names":["NotFound","t","useTranslation","jsxs","jsx","Link","ROUTES"],"mappings":"yNAIA,SAAwBA,GAAW,CACjC,KAAM,CAAE,EAAAC,CAAA,EAAMC,EAAA,EACd,OACEC,EAAAA,KAAC,MAAA,CAAI,UAAU,uEACb,SAAA,CAAAC,EAAAA,IAAC,IAAA,CAAE,UAAU,mCAAmC,SAAA,MAAG,QAClD,IAAA,CAAE,UAAU,OAAQ,SAAAH,EAAE,gBAAgB,EAAE,EACzCG,EAAAA,IAACC,GAAK,GAAIC,EAAO,QAAS,UAAU,qCACjC,SAAAL,EAAE,mBAAmB,CAAA,CACxB,CAAA,EACF,CAEJ"}

14
dist/assets/index-Cbh_5Ssw.js → dist/assets/index-DSZ4TxXA.js

File diff suppressed because one or more lines are too long

1
dist/assets/index-DSZ4TxXA.js.map

File diff suppressed because one or more lines are too long

4
dist/assets/index-D5G4uxde.js → dist/assets/index-Dy0mUgCw.js

@ -1,2 +1,2 @@
import{j as t}from"./markdown-vendor-BZI_VWzW.js";import{ba as d}from"./index-Cbh_5Ssw.js";import{r as a}from"./data-vendor-BOGugMqL.js";import{f as m,g}from"./react-vendor-wlKWdfEb.js";import"./arco-vendor-CAnKnMnO.js";function _(){const[i,s]=a.useState(void 0),[o,r]=a.useState(void 0),{id:n}=m(),[c]=g(),e=n??c.get("id")??void 0;return a.useEffect(()=>{e&&(s(void 0),d({id:e}).then(l=>{s(l.data?.content),r(l.data?.title)}))},[e]),t.jsx("div",{className:"legal-page",children:t.jsxs("section",{className:"legal-page__section",id:e,"aria-labelledby":"legal-doc-title",children:[t.jsx("h1",{className:"legal-page__title",id:"legal-doc-title",children:o}),t.jsx("div",{className:"legal-page__content",children:t.jsx("div",{dangerouslySetInnerHTML:{__html:i??""}})})]})})}export{_ as default};
//# sourceMappingURL=index-D5G4uxde.js.map
import{j as t}from"./markdown-vendor-BZI_VWzW.js";import{ba as d}from"./index-DSZ4TxXA.js";import{r as a}from"./data-vendor-BOGugMqL.js";import{f as m,g}from"./react-vendor-wlKWdfEb.js";import"./arco-vendor-CAnKnMnO.js";function _(){const[i,s]=a.useState(void 0),[o,r]=a.useState(void 0),{id:n}=m(),[c]=g(),e=n??c.get("id")??void 0;return a.useEffect(()=>{e&&(s(void 0),d({id:e}).then(l=>{s(l.data?.content),r(l.data?.title)}))},[e]),t.jsx("div",{className:"legal-page",children:t.jsxs("section",{className:"legal-page__section",id:e,"aria-labelledby":"legal-doc-title",children:[t.jsx("h1",{className:"legal-page__title",id:"legal-doc-title",children:o}),t.jsx("div",{className:"legal-page__content",children:t.jsx("div",{dangerouslySetInnerHTML:{__html:i??""}})})]})})}export{_ as default};
//# sourceMappingURL=index-Dy0mUgCw.js.map

2
dist/assets/index-D5G4uxde.js.map → dist/assets/index-Dy0mUgCw.js.map

@ -1 +1 @@
{"version":3,"file":"index-D5G4uxde.js","sources":["../../src/pages/content/page/index.tsx"],"sourcesContent":["import { getContent } from \"@/api/api\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { useParams, useSearchParams } from \"react-router-dom\";\r\nimport \"./index.scss\";\r\n\r\nexport default function Content() {\r\n\r\n const [html, setHtml] = useState<string | undefined>(undefined);\r\n const [title, setTitle] = useState<string | undefined>(undefined);\r\n const { id: idFromPath } = useParams();\r\n const [searchParams] = useSearchParams();\r\n const id = idFromPath ?? searchParams.get(\"id\") ?? undefined;\r\n\r\n useEffect(() => {\r\n if (!id) return;\r\n setHtml(undefined);\r\n getContent({ id }).then((res) => {\r\n setHtml(res.data?.content);\r\n setTitle(res.data?.title);\r\n });\r\n }, [id]);\r\n\r\n return (\r\n <div className=\"legal-page\">\r\n <section\r\n className=\"legal-page__section\"\r\n id={id}\r\n aria-labelledby=\"legal-doc-title\"\r\n >\r\n <h1 className=\"legal-page__title\" id=\"legal-doc-title\">\r\n {title}\r\n </h1>\r\n <div className=\"legal-page__content\">\r\n <div dangerouslySetInnerHTML={{ __html: html ?? \"\" }} />\r\n </div>\r\n </section>\r\n </div>\r\n );\r\n}\r\n"],"names":["Content","html","setHtml","useState","title","setTitle","idFromPath","useParams","searchParams","useSearchParams","id","useEffect","getContent","res","jsx","jsxs"],"mappings":"4NAKA,SAAwBA,GAAU,CAE9B,KAAM,CAACC,EAAMC,CAAO,EAAIC,EAAAA,SAA6B,MAAS,EACxD,CAACC,EAAOC,CAAQ,EAAIF,EAAAA,SAA6B,MAAS,EAC1D,CAAE,GAAIG,CAAA,EAAeC,EAAA,EACrB,CAACC,CAAY,EAAIC,EAAA,EACjBC,EAAKJ,GAAcE,EAAa,IAAI,IAAI,GAAK,OAEnDG,OAAAA,EAAAA,UAAU,IAAM,CACPD,IACLR,EAAQ,MAAS,EACjBU,EAAW,CAAE,GAAAF,CAAA,CAAI,EAAE,KAAMG,GAAQ,CAC7BX,EAAQW,EAAI,MAAM,OAAO,EACzBR,EAASQ,EAAI,MAAM,KAAK,CAC5B,CAAC,EACL,EAAG,CAACH,CAAE,CAAC,EAGHI,EAAAA,IAAC,MAAA,CAAI,UAAU,aACX,SAAAC,EAAAA,KAAC,UAAA,CACG,UAAU,sBACV,GAAAL,EACA,kBAAgB,kBAEhB,SAAA,CAAAI,MAAC,KAAA,CAAG,UAAU,oBAAoB,GAAG,kBAChC,SAAAV,EACL,EACAU,EAAAA,IAAC,MAAA,CAAI,UAAU,sBACX,SAAAA,EAAAA,IAAC,MAAA,CAAI,wBAAyB,CAAE,OAAQb,GAAQ,EAAA,CAAG,CAAG,CAAA,CAC1D,CAAA,CAAA,CAAA,EAER,CAER"}
{"version":3,"file":"index-Dy0mUgCw.js","sources":["../../src/pages/content/page/index.tsx"],"sourcesContent":["import { getContent } from \"@/api/api\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { useParams, useSearchParams } from \"react-router-dom\";\r\nimport \"./index.scss\";\r\n\r\nexport default function Content() {\r\n\r\n const [html, setHtml] = useState<string | undefined>(undefined);\r\n const [title, setTitle] = useState<string | undefined>(undefined);\r\n const { id: idFromPath } = useParams();\r\n const [searchParams] = useSearchParams();\r\n const id = idFromPath ?? searchParams.get(\"id\") ?? undefined;\r\n\r\n useEffect(() => {\r\n if (!id) return;\r\n setHtml(undefined);\r\n getContent({ id }).then((res) => {\r\n setHtml(res.data?.content);\r\n setTitle(res.data?.title);\r\n });\r\n }, [id]);\r\n\r\n return (\r\n <div className=\"legal-page\">\r\n <section\r\n className=\"legal-page__section\"\r\n id={id}\r\n aria-labelledby=\"legal-doc-title\"\r\n >\r\n <h1 className=\"legal-page__title\" id=\"legal-doc-title\">\r\n {title}\r\n </h1>\r\n <div className=\"legal-page__content\">\r\n <div dangerouslySetInnerHTML={{ __html: html ?? \"\" }} />\r\n </div>\r\n </section>\r\n </div>\r\n );\r\n}\r\n"],"names":["Content","html","setHtml","useState","title","setTitle","idFromPath","useParams","searchParams","useSearchParams","id","useEffect","getContent","res","jsx","jsxs"],"mappings":"4NAKA,SAAwBA,GAAU,CAE9B,KAAM,CAACC,EAAMC,CAAO,EAAIC,EAAAA,SAA6B,MAAS,EACxD,CAACC,EAAOC,CAAQ,EAAIF,EAAAA,SAA6B,MAAS,EAC1D,CAAE,GAAIG,CAAA,EAAeC,EAAA,EACrB,CAACC,CAAY,EAAIC,EAAA,EACjBC,EAAKJ,GAAcE,EAAa,IAAI,IAAI,GAAK,OAEnDG,OAAAA,EAAAA,UAAU,IAAM,CACPD,IACLR,EAAQ,MAAS,EACjBU,EAAW,CAAE,GAAAF,CAAA,CAAI,EAAE,KAAMG,GAAQ,CAC7BX,EAAQW,EAAI,MAAM,OAAO,EACzBR,EAASQ,EAAI,MAAM,KAAK,CAC5B,CAAC,EACL,EAAG,CAACH,CAAE,CAAC,EAGHI,EAAAA,IAAC,MAAA,CAAI,UAAU,aACX,SAAAC,EAAAA,KAAC,UAAA,CACG,UAAU,sBACV,GAAAL,EACA,kBAAgB,kBAEhB,SAAA,CAAAI,MAAC,KAAA,CAAG,UAAU,oBAAoB,GAAG,kBAChC,SAAAV,EACL,EACAU,EAAAA,IAAC,MAAA,CAAI,UAAU,sBACX,SAAAA,EAAAA,IAAC,MAAA,CAAI,wBAAyB,CAAE,OAAQb,GAAQ,EAAA,CAAG,CAAG,CAAA,CAC1D,CAAA,CAAA,CAAA,EAER,CAER"}

4
dist/assets/index-CpubPRUP.js → dist/assets/index-IYrYe2z2.js

@ -1,2 +1,2 @@
import{j as e}from"./markdown-vendor-BZI_VWzW.js";import{b8 as m,b9 as d}from"./index-Cbh_5Ssw.js";import{u as g,r as o}from"./data-vendor-BOGugMqL.js";import{b as _}from"./react-vendor-wlKWdfEb.js";import"./arco-vendor-CAnKnMnO.js";const h="#user-agreement",c="#privacy-policy";function j(){const{t:l}=g(),{hash:i}=_(),t=i===c,r=l(t?"app.privacy_policy":"app.user_terms"),n=t?c.replace("#",""):h.replace("#",""),[p,a]=o.useState(void 0);return o.useEffect(()=>{a(void 0),t?m().then(s=>a(s.data?.content)):d().then(s=>a(s.data?.content))},[t]),e.jsx("div",{className:"legal-page",children:e.jsxs("section",{className:"legal-page__section",id:n,"aria-labelledby":"legal-doc-title",children:[e.jsx("h1",{className:"legal-page__title",id:"legal-doc-title",children:r}),e.jsx("div",{className:"legal-page__content",children:e.jsx("div",{dangerouslySetInnerHTML:{__html:p??""}})})]})})}export{j as default};
//# sourceMappingURL=index-CpubPRUP.js.map
import{j as e}from"./markdown-vendor-BZI_VWzW.js";import{b8 as m,b9 as d}from"./index-DSZ4TxXA.js";import{u as g,r as o}from"./data-vendor-BOGugMqL.js";import{b as _}from"./react-vendor-wlKWdfEb.js";import"./arco-vendor-CAnKnMnO.js";const h="#user-agreement",c="#privacy-policy";function j(){const{t:l}=g(),{hash:i}=_(),t=i===c,r=l(t?"app.privacy_policy":"app.user_terms"),n=t?c.replace("#",""):h.replace("#",""),[p,a]=o.useState(void 0);return o.useEffect(()=>{a(void 0),t?m().then(s=>a(s.data?.content)):d().then(s=>a(s.data?.content))},[t]),e.jsx("div",{className:"legal-page",children:e.jsxs("section",{className:"legal-page__section",id:n,"aria-labelledby":"legal-doc-title",children:[e.jsx("h1",{className:"legal-page__title",id:"legal-doc-title",children:r}),e.jsx("div",{className:"legal-page__content",children:e.jsx("div",{dangerouslySetInnerHTML:{__html:p??""}})})]})})}export{j as default};
//# sourceMappingURL=index-IYrYe2z2.js.map

2
dist/assets/index-CpubPRUP.js.map → dist/assets/index-IYrYe2z2.js.map

@ -1 +1 @@
{"version":3,"file":"index-CpubPRUP.js","sources":["../../src/pages/legal/index.tsx"],"sourcesContent":["import { getPrivacyPolicy, getUserTerms } from \"@/api/api\";\nimport { useEffect, useState } from \"react\";\nimport { useLocation } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\nimport \"./index.scss\";\n\nconst USER_AGREEMENT_HASH = \"#user-agreement\";\nconst PRIVACY_POLICY_HASH = \"#privacy-policy\";\n\nexport default function Legal() {\n const { t } = useTranslation();\n const { hash } = useLocation();\n const showPrivacy = hash === PRIVACY_POLICY_HASH;\n const title = showPrivacy ? t(\"app.privacy_policy\") : t(\"app.user_terms\");\n const sectionId = showPrivacy\n ? PRIVACY_POLICY_HASH.replace(\"#\", \"\")\n : USER_AGREEMENT_HASH.replace(\"#\", \"\");\n\n const [html, setHtml] = useState<string | undefined>(undefined);\n\n useEffect(() => {\n setHtml(undefined);\n if (showPrivacy) {\n getPrivacyPolicy().then((res) => setHtml(res.data?.content));\n } else {\n getUserTerms().then((res) => setHtml(res.data?.content));\n }\n }, [showPrivacy]);\n\n return (\n <div className=\"legal-page\">\n <section\n className=\"legal-page__section\"\n id={sectionId}\n aria-labelledby=\"legal-doc-title\"\n >\n <h1 className=\"legal-page__title\" id=\"legal-doc-title\">\n {title}\n </h1>\n <div className=\"legal-page__content\">\n <div dangerouslySetInnerHTML={{ __html: html ?? \"\" }} />\n </div>\n </section>\n </div>\n );\n}\n"],"names":["USER_AGREEMENT_HASH","PRIVACY_POLICY_HASH","Legal","t","useTranslation","hash","useLocation","showPrivacy","title","sectionId","html","setHtml","useState","useEffect","getPrivacyPolicy","res","getUserTerms","jsx","jsxs"],"mappings":"yOAMA,MAAMA,EAAsB,kBACtBC,EAAsB,kBAE5B,SAAwBC,GAAQ,CAC9B,KAAM,CAAE,EAAAC,CAAA,EAAMC,EAAA,EACR,CAAE,KAAAC,CAAA,EAASC,EAAA,EACXC,EAAcF,IAASJ,EACvBO,EAAsBL,EAAdI,EAAgB,qBAA0B,gBAAN,EAC5CE,EAAYF,EACdN,EAAoB,QAAQ,IAAK,EAAE,EACnCD,EAAoB,QAAQ,IAAK,EAAE,EAEjC,CAACU,EAAMC,CAAO,EAAIC,EAAAA,SAA6B,MAAS,EAE9DC,OAAAA,EAAAA,UAAU,IAAM,CACdF,EAAQ,MAAS,EACbJ,EACFO,EAAA,EAAmB,KAAMC,GAAQJ,EAAQI,EAAI,MAAM,OAAO,CAAC,EAE3DC,EAAA,EAAe,KAAMD,GAAQJ,EAAQI,EAAI,MAAM,OAAO,CAAC,CAE3D,EAAG,CAACR,CAAW,CAAC,EAGdU,EAAAA,IAAC,MAAA,CAAI,UAAU,aACb,SAAAC,EAAAA,KAAC,UAAA,CACC,UAAU,sBACV,GAAIT,EACJ,kBAAgB,kBAEhB,SAAA,CAAAQ,MAAC,KAAA,CAAG,UAAU,oBAAoB,GAAG,kBAClC,SAAAT,EACH,EACAS,EAAAA,IAAC,MAAA,CAAI,UAAU,sBACb,SAAAA,EAAAA,IAAC,MAAA,CAAI,wBAAyB,CAAE,OAAQP,GAAQ,EAAA,CAAG,CAAG,CAAA,CACxD,CAAA,CAAA,CAAA,EAEJ,CAEJ"}
{"version":3,"file":"index-IYrYe2z2.js","sources":["../../src/pages/legal/index.tsx"],"sourcesContent":["import { getPrivacyPolicy, getUserTerms } from \"@/api/api\";\nimport { useEffect, useState } from \"react\";\nimport { useLocation } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\nimport \"./index.scss\";\n\nconst USER_AGREEMENT_HASH = \"#user-agreement\";\nconst PRIVACY_POLICY_HASH = \"#privacy-policy\";\n\nexport default function Legal() {\n const { t } = useTranslation();\n const { hash } = useLocation();\n const showPrivacy = hash === PRIVACY_POLICY_HASH;\n const title = showPrivacy ? t(\"app.privacy_policy\") : t(\"app.user_terms\");\n const sectionId = showPrivacy\n ? PRIVACY_POLICY_HASH.replace(\"#\", \"\")\n : USER_AGREEMENT_HASH.replace(\"#\", \"\");\n\n const [html, setHtml] = useState<string | undefined>(undefined);\n\n useEffect(() => {\n setHtml(undefined);\n if (showPrivacy) {\n getPrivacyPolicy().then((res) => setHtml(res.data?.content));\n } else {\n getUserTerms().then((res) => setHtml(res.data?.content));\n }\n }, [showPrivacy]);\n\n return (\n <div className=\"legal-page\">\n <section\n className=\"legal-page__section\"\n id={sectionId}\n aria-labelledby=\"legal-doc-title\"\n >\n <h1 className=\"legal-page__title\" id=\"legal-doc-title\">\n {title}\n </h1>\n <div className=\"legal-page__content\">\n <div dangerouslySetInnerHTML={{ __html: html ?? \"\" }} />\n </div>\n </section>\n </div>\n );\n}\n"],"names":["USER_AGREEMENT_HASH","PRIVACY_POLICY_HASH","Legal","t","useTranslation","hash","useLocation","showPrivacy","title","sectionId","html","setHtml","useState","useEffect","getPrivacyPolicy","res","getUserTerms","jsx","jsxs"],"mappings":"yOAMA,MAAMA,EAAsB,kBACtBC,EAAsB,kBAE5B,SAAwBC,GAAQ,CAC9B,KAAM,CAAE,EAAAC,CAAA,EAAMC,EAAA,EACR,CAAE,KAAAC,CAAA,EAASC,EAAA,EACXC,EAAcF,IAASJ,EACvBO,EAAsBL,EAAdI,EAAgB,qBAA0B,gBAAN,EAC5CE,EAAYF,EACdN,EAAoB,QAAQ,IAAK,EAAE,EACnCD,EAAoB,QAAQ,IAAK,EAAE,EAEjC,CAACU,EAAMC,CAAO,EAAIC,EAAAA,SAA6B,MAAS,EAE9DC,OAAAA,EAAAA,UAAU,IAAM,CACdF,EAAQ,MAAS,EACbJ,EACFO,EAAA,EAAmB,KAAMC,GAAQJ,EAAQI,EAAI,MAAM,OAAO,CAAC,EAE3DC,EAAA,EAAe,KAAMD,GAAQJ,EAAQI,EAAI,MAAM,OAAO,CAAC,CAE3D,EAAG,CAACR,CAAW,CAAC,EAGdU,EAAAA,IAAC,MAAA,CAAI,UAAU,aACb,SAAAC,EAAAA,KAAC,UAAA,CACC,UAAU,sBACV,GAAIT,EACJ,kBAAgB,kBAEhB,SAAA,CAAAQ,MAAC,KAAA,CAAG,UAAU,oBAAoB,GAAG,kBAClC,SAAAT,EACH,EACAS,EAAAA,IAAC,MAAA,CAAI,UAAU,sBACb,SAAAA,EAAAA,IAAC,MAAA,CAAI,wBAAyB,CAAE,OAAQP,GAAQ,EAAA,CAAG,CAAG,CAAA,CACxD,CAAA,CAAA,CAAA,EAEJ,CAEJ"}

4
dist/assets/index-nTCpejmm.js → dist/assets/index-WndMfowJ.js

File diff suppressed because one or more lines are too long

2
dist/assets/index-nTCpejmm.js.map → dist/assets/index-WndMfowJ.js.map

File diff suppressed because one or more lines are too long

4
dist/assets/index-DmYPWctB.js → dist/assets/index-m-i9epVT.js

File diff suppressed because one or more lines are too long

2
dist/assets/index-DmYPWctB.js.map → dist/assets/index-m-i9epVT.js.map

File diff suppressed because one or more lines are too long

2
dist/assets/index-neZGhFpy.js

File diff suppressed because one or more lines are too long

1
dist/assets/index-neZGhFpy.js.map

File diff suppressed because one or more lines are too long

4
dist/index.html

@ -18,12 +18,12 @@
<!-- <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500&display=swap" rel="stylesheet"> -->
<!-- <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> -->
<!-- <link href="https://cdn.quilljs.com/1.3.6/quill.snow.css" rel="stylesheet"> -->
<script type="module" crossorigin src="/assets/index-Cbh_5Ssw.js"></script>
<script type="module" crossorigin src="/assets/index-DSZ4TxXA.js"></script>
<link rel="modulepreload" crossorigin href="/assets/data-vendor-BOGugMqL.js">
<link rel="modulepreload" crossorigin href="/assets/markdown-vendor-BZI_VWzW.js">
<link rel="modulepreload" crossorigin href="/assets/react-vendor-wlKWdfEb.js">
<link rel="modulepreload" crossorigin href="/assets/arco-vendor-CAnKnMnO.js">
<link rel="stylesheet" crossorigin href="/assets/index-CF2h73Px.css">
<link rel="stylesheet" crossorigin href="/assets/index-BawMthRG.css">
</head>
<body>
<div id="root"></div>

11
src/dialog/material-picker/index.scss

@ -1,15 +1,21 @@
.materialPicker {
width: 100%;
height: 100%;
position: relative;
}
.materialPicker__surface {
position: relative;
width: 100%;
height: 100%;
padding: 31px 32px 24px;
box-sizing: border-box;
overflow-y: scroll;
scrollbar-width: none;
-ms-overflow-style: none;
&::-webkit-scrollbar {
display: none;
}
}
.materialPicker__close {
@ -25,6 +31,7 @@
display: inline-flex;
align-items: center;
justify-content: center;
z-index: 1;
}
.materialPicker__close img {

6
src/dialog/material-picker/index.tsx

@ -169,10 +169,10 @@ export default function MaterialPickerDialog({ onClose, onSelect, initialCategor
return (
<div className="materialPicker">
<button type="button" className="materialPicker__close" onClick={() => onClose?.()} aria-label={t("dialog.common.closeAria")}>
<img src={new URL("/src/assets/images/ic_close.png", import.meta.url).href} alt="" />
</button>
<div className="materialPicker__surface">
<button type="button" className="materialPicker__close" onClick={() => onClose?.()} aria-label={t("dialog.common.closeAria")}>
<img src={new URL("/src/assets/images/ic_close.png", import.meta.url).href} alt="" />
</button>
<div className="materialPicker__topBar">
<h3 className="materialPicker__title">{t("pages.create.inspiration.filters.characterAssets")}</h3>
<div className="materialPicker__tools">

23
src/layouts/globalPromptPanel/globalPromptPanel.tsx

@ -81,8 +81,10 @@ function useGenerateCost(params: {
selectedParamValues: Record<string, string | number>;
modelParamFields: ComposerParamField[];
inputVideoDurationSeconds: number;
isActionMimicTask: boolean;
selectedActionMimicItem: ActionMimicSelectedItem | null;
}) {
const { activeModelItem, selectedParamValues, modelParamFields, inputVideoDurationSeconds } = params;
const { activeModelItem, selectedParamValues, modelParamFields, inputVideoDurationSeconds, isActionMimicTask, selectedActionMimicItem } = params;
const [generateCost, setGenerateCost] = useState<number>(0);
const debounceTimerRef = useRef<number | null>(null);
const requestSeqRef = useRef(0);
@ -90,6 +92,20 @@ function useGenerateCost(params: {
useEffect(() => {
let cancelled = false;
const computeGenerateCost = async () => {
// 动作模仿 40 * 秒数 * 数量
if (isActionMimicTask) {
const duration = Number(selectedActionMimicItem?.duration ?? 0);
const batchSize = Number(selectedParamValues.batchSize ?? 1);
if (!Number.isFinite(duration) || duration <= 0) {
if (!cancelled) setGenerateCost(0);
return;
}
if (!cancelled) setGenerateCost(Math.ceil(duration * 40 * batchSize));
return;
}
// token计费 从服务端拿积分
if (activeModelItem?.billingMethod === 2) {
if (!Object.keys(selectedParamValues).length) return;
const currentSeq = ++requestSeqRef.current;
@ -110,6 +126,7 @@ function useGenerateCost(params: {
return;
}
// 其他任务 基础倍率 * 参数 factor 连乘 * 折扣系数,最后向上取整。
const baseRatio = Number(activeModelItem?.baseRatio ?? 0);
const discountCoef = Number(activeModelItem?.discountCoef ?? 1);
if (!Number.isFinite(baseRatio) || baseRatio <= 0 || !Number.isFinite(discountCoef) || discountCoef <= 0) {
@ -143,7 +160,7 @@ function useGenerateCost(params: {
debounceTimerRef.current = null;
}
};
}, [activeModelItem, inputVideoDurationSeconds, modelParamFields, selectedParamValues]);
}, [activeModelItem, inputVideoDurationSeconds, isActionMimicTask, modelParamFields, selectedActionMimicItem, selectedParamValues]);
return generateCost;
}
@ -783,6 +800,8 @@ export function GlobalPromptPanel() {
selectedParamValues,
modelParamFields,
inputVideoDurationSeconds,
isActionMimicTask,
selectedActionMimicItem,
});
/** 初始化参数默认值。旧值合法则复用,否则走分辨率/比例偏好策略。 */

17
src/pages/CharactersCreate/components/CreateRoleModal/index.tsx

@ -52,13 +52,6 @@ export default function CreateRoleModal({ visible, taskList, initialTaskId, onCl
const copyText = useCopyText();
const userCreatedCharacter = activeTaskItem?.userCreatedCharacter;
const hasCreatedCharacter = Number(userCreatedCharacter?.id) > 0;
const scrollThumbListToRight = useCallback(() => {
window.requestAnimationFrame(() => {
const container = thumbListRef.current;
if (!container) return;
container.scrollTo({ left: container.scrollWidth, behavior: "smooth" });
});
}, []);
useEffect(() => {
if (visible) return;
@ -82,24 +75,22 @@ export default function CreateRoleModal({ visible, taskList, initialTaskId, onCl
return;
}
}
setActiveTaskItem(taskList[taskList.length - 1] ?? null);
scrollThumbListToRight();
}, [visible, initialTaskId, taskList, scrollThumbListToRight]);
setActiveTaskItem(taskList[0] ?? null);
}, [visible, initialTaskId, taskList]);
useEffect(() => {
if (!visible) return;
if (!activeTaskItem) return;
const existed = taskList.some((task) => String(task.id) === String(activeTaskItem.id));
if (!existed) {
setActiveTaskItem(taskList[taskList.length - 1] ?? null);
scrollThumbListToRight();
setActiveTaskItem(taskList[0] ?? null);
return;
}
const nextTask = taskList.find((task) => String(task.id) === String(activeTaskItem.id));
if (nextTask && nextTask !== activeTaskItem) {
setActiveTaskItem(nextTask);
}
}, [visible, taskList, activeTaskItem, scrollThumbListToRight]);
}, [visible, taskList, activeTaskItem]);
useEffect(() => {
const nextOriginImage = hasCreatedCharacter

17
src/pages/CharactersCreate/index.tsx

@ -734,19 +734,6 @@ export default function CharactersCreate() {
});
}, []);
// 创建任务后将预览区滚到最底,确保新任务可见。
const scrollTaskPreviewToBottom = useCallback(() => {
window.requestAnimationFrame(() => {
const container = taskPreviewRef.current;
if (!container) return;
container.scrollTo({
top: container.scrollHeight,
behavior: "smooth",
});
});
}, []);
// 提交生成任务:校验提示词 -> 可选扩写 -> 组装 payload -> 调用创建任务接口。
const handleCreateGenTaskClick = useCallback(async () => {
if (isCreatingTask) return;
@ -797,9 +784,6 @@ export default function CharactersCreate() {
}
await createGenTask(payload);
await refreshTaskList();
setTimeout(() => {
scrollTaskPreviewToBottom();
}, 100);
} catch {
// ignore
} finally {
@ -815,7 +799,6 @@ export default function CharactersCreate() {
lang,
ratioSizePreview,
refreshTaskList,
scrollTaskPreviewToBottom,
selectedParamValues,
t,
]);

Loading…
Cancel
Save