react-toolkits 2.22.10 → 2.22.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/lib/components.d.ts +4 -4
- package/lib/components.js +1 -1
- package/lib/constants.js +2 -1
- package/lib/hooks.js +1 -1
- package/lib/index.css +808 -1
- package/lib/index.js +2 -1
- package/lib/modules.js +1 -1
- package/lib/pages.js +2 -1
- package/lib/services.js +1 -1
- package/lib/types.js +0 -1
- package/lib/utils.js +1 -1
- package/locale/context.js +1 -1
- package/locale/en_GB.js +1 -1
- package/locale/hooks.js +1 -1
- package/locale/index.js +1 -1
- package/locale/ja_JP.js +1 -1
- package/locale/ko_KR.js +1 -1
- package/locale/zh_CN.js +1 -1
- package/package.json +8 -6
- package/lib/chunk-4GULXGNG.js +0 -1
- package/lib/chunk-7NM3DK6A.js +0 -1
- package/lib/chunk-FXPGR372.js +0 -0
- package/lib/chunk-HZHE6R72.js +0 -1
- package/lib/chunk-JIBSYGRB.js +0 -1
- package/lib/chunk-JLHCYGWL.js +0 -1
- package/lib/chunk-JTDKSGJR.js +0 -1
- package/lib/chunk-LRMME3YZ.js +0 -2
- package/lib/chunk-MSKNHKMD.js +0 -1
- package/lib/chunk-O7AQM3CB.js +0 -1
- package/lib/chunk-OLM4QNJB.js +0 -1
- package/lib/chunk-RITI5HRV.js +0 -1
- package/lib/chunk-SJK2ZPEL.js +0 -1
- package/lib/chunk-WHOTHZUW.js +0 -1
- package/lib/chunk-X6ZI7RL7.js +0 -1
- package/lib/chunk-XQERUQGQ.js +0 -1
- package/lib/chunk-XWIQENHQ.js +0 -2
- package/lib/chunk-YIJSACFM.js +0 -1
- package/lib/chunk-ZCPZYTPN.js +0 -1
- package/lib/createMenuItem-HUQG2HQY.js +0 -1
- package/lib/menuItemList-AS6ZDOTZ.js +0 -1
- package/lib/roleDetail-2QUBILZK.js +0 -1
- package/lib/roleList-KWWVOLWJ.js +0 -1
- package/lib/updateMenuItem-7SUIOBXS.js +0 -1
- package/lib/userDetail-TXGT2W7X.js +0 -1
- package/lib/userList-ELLBMK76.js +0 -1
- package/locale/chunk-GHHHKGNN.js +0 -1
package/CHANGELOG.md
CHANGED
package/lib/components.d.ts
CHANGED
|
@@ -44,7 +44,7 @@ declare const Highlight: (props: HighlightProps) => react_jsx_runtime.JSX.Elemen
|
|
|
44
44
|
|
|
45
45
|
interface InfiniteListPayload<Values = any> {
|
|
46
46
|
page?: number;
|
|
47
|
-
|
|
47
|
+
filters?: Values;
|
|
48
48
|
}
|
|
49
49
|
interface InfiniteListRequestConfig<Values = any> {
|
|
50
50
|
url: string;
|
|
@@ -75,8 +75,8 @@ interface InfiniteListRef<Item = any, Values = any, Data = any> {
|
|
|
75
75
|
hasNextPage: boolean;
|
|
76
76
|
isFetchingNextPage: boolean;
|
|
77
77
|
}
|
|
78
|
-
interface InfiniteListProps<Item, Values, Data> extends
|
|
79
|
-
identifier
|
|
78
|
+
interface InfiniteListProps<Item, Values, Data> extends Omit<TableProps<Item>, 'pagination' | 'dataSource' | 'loading' | 'footer'>, Pick<FilterFormWrapperProps, 'buttonsAlign' | 'showReset'> {
|
|
79
|
+
identifier?: string;
|
|
80
80
|
code?: string;
|
|
81
81
|
form?: FormInstance<Values>;
|
|
82
82
|
refreshInterval?: number;
|
|
@@ -90,7 +90,7 @@ interface InfiniteListProps<Item, Values, Data> extends Pick<TableProps<Item>, '
|
|
|
90
90
|
footer?: (data: Data[] | undefined) => ReactNode;
|
|
91
91
|
}
|
|
92
92
|
declare const InfiniteList: <Item extends AnyObject = AnyObject, Values extends object | undefined = undefined, Data = any>(props: InfiniteListProps<Item, Values, Data> & {
|
|
93
|
-
ref?: Ref<InfiniteListRef<Item, Data>>;
|
|
93
|
+
ref?: Ref<InfiniteListRef<Item, Values, Data>>;
|
|
94
94
|
}) => ReactElement;
|
|
95
95
|
|
|
96
96
|
type InfiniteQueryRefetchFunction = () => void | Promise<unknown>;
|
package/lib/components.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{a as DynamicTags,c as InfiniteList,g as Layout,d as NavMenu,e as RequireGame,h as RequirePermission,f as UserWidget,b as useInfiniteListStore}from'./chunk-MSKNHKMD.js';export{a as Highlight}from'./chunk-RITI5HRV.js';export{a as PermissionButton}from'./chunk-SJK2ZPEL.js';export{a as ExpandableParagraph,b as Logo}from'./chunk-JTDKSGJR.js';export{a as FilterFormWrapper,d as QueryList,c as QueryListAction,b as useQueryListStore}from'./chunk-4GULXGNG.js';import'./chunk-7NM3DK6A.js';import'./chunk-X6ZI7RL7.js';export{c as ToolkitsProvider,a as useToolkitsStore,b as withContext}from'./chunk-WHOTHZUW.js';import'./chunk-LRMME3YZ.js';import'./chunk-OLM4QNJB.js';
|
|
1
|
+
import {PlusOutlined,LogoutOutlined,UserOutlined,MenuUnfoldOutlined,MenuFoldOutlined}from'@ant-design/icons';import*as ge from'antd';import {Spin,Menu,Form,Result,Table,Button,App,theme,Space,Input,Tag,Typography,Empty,Dropdown,Divider,Tooltip,Select}from'antd';import {createContext,forwardRef,memo,useRef,useMemo,useCallback,useEffect,useContext,useState,useImperativeHandle,cloneElement,Fragment as Fragment$1,Suspense}from'react';import {isEqual,has,template,get}from'lodash-es';import {create,useStore,createStore}from'zustand';import {persist,createJSONStorage,devtools,subscribeWithSelector}from'zustand/middleware';import {jwtDecode}from'jwt-decode';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {flushSync}from'react-dom';import {createRoot}from'react-dom/client';import {useInfiniteQuery,useQuery,useQueryClient}from'@tanstack/react-query';import kr from'ky';import {Link,useLocation,useNavigate}from'react-router-dom';import Nn from'./logo-L6MFCL6M.png';var Xe={getItem:e=>sessionStorage.getItem(e)||localStorage.getItem(e),setItem:(e,r)=>{sessionStorage.setItem(e,r),localStorage.setItem(e,r);},removeItem(e){sessionStorage.removeItem(e),localStorage.removeItem(e);}};var ae="App-ID";var _t={global:{noEntitlement:"No permission, please contact the administrator.",name:"Name",creationTime:"Creation Time",operation:"Operation",update:"Update",edit:"Edit",delete:"Delete",selectAll:"Select All",game:"Game",user:"User",role:"Role",username:"Username",password:"Password",label:"Label",method:"Method",route:"Route",request:"Request",response:"Response",add:"Add",signIn:"Sign In",projectGroup:"Project Group",view:"View"},SignIn:{title:"Sign In Method",thirdParty:"Third party sign in",signInWithIDass:"Sign in with IDass",unregistered:"You are not yet registered on the platform, please contact the administrator",welcome:"Welcome"},NotFound:{subTitle:"The page you visited does not exist",buttonText:"Return to homepage"},FilterFormWrapper:{confirmText:"Search",resetText:"Reset"},FormModal:{confirmText:"Confirm",cancelText:"Cancel"},GameSelect:{label:"Current Game",placeholder:"Please select a game"},RequireGame:{description:"Please select a game"},UserWidget:{signOutText:"Sign Out"},User:{createTitle:"Create User",createSuccessfully:"User created successfully",updateTitle:"Update User",updateSuccessfully:"User updated successfully",deleteTitle:"Delete User",deleteContent:"Are you sure you want to delete user <%= user %>?",deleteSuccessfully:"User deleted successfully"},Role:{createTitle:"Create Role",createSuccessfully:"Role created successfully",updateTitle:"Update Role",updateSuccessfully:"Role updated successfully",deleteTitle:"Delete Role",deleteContent:"Are you sure you want to delete role <%= role %>?",deleteSuccessfully:"Role deleted successfully"},PermissionList:{failedDescription:"Failed to get permission list",baseSectionTitle:"Platform Basic Permissions",gameSectionTitle:"Game Permissions",gameSectionDescription:"Please select a game first",gameSelectPlaceholder:"Please select a game first",removeText:"Remove",addText:"Add Game Permissions"},RoleDetail:{title:"Role Details"},InfiniteList:{loadingText:"Loading...",reachEndText:"You've reached the end",loadMoreText:"Load more"}},Ze=_t;var et=e=>({locale:Ze,gameApiV2:!1,isGlobal:!1,signInPath:"/sign_in",mainPagePath:"/",permissionVersion:"v1",setContext(r){e(t=>({...t,...r}));}});var tt=e=>({setGameId:r=>{e({gameId:r});}});var rt=(e,r)=>({getUser:()=>{let t=r().token;if(t)try{return jwtDecode(t)}catch{return null}return null},setToken:t=>e({token:t})});var nt=e=>createStore()(persist((...r)=>{let[,t,n]=r,o=()=>{t().setToken(""),n.persist.clearStorage();};return {...rt(...r),...tt(...r),...et(...r),clearToken:o,...e}},{name:"toolkits",storage:createJSONStorage(()=>Xe),partialize:r=>({token:r.token,gameId:r.gameId,collapsed:r.collapsed})}));var qe=createContext(null);function O(e){let r=useContext(qe);if(!r)throw new Error("Missing ToolkitsProvider in the tree");return useStore(r,e||(t=>t))}var st=e=>{let{children:r,...t}=e,n=useRef(),o=useContext(qe)?.getState();if(n.current||(n.current=nt({...o,...t})),!n.current.getState().signInPath)throw new Error('ToolkitsProvider: \u8BF7\u914D\u7F6E "signInPath"');return jsx(qe.Provider,{value:n.current,children:jsx(App,{children:r})})},Xt=(e,r)=>{let t=n=>jsx(st,{...r,children:jsx(e,{...n})});return t.displayName=`withContext(${e.displayName||e.name||"Component"})`,t},Zt=st;function E(){let e=O(t=>t.locale);return {t:useMemo(()=>(t,n)=>has(e,t)?template(get(e,t))(n):t,[e])}}var ar=e=>{let{initialTags:r,addable:t,removable:n,addCallback:o,removeCallback:a}=e,{t:s}=E(),{token:i}=theme.useToken(),[l,g]=useState([]),[u,P]=useState(!1),[b,F]=useState(""),[h,f]=useState(-1),[v,k]=useState(""),V=useRef(null),D=useRef(null);useEffect(()=>{g(r??[]);},[r]),useEffect(()=>{u&&V.current?.focus();},[u]),useEffect(()=>{D.current?.focus();},[b]);let d=async c=>{if(await a?.(c)){let R=l.filter(w=>w!==c);g(R);}},I=()=>{P(!0);},M=c=>{F(c.target.value);},q=async()=>{b&&l.indexOf(b)===-1&&await o?.(b)&&g([...l,b]),P(!1),F("");},p=c=>{k(c.target.value);},m=()=>{let c=[...l];c[h]=v,g(c),f(-1),F("");},y={width:78,verticalAlign:"top"},L={background:i.colorBgContainer,borderStyle:"dashed"};return jsxs(Space,{wrap:!0,size:[0,8],children:[jsx(Space,{wrap:!0,size:[0,8],children:l.map((c,C)=>h===C?jsx(Input,{ref:D,size:"small",style:y,value:v,onChange:p,onBlur:m,onPressEnter:m},c):jsx(Tag,{closable:n,style:{userSelect:"none"},onClose:async R=>{R.preventDefault(),await d(c);},children:jsx("span",{onDoubleClick:R=>{C!==0&&(f(C),k(c),R.preventDefault());},children:c})},c))}),t&&(u?jsx(Input,{ref:V,type:"text",size:"small",style:y,value:b,onChange:M,onBlur:q,onPressEnter:q}):jsxs(Tag,{style:L,onClick:I,children:[jsx(PlusOutlined,{}),"\xA0",s("global.add")]}))]})},ir=ar;var ur=e=>{let{children:r,...t}=e,[n,o]=useState(!1);return jsx(Typography.Paragraph,{...t,className:"mb-0",ellipsis:{rows:2,expandable:"collapsible",expanded:n,onExpand:(a,s)=>{o(s.expanded);}},children:r})},pr=ur;var gr=e=>{let{extras:r,isConfirming:t,onConfirm:n,onReset:o,children:a,buttonsAlign:s="left",showReset:i}=e,{t:l}=E(),{token:{colorFillAlter:g,lineWidth:u,lineType:P,colorBorder:b,borderRadiusLG:F}}=theme.useToken();return jsx("div",{style:{maxWidth:"none",background:g,borderWidth:u,borderStyle:P,borderColor:b,borderRadius:F,padding:24,marginBottom:24},children:jsxs("div",{className:`flex ${s==="bottom"?"flex-col":"flex-row"}`,children:[jsx("div",{className:`${s==="left"?"flex-grow-0":"flex-1"}`,children:a}),jsx("div",{className:`${s==="bottom"?"text-end":"text-start"} ml-4`,children:jsxs(Space,{children:[jsx(Button,{type:"primary",disabled:t,onClick:n,children:l("FilterFormWrapper.confirmText")}),r?.map(f=>jsx(Fragment$1,{children:f.children},f.key)),i&&jsx(Button,{onClick:o,children:l("FilterFormWrapper.resetText")})]})})]})})},ye=gr;var xr=e=>{let r=/(<[^>]*>)/;return e.split(r).filter(t=>t!=="")};function Ir(e){let r=document.createElement("div"),t=createRoot(r);return new Promise(n=>{setTimeout(()=>{flushSync(()=>{t.render(e);}),n(r.innerHTML);});})}var Sr=e=>{let{texts:r,children:t}=e,[n,o]=useState("");return useEffect(()=>{Ir(t).then(a=>{let s=xr(a);for(let i of r)for(let l=0;l<s.length;l++)s[l]=s[l].replace(String(i),`<span style='color: #DC143C;'>${i}</span>`);o(s.join(""));});},[t,r]),jsx("div",{dangerouslySetInnerHTML:{__html:n}})},vr=Sr;var Ge=[0,1,200],Le={OK:200,UNAUTHORIZED:401,FORBIDDEN:403,UNREGISTERED:412},Er=3e4;var mt=e=>!e||typeof e!="object"?"Unknown error":e.msg||e.message||e.error||"Unknown error",Fr=e=>{let{value:r,allowedCodes:t}=e;return r==null||typeof r!="number"?!1:t.includes(r)},Dr=(e,r)=>{if(r<Le.OK||r>=300)return !1;if(!e||typeof e!="object")return !0;let t=[{field:"code",value:e.code,allowedCodes:Ge},{field:"status",value:e.status,allowedCodes:Ge},{field:"errno",value:e.errno,allowedCodes:Ge}];return t.some(o=>o.value!==void 0&&o.value!==null)?t.every(o=>o.value===void 0||o.value===null||Fr(o)):!0},Or=async(e,r)=>{switch(r){case"blob":return e.blob();case"text":return e.text();case"arrayBuffer":return e.arrayBuffer();case"formData":return e.formData();case"json":default:return e.json()}},j=e=>{let{notification:r}=App.useApp(),t=O(),{token:n,isGlobal:o,gameId:a,permissionVersion:s,signInPath:i,clearToken:l}=t,g=()=>{l(),i&&(window.location.href=i);},u=()=>{if(l(),i){let p=new URL(i,window.location.origin);p.searchParams.set("unregistered","true"),window.location.href=p.toString();}},P=()=>{r.error({message:"\u8BBF\u95EE\u88AB\u7981\u6B62",description:"\u60A8\u6CA1\u6709\u6743\u9650\u8BBF\u95EE\u6B64\u8D44\u6E90\u3002"});},b=p=>async(m,y,L)=>{if(p==="blob"||p==="arrayBuffer"||p==="text"||p==="formData")return L;let c;try{c=await L.clone().json();}catch{return L}if(Dr(c,L.status)){let w=c.data!==void 0?c.data:c;return new Response(JSON.stringify(w),{status:L.status,statusText:L.statusText,headers:L.headers})}let C=mt(c);r.error({message:"Request failed",description:C});let R=new Error(C);throw R.response=L,R.data=c,R},F=(p,m)=>{switch(p){case Le.UNAUTHORIZED:g();break;case Le.UNREGISTERED:u();break;case Le.FORBIDDEN:P();break;default:{let y=mt(m)||`HTTP ${p} Error`;r.error({message:"Request failed",description:y});break}}},h=useMemo(()=>kr.create({prefixUrl:e,retry:0,timeout:Er,headers:{Accept:"application/json","Content-Type":"application/json"},hooks:{beforeRequest:[m=>{n&&m.headers.set("Authorization",`Bearer ${n}`),!m.headers.has(ae)&&s!=="v1"&&(o||!a?m.headers.set(ae,"global"):m.headers.set(ae,encodeURIComponent(String(a))));}],beforeError:[async m=>{let{response:y}=m;if(y){let L=y.status,c;try{let C=y.headers.get("content-type")||"";(C.includes("application/json")||C.startsWith("text/"))&&(c=await y.clone().json());}catch{}F(L,c);}else r.error({message:"Network Error",description:m.message||"Network request failed"});return m}]}}),[e,n,o,a,s]),f=async(p,m,y,L)=>{let{responseType:c,...C}=L||{},R={...C,hooks:{...C.hooks,afterResponse:[...C.hooks?.afterResponse||[],b(c)]}},w;return y?w=await h(m,{method:p,json:y,...R}):w=await h(m,{method:p,...R}),Or(w,c)};return {get:(p,m)=>f("GET",p,void 0,m),post:(p,m,y)=>f("POST",p,m,y),put:(p,m,y)=>f("PUT",p,m,y),delete:(p,m)=>f("DELETE",p,void 0,m),patch:(p,m,y)=>f("PATCH",p,m,y),options:(p,m)=>f("OPTIONS",p,void 0,m),head:(p,m)=>f("HEAD",p,void 0,m),request:p=>{let{url:m,...y}=p;return f(y.method||"GET",m,void 0,y)},instance:h}};var Qe={permissions:{check:(e,r)=>["permissions","check",e,r],allPermissions:["permissions","all"],allPermissionsV2:["permissions","allV2"]},users:{all:["users"],detail:e=>["users","detail",e],create:["users","create"],update:["users","update"],delete:["users","delete"]},roles:{all:["roles"],detail:(e,r)=>["roles","detail",e,r],create:e=>["roles","create",e],update:e=>["roles","update",e],delete:["roles","delete"]},menus:{all:["menus"],navbar:e=>["menus","navbar",e],detail:e=>["menus","detail",e],create:["menus","create"],update:["menus","update"],delete:["menus","delete"]},enums:{gameGroups:["enums","gameGroups"],gameIds:e=>["enums","gameIds",e]}};function z(e,r){let t=j(),{permissionVersion:n}=O(),o=n!=="v1"?"/api/usystem/user/checkV2":"/api/usystem/user/check",a=typeof e<"u"?typeof e=="string"?[e]:e:[],s=n!=="v1"?"v2":"v1",{data:i,...l}=useQuery({queryKey:a.length>0?Qe.permissions.check(a,s):["permissions","disabled"],queryFn:()=>t.post(o,{json:{permissions:a},...r}),enabled:a.length>0}),g=!0;return typeof e=="string"?g=i?.has_all?!0:i?.[e]??!1:Array.isArray(e)&&e.length>0&&(g=a.reduce((u,P)=>(u[P]=i?.has_all?!0:i?.[P]??!1,u),{})),{...l,data:g}}var Ce=()=>{let{gameApiV2:e,permissionVersion:r}=O(),t=j(),n=r!=="v1"?e?"/api/game/list":"/api/usystem/game/all":null;return useQuery({queryKey:Qe.enums.gameGroups,queryFn:async()=>{if(!n)return [];let o={headers:{[ae]:"global"}};return e?(await t.get(n,o))?.list??[]:await t.get(n,o)??[]},enabled:!!n,staleTime:1/0})};var gt=Object.freeze({page:0,filters:Object.freeze({})}),Vr=()=>create()(devtools(subscribeWithSelector((e,r)=>({instances:new Map,registerInstance(t,n,o,a,s){e(i=>{let l=i.instances.get(t);if(l){if(l.refetch!==a||l.fetchNextPage!==s){let P={...l,refetch:a,fetchNextPage:s},b=new Map(i.instances);return b.set(t,P),{instances:b}}return i}let g={id:t,url:n,queryKey:o,payload:gt,refetch:a,fetchNextPage:s},u=new Map(i.instances);return u.set(t,g),{instances:u}});},unregisterInstance(t){e(n=>{let o=new Map(n.instances);return o.delete(t)?{instances:o}:n});},updatePayload(t,n){e(o=>{let a=o.instances.get(t);if(!a)return o;let s={...a.payload,...n};if(!isEqual(a.payload,s)){let i={...a,payload:s},l=new Map(o.instances);return l.set(t,i),{instances:l}}return o});},getPayload(t){return r().instances.get(t)?.payload??gt},async refetch(t,n){let o=r().instances.get(t);if(!o)return;let a=!1;if(n){let s=o.payload,i={...s,...n};isEqual(s,i)||(r().updatePayload(t,n),a=!0);}if(!a)try{await o.refetch();}catch(s){throw s}},async fetchNextPage(t){let n=r().instances.get(t);if(n)try{await n.fetchNextPage();}catch(o){throw o}},getInstance(t){return r().instances.get(t)},getAllInstances(){return Array.from(r().instances.values())}})),{name:"infinite-list-store"})),qr=Vr(),G=qr;var zr=5*60*1e3,$r=30*1e3,Yr={display:"flex",justifyContent:"center",alignItems:"center",height:300},Jr=0,Xr=()=>`infiniteList_${Date.now()}_${++Jr}`,Zr=(e,r)=>{let n={refreshInterval:0,initialPageParam:0,...e,dataAdapter:{...{items:T=>T?T.flatMap(S=>S?.list||S||[]):[],hasMore:T=>{if(!T)return !1;let S=T;return S?.hasMore||S?.has_more||!1},nextPageParam:(T,S,B)=>(_=>{if(!_)return !1;let X=_;return X?.hasMore||X?.has_more||!1})(T)?S.length:void 0},...e.dataAdapter}},{identifier:o,code:a,buttonsAlign:s,showReset:i,refreshInterval:l,request:g,tableExtra:u,renderForm:P,afterSuccess:b,afterError:F,dataAdapter:h,initialPageParam:f,footer:v,form:k,...V}=n,{t:D}=E(),[d]=Form.useForm(k),[I,M]=useState(!1),q=useRef(!1),p=useRef(3),m=j(),{data:y,isLoading:L}=z(a),c=useMemo(()=>o||Xr(),[o]),C=G(T=>T.getPayload(c)),R=useMemo(()=>d,[d]),{url:w,method:$="GET",body:K,params:Pe,headers:te,cacheTime:re=zr,staleTime:Me=$r}=g,ue=useMemo(()=>typeof te=="function"?te(R):te,[te,R]),pe=useMemo(()=>["infiniteList",w,c,y,I,C,ue],[w,c,y,I,C,ue]),{data:ne,fetchNextPage:de,hasNextPage:Te,isFetchingNextPage:Y,refetch:Ne,isFetching:be}=useInfiniteQuery({queryKey:pe,queryFn:async({pageParam:T=f})=>{try{let S=C,B=typeof Pe=="function"?Pe(S,T):Pe,J=typeof K=="function"?K(S,T):K,_={method:$,searchParams:B,headers:ue};J&&(J instanceof FormData?_.body=J:_.json=J);let X=await m.request({url:w,..._});return q.current=!0,b?.(p.current,R,[X]),X}catch(S){let B=S instanceof Error?S:new Error(String(S));throw F?.(B,p.current,R),B}},initialPageParam:f,getNextPageParam:(T,S)=>h?.nextPageParam?.(T,S,f),enabled:y&&I,retry:(T,S)=>!(T>=3||S?.message?.includes("401")),retryDelay:T=>Math.min(1e3*2**T,3e4),refetchOnWindowFocus:!1,refetchInterval:q.current?l:0,gcTime:re,staleTime:Me});useEffect(()=>(G.getState().registerInstance(c,w,pe,Ne,de),()=>{G.getState().unregisterInstance(c);}),[c,w,pe,Ne,de]);let oe=h?.items?.(ne?.pages,R),se=Y,U=!Te,Ve=!oe||oe.length===0,xe=async()=>{p.current=0;let T=await d.getFieldsValue();try{await d.validateFields(),M(!0),G.getState().refetch(c,{page:0,filters:T});}catch{M(!1);}},Ie=()=>{p.current=2,de();},Se=async()=>{p.current=1;try{d.resetFields();let T=await d.getFieldsValue();G.getState().updatePayload(c,{page:0,filters:T}),await d.validateFields({validateOnly:!0}),G.getState().refetch(c);}catch{}};if(useEffect(()=>{setTimeout(()=>{y&&d.validateFields({validateOnly:!0}).then(T=>{M(!0),G.getState().updatePayload(c,{page:0,filters:T});}).catch(()=>{M(!1);});},300);},[y,d,c]),useImperativeHandle(r,()=>({data:ne?.pages,dataSource:oe,form:d,refetch:()=>G.getState().refetch(c),fetchNextPage:()=>G.getState().fetchNextPage(c),hasNextPage:!!Te,isFetchingNextPage:Y})),L)return jsx(Spin,{style:Yr});if(!y)return jsx(Result,{status:403,subTitle:D("global.noEntitlement")});let Q=v&&(()=>v(ne?.pages)),ve=()=>typeof u=="function"?u(R,ne?.pages):u,me=typeof P=="function"?jsx(ye,{showReset:i,buttonsAlign:s,isConfirming:be,onReset:Se,onConfirm:xe,children:cloneElement(P(d),{onKeyUp:T=>{T.key==="Enter"&&xe();}})}):jsx(Form,{form:d});return jsxs(Fragment,{children:[me,ve(),jsx("div",{style:{minHeight:"400px"},children:jsx(Table,{...V,dataSource:oe,loading:be,pagination:!1,footer:Q})}),!Ve&&jsx(Button,{block:!0,loading:se,type:"link",htmlType:"button",disabled:se||U,onClick:Ie,children:D(se?"InfiniteList.loadingText":U?"InfiniteList.reachEndText":"InfiniteList.loadMoreText")})]})},en=forwardRef(Zr),tn=en;var bt=create()(persist((e,r)=>({openKeys:[],setOpenKeys:t=>{let n=r();(n.openKeys.length!==t.length||!n.openKeys.every((o,a)=>o===t[a]))&&e({openKeys:t});},selectedKeys:[],setSelectedKeys:t=>{let n=r();(n.selectedKeys.length!==t.length||!n.selectedKeys.every((o,a)=>o===t[a]))&&e({selectedKeys:t});}}),{name:"nav",storage:createJSONStorage(()=>localStorage),partialize:e=>({openKeys:e.openKeys,selectedKeys:e.selectedKeys}),skipHydration:!1,version:1}));var xt=memo(({to:e,children:r})=>jsx(Link,{to:e,children:r}));xt.displayName="MemoizedLink";function we(e){let r=[];if(e)for(let t=0;t<e.length;t++)if(e[t]===null||e[t].type==="divider")r[t]=e[t];else if(e[t].children){let{children:n,...o}=e[t];r[t]={...o,children:we(n)};}else {let{route:n,label:o,...a}=e[t],s=n?jsx(xt,{to:n,children:o}):o;r[t]={...a,label:s};}return r}function Ee(e,r=[],t=[]){for(let n of e){let o=n?.children;if(Array.isArray(o)){let a=n.type!=="group"&&n.key?[...t,n.key]:t;Ee(o,r,a);}else n&&r.push(Object.assign(n,{keypath:t}));}return r}var gn=memo(function(r){let{items:t=[],theme:n,loading:o}=r,a=useLocation(),s=useRef(),i=useRef(),l=useMemo(()=>s.current===t?s.current?Ee(s.current):[]:(s.current=t,Ee(t)),[t]),g=useMemo(()=>s.current===t?s.current?we(s.current):[]:we(t),[t]),{openKeys:u,selectedKeys:P,setOpenKeys:b,setSelectedKeys:F}=bt(),h=useCallback(f=>{let v=f.find(k=>!u.includes(k));if(v){let k=l.find(D=>D.key===v),V=k?.keypath?[...k.keypath,v]:[v];b(V);}else b(f);},[l,u,b]);return useEffect(()=>{if(i.current===a.pathname)return;i.current=a.pathname;let f=l.find(v=>a.pathname===v.route);if(f){let v=f.key,k=f.keypath;(P[0]!==v||!u.every((V,D)=>V===k[D]))&&(F([v]),b(k));}},[l,a.pathname,P,u,F,b]),o?jsx("div",{className:"flex justify-center items-center",style:{height:"calc(100vh - 64px)"},children:jsx(Spin,{})}):jsx(Menu,{theme:n,style:{borderRight:"none"},items:g,mode:"inline",openKeys:u,selectedKeys:P,onOpenChange:h})}),_e=gn;var {Spin:Tn}=ge,bn=({children:e})=>{let{permissionVersion:r,gameId:t,isGlobal:n}=O(s=>s),{isLoading:o}=Ce(),{t:a}=E();return o?jsx("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:400},children:jsx(Tn,{})}):r==="v1"||n?e:t?jsx(Fragment$1,{children:e},t):jsx(Empty,{image:Empty.PRESENTED_IMAGE_SIMPLE,description:a("RequireGame.description")})},He=bn;var Ln=()=>{let{t:e}=E(),r=useNavigate(),{clearToken:t,getUser:n,signInPath:o}=O(u=>u),a=n(),s=()=>{t(),r(o);},i=u=>{(u.key==="Enter"||u.key===" ")&&(u.preventDefault(),s());},l=u=>{(u.key==="Enter"||u.key===" ")&&u.preventDefault();},g=[{key:"1",icon:jsx(LogoutOutlined,{}),label:jsx("a",{role:"button",tabIndex:0,onClick:s,onKeyDown:i,children:e("UserWidget.signOutText")})}];return jsx("div",{children:jsx(Dropdown,{menu:{selectable:!0,items:g},placement:"bottomRight",children:jsx("a",{role:"button",tabIndex:0,onClick:u=>{u.preventDefault();},onKeyDown:l,children:jsxs(Space,{align:"center",children:[jsx("span",{children:a?.authorityId}),jsx(UserOutlined,{style:{fontSize:"16px"}})]})})})})},We=Ln;var{Text:On}=Typography,An=e=>{let{filter:r,options:t}=e,{t:n}=E(),{gameApiV2:o,gameId:a,setGameId:s}=O(h=>h),{data:i,isLoading:l}=Ce(),g=useQueryClient(),u=i?.filter(h=>r?.(h)??!0),P=typeof t=="function"?t(u):u?.map(h=>({label:h.name,value:o?h.game_id:h.id})),b=h=>{F(),s(h);},F=()=>{g.removeQueries({predicate:h=>{let f=h.queryKey;return !f.includes("/api/game/list")&&!f.includes("/api/usystem/game/all")}});};return useEffect(()=>{if(i&&i.length>0){let h=o?i[0].game_id:i[0].id;i.every(f=>String(f.game_id||f.id)!==String(a))&&s(h);}},[i]),jsxs(Space,{children:[jsx(On,{children:n("GameSelect.label")}),jsx(Select,{showSearch:!0,optionFilterProp:"label",value:a,placeholder:n("GameSelect.placeholder"),loading:l,style:{width:"200px"},options:P,onChange:b})]})},Ct=An;var Vn=e=>jsx("img",{src:Nn,alt:"logo",...e}),Be=Vn;var wt=memo(({title:e,subtitle:r,mainPagePath:t,collapsed:n})=>jsxs("div",{className:"px-6 py-2 font-bold relative bg-gradient-to-r from-white to-gray-50/30",style:{height:"auto",display:"flex",flexDirection:"column",justifyContent:"center",backdropFilter:"blur(4px)",WebkitBackdropFilter:"blur(4px)"},children:[jsxs("div",{className:`flex items-center w-full ${n?"justify-center":""}`,children:[jsx(Link,{to:t,className:"hover:opacity-80 transition-all duration-300 ease-out block rounded-lg p-1 hover:bg-white/50 hover:shadow-sm",style:{transition:"all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94)",opacity:n?.8:1,transform:"translateX(0)"},children:jsx(Be,{width:36,style:{objectFit:"contain",display:"block",filter:"drop-shadow(0 1px 1px rgba(0, 0, 0, 0.05))",transition:"all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94)"}})}),e&&jsx("div",{className:"ml-4 overflow-hidden min-w-0",style:{transition:"all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94)",opacity:n?0:1,width:n?"0px":"auto",marginLeft:n?"0px":"16px",transform:n?"translateX(-8px)":"translateX(0)"},children:jsx(Link,{to:t,className:"text-xl leading-tight hover:text-blue-600 transition-all duration-300 font-bold text-ellipsis overflow-hidden whitespace-nowrap block bg-gradient-to-r from-gray-800 to-gray-600 bg-clip-text text-transparent hover:from-blue-600 hover:to-blue-500",title:e,style:{letterSpacing:"0.02em",textShadow:"0 1px 2px rgba(0, 0, 0, 0.05)"},children:e})})]}),jsx("div",{className:"w-full mt-2 overflow-hidden",style:{height:r&&!n?"20px":"1px",transition:"height 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94)"},children:jsxs("div",{className:"flex items-center justify-center h-full w-full",children:[jsx("div",{className:"w-full border-t border-gray-200 absolute",style:{opacity:!r||n?1:0,transition:"opacity 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94)"}}),r&&jsxs("div",{className:"flex items-center w-full text-sm",style:{opacity:n?0:1,transform:n?"translateY(-3px)":"translateY(0)",transition:"all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94)"},children:[jsx("div",{className:"flex-1 border-t border-gray-200"}),jsx("span",{className:"px-3 text-gray-500 font-medium whitespace-nowrap",title:r,children:r}),jsx("div",{className:"flex-1 border-t border-gray-200"})]})]})})]}));wt.displayName="LayoutHeader";var Et=wt;var {Spin:Wn,theme:Bn}=ge,{Header:jn,Sider:zn,Content:$n}=ge.Layout,Yn=e=>{let{collapsible:r,isMenuLoading:t,items:n,headerExtra:o,children:a,navWidth:s,filter:i,gameSelectOptions:l,title:g,subtitle:u}=e,{token:{colorBgContainer:P,colorBorder:b}}=Bn.useToken(),{permissionVersion:F,navWidth:h,collapsible:f,mainPagePath:v,collapsed:k,setContext:V,isGlobal:D}=O(),[d,I]=useState(k),M=async()=>{I(!d),V({collapsed:!d});},q=r??f??!1;return jsxs(ge.Layout,{children:[jsxs(zn,{collapsible:q,theme:"light",trigger:null,collapsed:d,width:s??h,style:{height:"100vh",overflowX:"hidden",overflowY:"auto",borderRightWidth:1,borderRightStyle:"solid",borderRightColor:b,transition:"all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1)"},children:[jsx(Et,{title:g,subtitle:u,mainPagePath:v,collapsed:d||!1}),jsx(_e,{items:n,loading:t})]}),jsxs(ge.Layout,{children:[jsx(jn,{style:{padding:"0 24px",background:P},children:jsxs("div",{className:"flex justify-between items-center h-full",children:[jsxs(Space,{size:"small",split:jsx(Divider,{type:"vertical"}),className:"mr-6",children:[q&&jsx(Button,{type:"text",icon:d?jsx(MenuUnfoldOutlined,{}):jsx(MenuFoldOutlined,{}),style:{fontSize:"16px"},onClick:M}),F!=="v1"&&!D&&jsx(Ct,{filter:i,options:l}),o?.left?.map(p=>jsx("span",{children:p.children},p.key))]}),jsxs(Space,{size:"small",split:jsx(Divider,{type:"vertical"}),children:[o?.right?.map(p=>jsx("span",{children:p.children},p.key)),jsx(We,{})]})]})}),jsx($n,{style:{overflow:"auto",padding:"24px 16px",maxHeight:"calc(100vh - 64px)",transition:"margin-left 0.2s cubic-bezier(0.645, 0.045, 0.355, 1)"},children:jsx(Suspense,{fallback:jsx(Wn,{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"200px"}}),children:jsx(He,{children:a})})})]})]})},Jn=Yn;var Zn=e=>{let{children:r,code:t,showLoading:n,disabled:o,config:a,...s}=e,i=t?Array.isArray(t)?t:[t]:[],{data:l,isLoading:g}=z(i,a),{t:u}=E();return g?jsx(Button,{loading:n,disabled:!n,...s,children:r}):typeof l=="boolean"||l&&Object.values(l).some(Boolean)?jsx(Button,{disabled:o,...s,children:r}):jsx(Tooltip,{defaultOpen:!1,title:u("global.noEntitlement"),children:jsx(Button,{disabled:!0,...s,children:r})})},eo=Zn;var At=Object.freeze({page:1,size:10,filters:Object.freeze({})}),oo=()=>create()(devtools(subscribeWithSelector((e,r)=>({instances:new Map,registerInstance(t,n,o,a){e(s=>{let i=s.instances.get(t);if(i){if(i.refetch!==a){let u={...i,refetch:a},P=new Map(s.instances);return P.set(t,u),{instances:P}}return s}let l={id:t,url:n,queryKey:o,payload:At,refetch:a},g=new Map(s.instances);return g.set(t,l),{instances:g}});},unregisterInstance(t){e(n=>{let o=new Map(n.instances);return o.delete(t)?{instances:o}:n});},updatePayload(t,n){e(o=>{let a=o.instances.get(t);if(!a)return o;let s={...a.payload,...n};if(!isEqual(a.payload,s)){let i={...a,payload:s},l=new Map(o.instances);return l.set(t,i),{instances:l}}return o});},getPayload(t){return r().instances.get(t)?.payload??At},async refetch(t,n){let o=r().instances.get(t);if(!o)return;let a=!1;if(n){let s=o.payload,i={...s,...n};isEqual(s,i)||(r().updatePayload(t,n),a=!0);}if(!a)try{await o.refetch();}catch(s){throw s}},getInstance(t){return r().instances.get(t)},getAllInstances(){return Array.from(r().instances.values())}})),{name:"query-list-store"})),so=oo(),W=so;var Kt=(o=>(o[o.Confirm=0]="Confirm",o[o.Reset=1]="Reset",o[o.Jump=2]="Jump",o[o.Init=3]="Init",o))(Kt||{}),go=5*60*1e3,ho=30*1e3,Vt=["GET","HEAD"],qt=["POST","PUT","PATCH","DELETE"],Po={display:"flex",justifyContent:"center",alignItems:"center",height:300},To=0,bo=()=>`queryList_${Date.now()}_${++To}`,xo=(e,r)=>{let{t}=E(),{form:n,identifier:o,code:a,onePage:s,buttonsAlign:i,showReset:l,defaultSize:g=10,refreshInterval:u=0,tableExtra:P,renderForm:b,afterSuccess:F,afterError:h,footer:f,pageSizeOptions:v,request:k,dataAdapter:V,...D}=e,[d]=Form.useForm(n),I=useMemo(()=>o||bo(),[o]),M=useRef(3),{data:q,isLoading:p}=z(a),[m,y]=useState(!1),L=useRef(!1),c=useRef(!1),C=W(x=>x.getPayload(I)),R=j(),{page:w,size:$=g,filters:K}=C,te=typeof k=="function"?k({page:w,size:$,filters:K}):k,{url:re,method:Me="GET",body:ue,searchParams:pe,headers:ne,cacheTime:de=go,staleTime:Te=ho}=te,Y=Me.toUpperCase();let be=Vt.includes(Y),oe=qt.includes(Y),se={...K,...!s&&{page:w,size:$}},U=ue||(oe?se:void 0),Ve=pe||se,xe=ne,Ie=useRef(!1),Se=["queryList",re,I,w,$,K],{data:Q,isLoading:ve,refetch:me}=useQuery({queryKey:Se,queryFn:async()=>{try{let x={method:Y,searchParams:Ve,headers:xe};U&&!be&&(U instanceof FormData||typeof U=="string"?x.body=U:x.json=U);let N=await R.request({url:re,...x});return Ie.current=!0,F?.(M.current,d,N),N}catch(x){let N=x instanceof Error?x:new Error(String(x));throw h?.(N,M.current,d),N}},retry:(x,N)=>!(x>=3||N?.message?.includes("401")),retryDelay:x=>Math.min(1e3*2**x,3e4),refetchOnWindowFocus:!1,refetchInterval:Ie.current?u:0,gcTime:de,staleTime:Te,enabled:q&&m}),T=useMemo(()=>{let x=V,N={total:Q?.total,items:Q?.list};return typeof x=="function"?{...N,...x(Q)}:{...N,...x}},[V,Q]);useEffect(()=>(W.getState().registerInstance(I,re,Se,me),()=>{W.getState().unregisterInstance(I);}),[I,re]);let S=T.items,B=T.total,J=useMemo(()=>s?!1:{pageSizeOptions:v,showSizeChanger:!0,showQuickJumper:!0,current:w,pageSize:$,total:B,onChange:async(x,N)=>{M.current=2,W.getState().refetch(I,{page:x,size:N});}},[s,v,w,$,B,I]),_=useCallback(async()=>{M.current=0;try{await d.validateFields(),y(!0),W.getState().refetch(I,{page:1,filters:d.getFieldsValue()});}catch{y(!1);}},[d,I]),X=useCallback(async()=>{M.current=1,d.resetFields();try{await d.validateFields({validateOnly:!0}),y(!0),W.getState().refetch(I,{page:1,filters:d.getFieldsValue()});}catch{y(!1);}},[d,I]),Gt=typeof b=="function"?jsx(ye,{showReset:l,buttonsAlign:i,isConfirming:ve,onReset:X,onConfirm:_,children:cloneElement(b(d),{onKeyUp:x=>{x.key==="Enter"&&_();}})}):jsx(Form,{form:d}),Qt=typeof P=="function"?P(d,Q):P,Ut=f?()=>f(Q):void 0;return useEffect(()=>{if(!L.current||c.current)return;let x=d.getFieldsValue();K&&!isEqual(x,K)&&(c.current=!0,d.setFieldsValue(K),setTimeout(()=>{c.current=!1;},0));},[K,d]),useEffect(()=>{if(!q||L.current)return;let x=async()=>{try{d.resetFields();let Je=await d.validateFields({validateOnly:!0});W.getState().updatePayload(I,{page:1,filters:Je}),y(!0);}catch{y(!1);}finally{L.current=!0;}},N=requestAnimationFrame(()=>{Promise.resolve().then(x);});return ()=>{N&&cancelAnimationFrame(N);}},[q,I,d]),useImperativeHandle(r,()=>({data:Q,dataSource:S,form:d,refetch:me}),[Q,S,d,me]),p?jsx(Spin,{style:Po}):q?jsxs("div",{children:[Gt,Qt,jsx(Table,{...D,dataSource:S,loading:ve,pagination:J,footer:Ut})]}):jsx(Result,{status:403,subTitle:t("global.noEntitlement")})},Io=forwardRef(xo),So=Io;var Co=e=>{let{code:r,config:t,children:n}=e,{data:o,isLoading:a}=z(r,t),{t:s}=E();return a?jsx(Spin,{style:{display:"flex",justifyContent:"center",alignItems:"center",height:200}}):o?jsx(Fragment,{children:n}):jsx(Result,{status:"403",subTitle:s("global.noEntitlement")})},ko=Co;export{ir as DynamicTags,pr as ExpandableParagraph,ye as FilterFormWrapper,vr as Highlight,tn as InfiniteList,Jn as Layout,Be as Logo,_e as NavMenu,eo as PermissionButton,So as QueryList,Kt as QueryListAction,He as RequireGame,ko as RequirePermission,Zt as ToolkitsProvider,We as UserWidget,G as useInfiniteListStore,W as useQueryListStore,O as useToolkitsStore,Xt as withContext};
|
package/lib/constants.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
var c="https://idaas.ifunplus.cn/enduser/api/application/plugin_FunPlus/sso/v1",o="App-ID",u="/console/",t=(p=>(p.V1="v1",p.V2="v2",p.V3="v3",p))(t||{}),n="*";
|
|
2
|
+
export{o as APP_ID_HEADER,u as FRONTEND_ROUTE_PREFIX,t as PermissionVersion,c as SSO_URL,n as WILDCARD};
|
package/lib/hooks.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import {Button,Drawer,Form,Modal}from'antd';import {useMemo,useEffect,useState,useCallback}from'react';import {create}from'zustand';import {jsxs,jsx}from'react/jsx-runtime';var _=0,v=()=>{let t=Date.now(),o=Math.floor(Math.random()*1e3),e=++_%1e3;return t*1e6+o*1e3+e};var F=create((t,o)=>({open:new Map,usedIds:new Set,isOpen:e=>o().open.get(e)??!1,show(e){t({open:new Map(o().open).set(e,!0)});},hide(e){t({open:new Map(o().open).set(e,!1)});},hideAll(){t({open:new Map});},checkUniqueness(e){let{usedIds:r}=o();return !r.has(e)},registerIds(e){let{usedIds:r}=o();return r.has(e)?!1:(t({usedIds:new Set(r).add(e)}),!0)},cleanup(e){let{open:r,usedIds:i}=o(),l=new Map(r),n=new Set(i);l.delete(e),n.delete(e),t({open:l,usedIds:n});}}));function O(t){let{content:o,onConfirm:e,afterOpen:r,afterClose:i,footer:l,confirmText:n="\u786E\u8BA4",cancelText:x="\u53D6\u6D88",confirmButtonProps:p,cancelButtonProps:P,...s}=t,d=useMemo(()=>v(),[]),{show:y,hide:u,isOpen:f,cleanup:h}=F();useEffect(()=>()=>{h(d);},[d,h]);let c=f(d),[a,m]=useState(!1),w=typeof o=="function",b=useCallback(async()=>{y(d),await r?.();},[d,y,r]),V=useCallback(()=>{u(d);},[d,u]),g=useCallback(async()=>{V(),await i?.();},[V,i]),A=useCallback(async()=>{try{m(!0),await e?.();}catch(B){throw B}finally{m(!1);}},[e]),N=l!==void 0?l:jsxs("div",{className:"flex gap-4 mx-4",children:[jsx(Button,{type:"primary",loading:a,...p,onClick:A,children:n}),jsx(Button,{...P,onClick:g,children:x})]}),k=jsx(Drawer,{...s,open:c,footer:N,onClose:g,children:w?o({hide:V}):o});return {id:d,show:b,hide:V,confirmLoading:a,drawer:k}}function K(t){let{content:o,form:e,formProps:r,onConfirm:i,onSuccess:l,afterClose:n,...x}=t,[p,P]=useState({}),[s]=Form.useForm();s=e||s;let d=typeof o=="function",{id:y,show:u,hide:f,drawer:h}=O({...x,content:a=>jsx(Form,{...r,form:s,children:d?o(p,a):o}),onConfirm:async()=>{try{let a=await s.validateFields();await i?.(a,p),l?.(),f();}catch(a){throw a}},afterClose:()=>{n?.(s);}}),c=useCallback(a=>{let{initialValues:m,extraValues:w}=a||{};w&&P(w),m&&s.setFieldsValue(m),u();},[s,u]);return {id:y,show:c,hide:f,drawer:h}}var S=create((t,o)=>({open:new Map,usedIds:new Set,isOpen:e=>o().open.get(e)??!1,show(e){t({open:new Map(o().open).set(e,!0)});},hide(e){t({open:new Map(o().open).set(e,!1)});},hideAll(){t({open:new Map});},checkUniqueness(e){let{usedIds:r}=o();return !r.has(e)},registerIds(e){let{usedIds:r}=o();return r.has(e)?!1:(t({usedIds:new Set(r).add(e)}),!0)},cleanup(e){let{open:r,usedIds:i}=o(),l=new Map(r),n=new Set(i);l.delete(e),n.delete(e),t({open:l,usedIds:n});}}));function D(t){let{content:o,onConfirm:e,afterOpen:r,afterClose:i,...l}=t,n=useMemo(()=>v(),[]),{show:x,hide:p,isOpen:P,cleanup:s}=S();useEffect(()=>()=>{s(n);},[n,s]);let d=P(n),[y,u]=useState(!1),f=typeof o=="function",h=useCallback(async()=>{x(n),await r?.();},[n,x,r]),c=useCallback(()=>{p(n);},[n,p]),a=useCallback(async()=>{c(),await i?.();},[c,i]),m=useCallback(async()=>{try{u(!0),await e?.(),c(),await i?.();}catch(b){throw b}finally{u(!1);}},[e,c,i]),w=jsx(Modal,{...l,open:d,confirmLoading:y,onOk:m,onCancel:a,children:f?o({hide:c}):o});return {id:n,show:h,hide:c,modal:w}}function te(t){let{content:o,form:e,formProps:r,onConfirm:i,onSuccess:l,afterClose:n,...x}=t,[p,P]=useState({}),[s]=Form.useForm();s=e||s;let d=typeof o=="function",{id:y,show:u,hide:f,modal:h}=D({...x,content:a=>jsx(Form,{...r,form:s,children:d?o(p,a):o}),onConfirm:async()=>{try{let a=await s.validateFields();await i?.(a,p),l?.(),f();}catch(a){throw a}},afterClose:()=>{n?.(s);}}),c=useCallback(a=>{let{initialValues:m,extraValues:w}=a||{};w&&P(w),m&&s.setFieldsValue(m),u();},[s,u]);return {id:y,show:c,hide:f,modal:h}}export{O as useDrawer,F as useDrawerStore,K as useFormDrawer,te as useFormModal,D as useModal,S as useModalStore};
|