react-toolkits 2.27.0 → 2.27.1
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/index.d.ts +148 -30
- package/lib/index.js +3 -1446
- package/lib/index.js.map +1 -1
- package/locale/context.js +1 -7
- package/locale/context.js.map +1 -1
- package/locale/en_GB.js +1 -94
- package/locale/en_GB.js.map +1 -1
- package/locale/hooks.js +1 -20
- package/locale/hooks.js.map +1 -1
- package/locale/index.js +1 -2
- package/locale/ja_JP.js +1 -94
- package/locale/ja_JP.js.map +1 -1
- package/locale/ko_KR.js +1 -94
- package/locale/ko_KR.js.map +1 -1
- package/locale/zh_CN.js +1 -94
- package/locale/zh_CN.js.map +1 -1
- package/package.json +1 -2
- package/lib/chunk-56C2GQCB.js +0 -2
- package/lib/chunk-56C2GQCB.js.map +0 -1
- package/lib/chunk-6SMI25Y3.js +0 -19
- package/lib/chunk-6SMI25Y3.js.map +0 -1
- package/lib/chunk-7XR7V6IS.js +0 -2
- package/lib/chunk-7XR7V6IS.js.map +0 -1
- package/lib/chunk-AFURMXX2.js +0 -2
- package/lib/chunk-AFURMXX2.js.map +0 -1
- package/lib/chunk-COONHXCY.js +0 -2
- package/lib/chunk-COONHXCY.js.map +0 -1
- package/lib/chunk-DBYHBFI6.js +0 -206
- package/lib/chunk-DBYHBFI6.js.map +0 -1
- package/lib/chunk-JJR5NJTU.js +0 -75
- package/lib/chunk-JJR5NJTU.js.map +0 -1
- package/lib/chunk-LUVKLLW7.js +0 -2
- package/lib/chunk-LUVKLLW7.js.map +0 -1
- package/lib/chunk-M2C4DTSM.js +0 -46
- package/lib/chunk-M2C4DTSM.js.map +0 -1
- package/lib/chunk-NEOHLVWG.js +0 -2
- package/lib/chunk-NEOHLVWG.js.map +0 -1
- package/lib/chunk-O7INKFFW.js +0 -161
- package/lib/chunk-O7INKFFW.js.map +0 -1
- package/lib/chunk-Q6MAXVON.js +0 -2
- package/lib/chunk-Q6MAXVON.js.map +0 -1
- package/lib/chunk-QEUTBIBK.js +0 -125
- package/lib/chunk-QEUTBIBK.js.map +0 -1
- package/lib/chunk-R72QFX5M.js +0 -495
- package/lib/chunk-R72QFX5M.js.map +0 -1
- package/lib/chunk-TYMPX257.js +0 -268
- package/lib/chunk-TYMPX257.js.map +0 -1
- package/lib/chunk-UICHZXQP.js +0 -3
- package/lib/chunk-UICHZXQP.js.map +0 -1
- package/lib/chunk-WFRMJYD3.js +0 -2
- package/lib/chunk-WFRMJYD3.js.map +0 -1
- package/lib/chunk-Z7GW3RVV.js +0 -658
- package/lib/chunk-Z7GW3RVV.js.map +0 -1
- package/lib/createMenuItem-7R7QR4R6.js +0 -83
- package/lib/createMenuItem-7R7QR4R6.js.map +0 -1
- package/lib/createMenuItem-A3ES4CDV.js +0 -2
- package/lib/createMenuItem-A3ES4CDV.js.map +0 -1
- package/lib/menuItemList-BUUJMOU7.js +0 -129
- package/lib/menuItemList-BUUJMOU7.js.map +0 -1
- package/lib/menuItemList-YFQB4BCS.js +0 -2
- package/lib/menuItemList-YFQB4BCS.js.map +0 -1
- package/lib/roleDetail-H2X34J57.js +0 -2
- package/lib/roleDetail-H2X34J57.js.map +0 -1
- package/lib/roleDetail-IP654MAU.js +0 -72
- package/lib/roleDetail-IP654MAU.js.map +0 -1
- package/lib/roleList-QMAYO4MG.js +0 -161
- package/lib/roleList-QMAYO4MG.js.map +0 -1
- package/lib/roleList-UCMHN5NJ.js +0 -2
- package/lib/roleList-UCMHN5NJ.js.map +0 -1
- package/lib/updateMenuItem-NUYWRAV5.js +0 -2
- package/lib/updateMenuItem-NUYWRAV5.js.map +0 -1
- package/lib/updateMenuItem-SZVEK3TL.js +0 -106
- package/lib/updateMenuItem-SZVEK3TL.js.map +0 -1
- package/lib/userDetail-6XMOY3I4.js +0 -2
- package/lib/userDetail-6XMOY3I4.js.map +0 -1
- package/lib/userDetail-MPTJGRMY.js +0 -118
- package/lib/userDetail-MPTJGRMY.js.map +0 -1
- package/lib/userList-3WABI7V4.js +0 -2
- package/lib/userList-3WABI7V4.js.map +0 -1
- package/lib/userList-KXYDP7V5.js +0 -166
- package/lib/userList-KXYDP7V5.js.map +0 -1
package/lib/chunk-M2C4DTSM.js
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { __name, useHttpPost, queryKeys } from './chunk-Z7GW3RVV.js';
|
|
2
|
-
import { useQueryClient, useMutation } from '@tanstack/react-query';
|
|
3
|
-
|
|
4
|
-
function useCreateMenu() {
|
|
5
|
-
const post = useHttpPost();
|
|
6
|
-
const queryClient = useQueryClient();
|
|
7
|
-
return useMutation({
|
|
8
|
-
mutationKey: queryKeys.menus.create,
|
|
9
|
-
mutationFn: /* @__PURE__ */ __name((arg) => post("/api/usystem/menu/set", { ...arg, id: 0, is_model: true }), "mutationFn"),
|
|
10
|
-
onSuccess: /* @__PURE__ */ __name(() => {
|
|
11
|
-
queryClient.invalidateQueries({ queryKey: queryKeys.menus.all });
|
|
12
|
-
queryClient.invalidateQueries({ queryKey: queryKeys.menus.navbar() });
|
|
13
|
-
}, "onSuccess")
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
__name(useCreateMenu, "useCreateMenu");
|
|
17
|
-
function useUpdateMenu() {
|
|
18
|
-
const post = useHttpPost();
|
|
19
|
-
const queryClient = useQueryClient();
|
|
20
|
-
return useMutation({
|
|
21
|
-
mutationKey: queryKeys.menus.update,
|
|
22
|
-
mutationFn: /* @__PURE__ */ __name((arg) => post("/api/usystem/menu/set", { ...arg, is_model: true }), "mutationFn"),
|
|
23
|
-
onSuccess: /* @__PURE__ */ __name(() => {
|
|
24
|
-
queryClient.invalidateQueries({ queryKey: queryKeys.menus.all });
|
|
25
|
-
queryClient.invalidateQueries({ queryKey: queryKeys.menus.navbar() });
|
|
26
|
-
}, "onSuccess")
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
__name(useUpdateMenu, "useUpdateMenu");
|
|
30
|
-
function useRemoveMenu() {
|
|
31
|
-
const post = useHttpPost();
|
|
32
|
-
const queryClient = useQueryClient();
|
|
33
|
-
return useMutation({
|
|
34
|
-
mutationKey: queryKeys.menus.delete,
|
|
35
|
-
mutationFn: /* @__PURE__ */ __name((id) => post("/api/usystem/menu/delete", null, { searchParams: { id } }), "mutationFn"),
|
|
36
|
-
onSuccess: /* @__PURE__ */ __name(() => {
|
|
37
|
-
queryClient.invalidateQueries({ queryKey: queryKeys.menus.all });
|
|
38
|
-
queryClient.invalidateQueries({ queryKey: queryKeys.menus.navbar() });
|
|
39
|
-
}, "onSuccess")
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
__name(useRemoveMenu, "useRemoveMenu");
|
|
43
|
-
|
|
44
|
-
export { useCreateMenu, useRemoveMenu, useUpdateMenu };
|
|
45
|
-
//# sourceMappingURL=chunk-M2C4DTSM.js.map
|
|
46
|
-
//# sourceMappingURL=chunk-M2C4DTSM.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/modules/menu/services/index.ts"],"names":[],"mappings":";;;AAMO,SAAS,aAAA,GAAgB;AAC9B,EAAA,MAAM,OAAO,WAAA,EAAY;AACzB,EAAA,MAAM,cAAc,cAAA,EAAe;AAEnC,EAAA,OAAO,WAAA,CAAY;AAAA,IACjB,WAAA,EAAa,UAAU,KAAA,CAAM,MAAA;AAAA,IAC7B,UAAA,kBAAY,MAAA,CAAA,CAAC,GAAA,KAAkC,IAAA,CAAK,uBAAA,EAAyB,EAAE,GAAG,GAAA,EAAK,EAAA,EAAI,CAAA,EAAG,QAAA,EAAU,IAAA,EAAM,CAAA,EAAlG,YAAA,CAAA;AAAA,IACZ,2BAAW,MAAA,CAAA,MAAM;AACf,MAAA,WAAA,CAAY,kBAAkB,EAAE,QAAA,EAAU,SAAA,CAAU,KAAA,CAAM,KAAK,CAAA;AAC/D,MAAA,WAAA,CAAY,kBAAkB,EAAE,QAAA,EAAU,UAAU,KAAA,CAAM,MAAA,IAAU,CAAA;AAAA,IACtE,CAAA,EAHW,WAAA;AAAA,GAIZ,CAAA;AACH;AAZgB,MAAA,CAAA,aAAA,EAAA,eAAA,CAAA;AAcT,SAAS,aAAA,GAAgB;AAC9B,EAAA,MAAM,OAAO,WAAA,EAAY;AACzB,EAAA,MAAM,cAAc,cAAA,EAAe;AAEnC,EAAA,OAAO,WAAA,CAAY;AAAA,IACjB,WAAA,EAAa,UAAU,KAAA,CAAM,MAAA;AAAA,IAC7B,UAAA,kBAAY,MAAA,CAAA,CAAC,GAAA,KAAsB,IAAA,CAAK,uBAAA,EAAyB,EAAE,GAAG,GAAA,EAAK,QAAA,EAAU,IAAA,EAAM,CAAA,EAA/E,YAAA,CAAA;AAAA,IACZ,2BAAW,MAAA,CAAA,MAAM;AACf,MAAA,WAAA,CAAY,kBAAkB,EAAE,QAAA,EAAU,SAAA,CAAU,KAAA,CAAM,KAAK,CAAA;AAC/D,MAAA,WAAA,CAAY,kBAAkB,EAAE,QAAA,EAAU,UAAU,KAAA,CAAM,MAAA,IAAU,CAAA;AAAA,IACtE,CAAA,EAHW,WAAA;AAAA,GAIZ,CAAA;AACH;AAZgB,MAAA,CAAA,aAAA,EAAA,eAAA,CAAA;AAcT,SAAS,aAAA,GAAgB;AAC9B,EAAA,MAAM,OAAO,WAAA,EAAY;AACzB,EAAA,MAAM,cAAc,cAAA,EAAe;AAEnC,EAAA,OAAO,WAAA,CAAY;AAAA,IACjB,WAAA,EAAa,UAAU,KAAA,CAAM,MAAA;AAAA,IAC7B,UAAA,kBAAY,MAAA,CAAA,CAAC,EAAA,KAAe,IAAA,CAAK,0BAAA,EAA4B,IAAA,EAAM,EAAE,YAAA,EAAc,EAAE,EAAA,EAAG,EAAG,CAAA,EAA/E,YAAA,CAAA;AAAA,IACZ,2BAAW,MAAA,CAAA,MAAM;AACf,MAAA,WAAA,CAAY,kBAAkB,EAAE,QAAA,EAAU,SAAA,CAAU,KAAA,CAAM,KAAK,CAAA;AAC/D,MAAA,WAAA,CAAY,kBAAkB,EAAE,QAAA,EAAU,UAAU,KAAA,CAAM,MAAA,IAAU,CAAA;AAAA,IACtE,CAAA,EAHW,WAAA;AAAA,GAIZ,CAAA;AACH;AAZgB,MAAA,CAAA,aAAA,EAAA,eAAA,CAAA","file":"chunk-M2C4DTSM.js","sourcesContent":["import { useMutation, useQueryClient } from '@tanstack/react-query'\n\nimport { useHttpPost } from '@/libs'\nimport { queryKeys } from '@/queryKeys'\nimport type { MenuListItem } from '@/types'\n\nexport function useCreateMenu() {\n const post = useHttpPost()\n const queryClient = useQueryClient()\n\n return useMutation({\n mutationKey: queryKeys.menus.create,\n mutationFn: (arg: Omit<MenuListItem, 'id'>) => post('/api/usystem/menu/set', { ...arg, id: 0, is_model: true }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: queryKeys.menus.all })\n queryClient.invalidateQueries({ queryKey: queryKeys.menus.navbar() })\n },\n })\n}\n\nexport function useUpdateMenu() {\n const post = useHttpPost()\n const queryClient = useQueryClient()\n\n return useMutation({\n mutationKey: queryKeys.menus.update,\n mutationFn: (arg: MenuListItem) => post('/api/usystem/menu/set', { ...arg, is_model: true }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: queryKeys.menus.all })\n queryClient.invalidateQueries({ queryKey: queryKeys.menus.navbar() })\n },\n })\n}\n\nexport function useRemoveMenu() {\n const post = useHttpPost()\n const queryClient = useQueryClient()\n\n return useMutation({\n mutationKey: queryKeys.menus.delete,\n mutationFn: (id: number) => post('/api/usystem/menu/delete', null, { searchParams: { id } }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: queryKeys.menus.all })\n queryClient.invalidateQueries({ queryKey: queryKeys.menus.navbar() })\n },\n })\n}\n"]}
|
package/lib/chunk-NEOHLVWG.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {a as a$2}from'./chunk-7XR7V6IS.js';import {a as a$1}from'./chunk-LUVKLLW7.js';import {a,b}from'./chunk-UICHZXQP.js';import {Button,Tooltip,Modal,Form}from'antd';import {jsx,Fragment}from'react/jsx-runtime';import {useMemo,useEffect,useState,useCallback}from'react';var N=h=>{let{children:r,code:n,showLoading:l,disabled:a,config:x,...o}=h,c=n?Array.isArray(n)?n:[n]:[],{data:s,isLoading:d}=a$1(c,x),{t:e}=a$2(),V=s&&(typeof s=="boolean"||Object.values(s).some(Boolean)),p=a||!V||d&&!l,u=d&&l,m=p,f=jsx(Button,{disabled:p,loading:u,...o,children:r});return m?jsx(Tooltip,{defaultOpen:false,title:e("global.noEntitlement"),children:f}):f},j=N;var y=a();function w(h){let{content:r,onConfirm:n,afterOpen:l,afterClose:a,...x}=h,o=useMemo(()=>b(),[]);if(typeof y!="function")throw new Error(`useModalStore is not a function. This is likely a build or initialization issue. useModalStore type: ${typeof y}, value: ${String(y)}`);let{show:c,hide:s,isOpen:d,cleanup:e}=y();useEffect(()=>()=>{e(o);},[o,e]);let V=d(o),[p,u]=useState(false),m=typeof r=="function",f=useCallback(async()=>{c(o),await l?.();},[o,c,l]),i=useCallback(()=>{s(o);},[o,s]),t=useCallback(async()=>{i(),await a?.();},[i,a]),M=useCallback(async()=>{try{u(!0),await n?.(),i(),await a?.();}catch(b){throw console.error("Modal confirm error:",b),b}finally{u(false);}},[n,i,a]),P=jsx(Modal,{...x,open:V,confirmLoading:p,onOk:M,onCancel:t,children:m?jsx(Fragment,{children:r({hide:i})}):jsx(Fragment,{children:r})});return {id:o,show:f,hide:i,modal:P}}function z(h){let{content:r,form:n,formProps:l,onConfirm:a,onSuccess:x,afterClose:o,...c}=h,[s,d]=useState({}),[e]=Form.useForm(n),V=typeof r=="function",{id:p,show:u,hide:m,modal:f}=w({...c,content:t=>jsx(Form,{...l,form:e,children:V?jsx(Fragment,{children:r(s,t)}):jsx(Fragment,{children:r})}),onConfirm:async()=>{try{let t=await e.validateFields();await a?.(t,s),x?.(),m();}catch(t){throw console.error("Form validation or submission error:",t),t}},afterClose:()=>{d({}),o?.(e);}}),i=useCallback(t=>{let{initialValues:M,extraValues:P}=t||{};P!==void 0&&d(P),M&&e.setFieldsValue(M),u();},[e,u]);return {id:p,show:i,hide:m,modal:f}}export{j as a,y as b,w as c,z as d};//# sourceMappingURL=chunk-NEOHLVWG.js.map
|
|
2
|
-
//# sourceMappingURL=chunk-NEOHLVWG.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/authButton/AuthButton.tsx","../src/hooks/modal/stores.ts","../src/hooks/modal/modal.tsx","../src/hooks/modal/formModal.tsx"],"names":["AuthButton","props","children","code","showLoading","disabled","config","restProps","codes","data","isLoading","useAuth","t","useTranslation","hasPermission","isButtonDisabled","isButtonLoading","shouldShowTooltip","buttonNode","jsx","Button","Tooltip","AuthButton_default","useModalStore","createVisibilityStore","useModal","content","onConfirm","afterOpen","afterClose","modalProps","_id","useMemo","generateId","show","hide","isOpen","cleanup","useEffect","open","confirmLoading","setConfirmLoading","useState","isRenderFunction","_show","useCallback","_hide","onCancel","onOk","error","internalModal","Modal","Fragment","useFormModal","form","formProps","onSuccess","internalExtraValues","setInternalExtraValues","internalForm","Form","id","modal","operation","values","showForm","options","initialValues","extraValues"],"mappings":"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","file":"chunk-NEOHLVWG.js","sourcesContent":["import type { ButtonProps } from 'antd'\nimport { Button, Tooltip } from 'antd'\nimport type { Options as KyOptions } from 'ky'\nimport type { FC, PropsWithChildren } from 'react'\n\nimport { useTranslation } from '@/locale'\nimport { useAuth } from '@/services'\n\nexport interface AuthButtonProps extends ButtonProps {\n /** 权限码,支持单个或多个 */\n code?: string | string[]\n /** 加载时是否显示 loading 状态 */\n showLoading?: boolean\n /** 请求配置 */\n config?: KyOptions\n}\n\n/**\n * 授权按钮组件\n * 根据权限码自动控制按钮的启用/禁用状态\n * - 有权限:正常显示可点击按钮\n * - 无权限:显示禁用按钮并带有提示\n * - 加载中:显示加载状态\n */\nconst AuthButton: FC<PropsWithChildren<AuthButtonProps>> = props => {\n const { children, code, showLoading, disabled, config, ...restProps } = props\n const codes = code ? (Array.isArray(code) ? code : [code]) : []\n const { data, isLoading } = useAuth(codes, config)\n const { t } = useTranslation()\n\n // 判断是否有权限\n const hasPermission = data && (typeof data === 'boolean' || Object.values(data).some(Boolean))\n\n // 计算最终的禁用状态和加载状态\n const isButtonDisabled = disabled || !hasPermission || (isLoading && !showLoading)\n const isButtonLoading = isLoading && showLoading\n\n // 判断是否需要显示 tooltip(任何禁用状态都显示)\n const shouldShowTooltip = isButtonDisabled\n\n const buttonNode = (\n <Button disabled={isButtonDisabled} loading={isButtonLoading} {...restProps}>\n {children}\n </Button>\n )\n\n if (shouldShowTooltip) {\n return (\n <Tooltip defaultOpen={false} title={t('global.noEntitlement')}>\n {buttonNode}\n </Tooltip>\n )\n }\n\n return buttonNode\n}\n\nexport default AuthButton\n","import { createVisibilityStore } from '@/utils'\n\nexport const useModalStore = createVisibilityStore()\n","import type { ModalProps } from 'antd'\nimport { Modal } from 'antd'\nimport { type ReactNode, useCallback, useEffect, useMemo, useState } from 'react'\n\nimport { generateId } from '@/utils'\n\nimport { useModalStore } from './stores'\n\nexport interface UseModalOperation {\n hide: () => void\n}\n\nexport interface UseModalProps extends Omit<ModalProps, 'open' | 'confirmLoading' | 'onOk' | 'onCancel'> {\n content?: ReactNode | ((operation: UseModalOperation) => ReactNode)\n onConfirm?: () => void | Promise<void>\n afterOpen?: () => void | Promise<void>\n afterClose?: () => void | Promise<void>\n}\n\nexport function useModal(props: UseModalProps) {\n const { content, onConfirm, afterOpen, afterClose, ...modalProps } = props\n\n const _id = useMemo(() => generateId(), [])\n\n // 防御性检查\n if (typeof useModalStore !== 'function') {\n throw new Error(\n 'useModalStore is not a function. This is likely a build or initialization issue. ' +\n `useModalStore type: ${typeof useModalStore}, value: ${String(useModalStore)}`,\n )\n }\n\n const { show, hide, isOpen, cleanup } = useModalStore()\n\n // 组件销毁时清理 ID\n useEffect(() => {\n return () => {\n cleanup(_id)\n }\n }, [_id, cleanup])\n\n const open = isOpen(_id)\n const [confirmLoading, setConfirmLoading] = useState(false)\n const isRenderFunction = typeof content === 'function'\n\n const _show = useCallback(async () => {\n show(_id)\n await afterOpen?.()\n }, [_id, show, afterOpen])\n\n const _hide = useCallback(() => {\n hide(_id)\n }, [_id, hide])\n\n const onCancel: ModalProps['onCancel'] = useCallback(async () => {\n _hide()\n await afterClose?.()\n }, [_hide, afterClose])\n\n const onOk = useCallback(async () => {\n try {\n setConfirmLoading(true)\n await onConfirm?.()\n _hide()\n await afterClose?.()\n } catch (error) {\n console.error('Modal confirm error:', error)\n throw error\n } finally {\n setConfirmLoading(false)\n }\n }, [onConfirm, _hide, afterClose])\n\n const internalModal = (\n <Modal {...modalProps} open={open} confirmLoading={confirmLoading} onOk={onOk} onCancel={onCancel}>\n {isRenderFunction ? <>{content({ hide: _hide })}</> : <>{content}</>}\n </Modal>\n )\n\n return {\n id: _id,\n show: _show,\n hide: _hide,\n modal: internalModal,\n }\n}\n","import type { FormInstance, FormProps } from 'antd'\nimport { Form } from 'antd'\nimport type { AnyObject } from 'antd/es/_util/type'\nimport type { ReactNode } from 'react'\nimport { useCallback, useState } from 'react'\n\nimport type { RecursivePartial } from '@/types'\n\nimport { useModal, type UseModalOperation, type UseModalProps } from './modal'\n\nexport interface ShowFormOptions<Values extends AnyObject, ExtraValues> {\n initialValues?: RecursivePartial<Values>\n extraValues?: ExtraValues\n}\n\nexport interface UseFormModalProps<Values extends AnyObject = AnyObject, ExtraValues = Record<string, unknown>>\n extends Omit<UseModalProps, 'onConfirm' | 'content' | 'onShow' | 'afterClose'> {\n formProps?: Omit<FormProps, 'form'>\n form?: FormInstance<Values>\n content?: ReactNode | ((extraValues: ExtraValues, operation: UseModalOperation) => ReactNode)\n onConfirm?: (values: Values, extraValues: ExtraValues) => void | Promise<void>\n onSuccess?: () => void\n afterClose?: (form: FormInstance<Values>) => void\n}\n\nexport interface UseFormModalReturn<Values extends AnyObject, ExtraValues> {\n id: number\n show: (options?: ShowFormOptions<Values, ExtraValues>) => void\n hide: () => void\n modal: ReactNode\n}\n\nexport function useFormModal<Values extends AnyObject = AnyObject, ExtraValues = Record<string, unknown>>(\n props: UseFormModalProps<Values, ExtraValues>,\n): UseFormModalReturn<Values, ExtraValues> {\n const { content, form, formProps, onConfirm, onSuccess, afterClose, ...modalProps } = props\n const [internalExtraValues, setInternalExtraValues] = useState<ExtraValues>({} as ExtraValues)\n const [internalForm] = Form.useForm<Values>(form)\n\n const isRenderFunction = typeof content === 'function'\n\n const { id, show, hide, modal } = useModal({\n ...modalProps,\n content: operation => (\n <Form {...formProps} form={internalForm}>\n {isRenderFunction ? <>{content(internalExtraValues, operation)}</> : <>{content}</>}\n </Form>\n ),\n onConfirm: async () => {\n try {\n const values = await internalForm.validateFields()\n await onConfirm?.(values, internalExtraValues)\n onSuccess?.()\n hide()\n } catch (error) {\n console.error('Form validation or submission error:', error)\n throw error\n }\n },\n afterClose: () => {\n setInternalExtraValues({} as ExtraValues)\n afterClose?.(internalForm)\n },\n })\n\n const showForm = useCallback(\n (options?: ShowFormOptions<Values, ExtraValues>) => {\n const { initialValues, extraValues } = options || {}\n\n if (extraValues !== undefined) {\n setInternalExtraValues(extraValues)\n }\n\n if (initialValues) {\n internalForm.setFieldsValue(initialValues)\n }\n\n show()\n },\n [internalForm, show],\n )\n\n return {\n id,\n show: showForm,\n hide,\n modal,\n }\n}\n"]}
|
package/lib/chunk-O7INKFFW.js
DELETED
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
import { __name, useHttpGet, queryKeys, useToolkitsStore, useHttpPost, WILDCARD } from './chunk-Z7GW3RVV.js';
|
|
2
|
-
import { useQuery, useQueryClient, useMutation } from '@tanstack/react-query';
|
|
3
|
-
|
|
4
|
-
function useAllRoles() {
|
|
5
|
-
const get = useHttpGet();
|
|
6
|
-
return useQuery({
|
|
7
|
-
queryKey: queryKeys.roles.all,
|
|
8
|
-
queryFn: /* @__PURE__ */ __name(() => get("/api/usystem/role/all"), "queryFn")
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
__name(useAllRoles, "useAllRoles");
|
|
12
|
-
function useRole(name) {
|
|
13
|
-
const get = useHttpGet();
|
|
14
|
-
const {
|
|
15
|
-
context: { permissionMode }
|
|
16
|
-
} = useToolkitsStore();
|
|
17
|
-
return useQuery({
|
|
18
|
-
queryKey: queryKeys.roles.detail(name, permissionMode),
|
|
19
|
-
queryFn: /* @__PURE__ */ __name(() => get(
|
|
20
|
-
`/api/usystem/role/${permissionMode === "game_scoped" /* GAME_SCOPED */ ? "info" : "infoV2"}?name=${name}`
|
|
21
|
-
), "queryFn")
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
__name(useRole, "useRole");
|
|
25
|
-
function useCreateRole() {
|
|
26
|
-
const post = useHttpPost();
|
|
27
|
-
const queryClient = useQueryClient();
|
|
28
|
-
const {
|
|
29
|
-
context: { permissionMode }
|
|
30
|
-
} = useToolkitsStore();
|
|
31
|
-
return useMutation({
|
|
32
|
-
mutationKey: queryKeys.roles.create(permissionMode),
|
|
33
|
-
mutationFn: /* @__PURE__ */ __name(({ name, permissions }) => post(`/api/usystem/role/${permissionMode === "game_scoped" /* GAME_SCOPED */ ? "create" : "createV2"}`, {
|
|
34
|
-
name,
|
|
35
|
-
permissions
|
|
36
|
-
}), "mutationFn"),
|
|
37
|
-
onSuccess: /* @__PURE__ */ __name(() => {
|
|
38
|
-
queryClient.invalidateQueries({ queryKey: queryKeys.roles.all });
|
|
39
|
-
}, "onSuccess")
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
__name(useCreateRole, "useCreateRole");
|
|
43
|
-
function useUpdateRole() {
|
|
44
|
-
const post = useHttpPost();
|
|
45
|
-
const queryClient = useQueryClient();
|
|
46
|
-
const {
|
|
47
|
-
context: { permissionMode }
|
|
48
|
-
} = useToolkitsStore();
|
|
49
|
-
return useMutation({
|
|
50
|
-
mutationKey: queryKeys.roles.update(permissionMode),
|
|
51
|
-
mutationFn: /* @__PURE__ */ __name(({
|
|
52
|
-
id,
|
|
53
|
-
name,
|
|
54
|
-
permissions
|
|
55
|
-
}) => post(`/api/usystem/role/${permissionMode === "game_scoped" /* GAME_SCOPED */ ? "update" : "updateV2"}`, {
|
|
56
|
-
id,
|
|
57
|
-
name,
|
|
58
|
-
permissions
|
|
59
|
-
}), "mutationFn"),
|
|
60
|
-
onSuccess: /* @__PURE__ */ __name(() => {
|
|
61
|
-
queryClient.invalidateQueries({ queryKey: queryKeys.roles.all });
|
|
62
|
-
}, "onSuccess")
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
__name(useUpdateRole, "useUpdateRole");
|
|
66
|
-
function useRemoveRole() {
|
|
67
|
-
const post = useHttpPost();
|
|
68
|
-
const queryClient = useQueryClient();
|
|
69
|
-
return useMutation({
|
|
70
|
-
mutationKey: queryKeys.roles.delete,
|
|
71
|
-
mutationFn: /* @__PURE__ */ __name(({ id, name }) => post("/api/usystem/role/delete", { id, name }), "mutationFn"),
|
|
72
|
-
onSuccess: /* @__PURE__ */ __name(() => {
|
|
73
|
-
queryClient.invalidateQueries({ queryKey: queryKeys.roles.all });
|
|
74
|
-
}, "onSuccess")
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
__name(useRemoveRole, "useRemoveRole");
|
|
78
|
-
function useCreateUser() {
|
|
79
|
-
const post = useHttpPost();
|
|
80
|
-
const queryClient = useQueryClient();
|
|
81
|
-
const {
|
|
82
|
-
context: { permissionMode }
|
|
83
|
-
} = useToolkitsStore();
|
|
84
|
-
return useMutation({
|
|
85
|
-
mutationKey: queryKeys.users.create,
|
|
86
|
-
mutationFn: /* @__PURE__ */ __name((arg) => {
|
|
87
|
-
const hasPermissions = /* @__PURE__ */ __name((obj) => "permissions" in obj, "hasPermissions");
|
|
88
|
-
let requestData = arg;
|
|
89
|
-
if (hasPermissions(arg) && permissionMode === "direct_game" /* DIRECT_GAME */) {
|
|
90
|
-
const transformedPermissions = arg.permissions?.map((item) => ({
|
|
91
|
-
game_group: [WILDCARD],
|
|
92
|
-
game_ids: item.game_ids,
|
|
93
|
-
role: item.role
|
|
94
|
-
}));
|
|
95
|
-
requestData = { ...arg, permissions: transformedPermissions };
|
|
96
|
-
}
|
|
97
|
-
return post("/api/usystem/user/create", requestData);
|
|
98
|
-
}, "mutationFn"),
|
|
99
|
-
onSuccess: /* @__PURE__ */ __name(() => {
|
|
100
|
-
queryClient.invalidateQueries({ queryKey: queryKeys.users.all });
|
|
101
|
-
}, "onSuccess")
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
__name(useCreateUser, "useCreateUser");
|
|
105
|
-
function useUpdateUser() {
|
|
106
|
-
const post = useHttpPost();
|
|
107
|
-
const queryClient = useQueryClient();
|
|
108
|
-
const permissionMode = useToolkitsStore((state) => state.context.permissionMode);
|
|
109
|
-
return useMutation({
|
|
110
|
-
mutationKey: queryKeys.users.update,
|
|
111
|
-
mutationFn: /* @__PURE__ */ __name((arg) => {
|
|
112
|
-
const hasPermissions = /* @__PURE__ */ __name((obj) => "permissions" in obj, "hasPermissions");
|
|
113
|
-
let requestData = arg;
|
|
114
|
-
if (hasPermissions(arg) && permissionMode === "direct_game" /* DIRECT_GAME */) {
|
|
115
|
-
const transformedPermissions = arg.permissions?.map((item) => ({
|
|
116
|
-
game_group: [WILDCARD],
|
|
117
|
-
game_ids: item.game_ids,
|
|
118
|
-
role: item.role
|
|
119
|
-
}));
|
|
120
|
-
requestData = { ...arg, permissions: transformedPermissions };
|
|
121
|
-
}
|
|
122
|
-
return post("/api/usystem/user/update", requestData);
|
|
123
|
-
}, "mutationFn"),
|
|
124
|
-
onSuccess: /* @__PURE__ */ __name(() => {
|
|
125
|
-
queryClient.invalidateQueries({ queryKey: queryKeys.users.all });
|
|
126
|
-
}, "onSuccess")
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
__name(useUpdateUser, "useUpdateUser");
|
|
130
|
-
function useRemoveUser() {
|
|
131
|
-
const post = useHttpPost();
|
|
132
|
-
const queryClient = useQueryClient();
|
|
133
|
-
return useMutation({
|
|
134
|
-
mutationKey: queryKeys.users.delete,
|
|
135
|
-
mutationFn: /* @__PURE__ */ __name(({ id, name }) => post("/api/usystem/user/delete", { id, name }), "mutationFn"),
|
|
136
|
-
onSuccess: /* @__PURE__ */ __name(() => {
|
|
137
|
-
queryClient.invalidateQueries({ queryKey: queryKeys.users.all });
|
|
138
|
-
}, "onSuccess")
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
__name(useRemoveUser, "useRemoveUser");
|
|
142
|
-
function useAllPermissions() {
|
|
143
|
-
const get = useHttpGet();
|
|
144
|
-
return useQuery({
|
|
145
|
-
queryKey: queryKeys.permissions.allPermissions,
|
|
146
|
-
queryFn: /* @__PURE__ */ __name(() => get("/api/usystem/user/allPermssions"), "queryFn")
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
|
-
__name(useAllPermissions, "useAllPermissions");
|
|
150
|
-
function useAllPermissionsV2() {
|
|
151
|
-
const get = useHttpGet();
|
|
152
|
-
return useQuery({
|
|
153
|
-
queryKey: queryKeys.permissions.allPermissionsV2,
|
|
154
|
-
queryFn: /* @__PURE__ */ __name(() => get("/api/usystem/user/allPermssionsV2"), "queryFn")
|
|
155
|
-
});
|
|
156
|
-
}
|
|
157
|
-
__name(useAllPermissionsV2, "useAllPermissionsV2");
|
|
158
|
-
|
|
159
|
-
export { useAllPermissions, useAllPermissionsV2, useAllRoles, useCreateRole, useCreateUser, useRemoveRole, useRemoveUser, useRole, useUpdateRole, useUpdateUser };
|
|
160
|
-
//# sourceMappingURL=chunk-O7INKFFW.js.map
|
|
161
|
-
//# sourceMappingURL=chunk-O7INKFFW.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/modules/permission/services/index.ts"],"names":[],"mappings":"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","file":"chunk-O7INKFFW.js","sourcesContent":["import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'\n\nimport { useToolkitsStore } from '@/components/toolkitsProvider'\nimport { PermissionMode, WILDCARD } from '@/constants'\nimport { useHttpGet, useHttpPost } from '@/libs'\nimport { queryKeys } from '@/queryKeys'\n\nimport type { PermissionEnumItem, RoleEnumItem, RoleV1, RoleV2 } from '../types'\n\nexport function useAllRoles() {\n const get = useHttpGet()\n return useQuery({\n queryKey: queryKeys.roles.all,\n queryFn: () => get<RoleEnumItem[]>('/api/usystem/role/all'),\n })\n}\n\nexport function useRole(name: string) {\n const get = useHttpGet()\n const {\n context: { permissionMode },\n } = useToolkitsStore()\n\n return useQuery({\n queryKey: queryKeys.roles.detail(name, permissionMode),\n queryFn: () =>\n get<RoleV1 | RoleV2>(\n `/api/usystem/role/${permissionMode === PermissionMode.GAME_SCOPED ? 'info' : 'infoV2'}?name=${name}`,\n ),\n })\n}\n\nexport function useCreateRole() {\n const post = useHttpPost()\n const queryClient = useQueryClient()\n const {\n context: { permissionMode },\n } = useToolkitsStore()\n\n return useMutation({\n mutationKey: queryKeys.roles.create(permissionMode),\n mutationFn: ({ name, permissions }: { name: string; permissions: RoleV1['permissions'] | RoleV2['permissions'] }) =>\n post(`/api/usystem/role/${permissionMode === PermissionMode.GAME_SCOPED ? 'create' : 'createV2'}`, {\n name,\n permissions,\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: queryKeys.roles.all })\n },\n })\n}\n\nexport function useUpdateRole() {\n const post = useHttpPost()\n const queryClient = useQueryClient()\n const {\n context: { permissionMode },\n } = useToolkitsStore()\n\n return useMutation({\n mutationKey: queryKeys.roles.update(permissionMode),\n mutationFn: ({\n id,\n name,\n permissions,\n }: {\n id: number\n name: string\n permissions: RoleV1['permissions'] | RoleV2['permissions']\n }) =>\n post(`/api/usystem/role/${permissionMode === PermissionMode.GAME_SCOPED ? 'update' : 'updateV2'}`, {\n id,\n name,\n permissions,\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: queryKeys.roles.all })\n },\n })\n}\n\nexport function useRemoveRole() {\n const post = useHttpPost()\n const queryClient = useQueryClient()\n\n return useMutation({\n mutationKey: queryKeys.roles.delete,\n mutationFn: ({ id, name }: { id: number; name: string }) => post('/api/usystem/role/delete', { id, name }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: queryKeys.roles.all })\n },\n })\n}\n\ntype CreateUserWithRoles = { name: string; roles: string[] }\n\ntype CreateUserPermission = {\n game_group?: string[]\n game_ids: string[]\n role: string\n}\n\ntype CreateUserWithPermissions = {\n name: string\n permissions: CreateUserPermission[]\n}\n\nexport function useCreateUser() {\n const post = useHttpPost()\n const queryClient = useQueryClient()\n const {\n context: { permissionMode },\n } = useToolkitsStore()\n\n return useMutation({\n mutationKey: queryKeys.users.create,\n mutationFn: (arg: CreateUserWithRoles | CreateUserWithPermissions) => {\n // 使用类型守卫判断是否包含 permissions\n const hasPermissions = (obj: typeof arg): obj is CreateUserWithPermissions => 'permissions' in obj\n\n let requestData: CreateUserWithRoles | CreateUserWithPermissions = arg\n\n if (hasPermissions(arg) && permissionMode === PermissionMode.DIRECT_GAME) {\n const transformedPermissions = arg.permissions?.map(item => ({\n game_group: [WILDCARD],\n game_ids: item.game_ids,\n role: item.role,\n }))\n requestData = { ...arg, permissions: transformedPermissions }\n }\n\n return post('/api/usystem/user/create', requestData)\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: queryKeys.users.all })\n },\n })\n}\n\ntype UpdateUserWithRoles = { id: string; name: string; roles: string[] }\n\ntype UpdateUserPermission = {\n game_group?: string[]\n game_ids: string[]\n role: string\n}\n\ntype UpdateUserWithPermissions = {\n id: string\n name: string\n permissions: UpdateUserPermission[]\n}\n\nexport function useUpdateUser() {\n const post = useHttpPost()\n const queryClient = useQueryClient()\n const permissionMode = useToolkitsStore(state => state.context.permissionMode)\n\n return useMutation({\n mutationKey: queryKeys.users.update,\n mutationFn: (arg: UpdateUserWithRoles | UpdateUserWithPermissions) => {\n // 使用类型守卫判断是否包含 permissions\n const hasPermissions = (obj: typeof arg): obj is UpdateUserWithPermissions => 'permissions' in obj\n\n let requestData: UpdateUserWithRoles | UpdateUserWithPermissions = arg\n\n if (hasPermissions(arg) && permissionMode === PermissionMode.DIRECT_GAME) {\n const transformedPermissions = arg.permissions?.map(item => ({\n game_group: [WILDCARD],\n game_ids: item.game_ids,\n role: item.role,\n }))\n requestData = { ...arg, permissions: transformedPermissions }\n }\n\n return post('/api/usystem/user/update', requestData)\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: queryKeys.users.all })\n },\n })\n}\n\nexport function useRemoveUser() {\n const post = useHttpPost()\n const queryClient = useQueryClient()\n\n return useMutation({\n mutationKey: queryKeys.users.delete,\n mutationFn: ({ id, name }: { id: string; name: string }) => post('/api/usystem/user/delete', { id, name }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: queryKeys.users.all })\n },\n })\n}\n\nexport function useAllPermissions() {\n const get = useHttpGet()\n\n return useQuery({\n queryKey: queryKeys.permissions.allPermissions,\n queryFn: () => get<PermissionEnumItem[]>('/api/usystem/user/allPermssions'),\n })\n}\n\nexport function useAllPermissionsV2() {\n const get = useHttpGet()\n\n return useQuery({\n queryKey: queryKeys.permissions.allPermissionsV2,\n queryFn: () => get<PermissionEnumItem[]>('/api/usystem/user/allPermssionsV2'),\n })\n}\n"]}
|
package/lib/chunk-Q6MAXVON.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {m,n}from'./chunk-UICHZXQP.js';import {useQueryClient,useMutation}from'@tanstack/react-query';function y(){let u=m(),t=useQueryClient();return useMutation({mutationKey:n.menus.create,mutationFn:n=>u("/api/usystem/menu/set",{...n,id:0,is_model:true}),onSuccess:()=>{t.invalidateQueries({queryKey:n.menus.all}),t.invalidateQueries({queryKey:n.menus.navbar()});}})}function l(){let u=m(),t=useQueryClient();return useMutation({mutationKey:n.menus.update,mutationFn:n=>u("/api/usystem/menu/set",{...n,is_model:true}),onSuccess:()=>{t.invalidateQueries({queryKey:n.menus.all}),t.invalidateQueries({queryKey:n.menus.navbar()});}})}function p(){let u=m(),t=useQueryClient();return useMutation({mutationKey:n.menus.delete,mutationFn:n=>u("/api/usystem/menu/delete",null,{searchParams:{id:n}}),onSuccess:()=>{t.invalidateQueries({queryKey:n.menus.all}),t.invalidateQueries({queryKey:n.menus.navbar()});}})}export{y as a,l as b,p as c};//# sourceMappingURL=chunk-Q6MAXVON.js.map
|
|
2
|
-
//# sourceMappingURL=chunk-Q6MAXVON.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/modules/menu/services/index.ts"],"names":["useCreateMenu","post","useHttpPost","queryClient","useQueryClient","useMutation","queryKeys","arg","useUpdateMenu","useRemoveMenu","id"],"mappings":"qGAMO,SAASA,CAAAA,EAAgB,CAC9B,IAAMC,CAAAA,CAAOC,GAAY,CACnBC,CAAAA,CAAcC,gBAAe,CAEnC,OAAOC,YAAY,CACjB,WAAA,CAAaC,CAAAA,CAAU,KAAA,CAAM,OAC7B,UAAA,CAAaC,CAAAA,EAAkCN,EAAK,uBAAA,CAAyB,CAAE,GAAGM,CAAAA,CAAK,EAAA,CAAI,CAAA,CAAG,QAAA,CAAU,IAAK,CAAC,CAAA,CAC9G,UAAW,IAAM,CACfJ,EAAY,iBAAA,CAAkB,CAAE,QAAA,CAAUG,CAAAA,CAAU,MAAM,GAAI,CAAC,CAAA,CAC/DH,CAAAA,CAAY,kBAAkB,CAAE,QAAA,CAAUG,CAAAA,CAAU,KAAA,CAAM,QAAS,CAAC,EACtE,CACF,CAAC,CACH,CAEO,SAASE,CAAAA,EAAgB,CAC9B,IAAMP,CAAAA,CAAOC,CAAAA,GACPC,CAAAA,CAAcC,cAAAA,GAEpB,OAAOC,WAAAA,CAAY,CACjB,WAAA,CAAaC,EAAU,KAAA,CAAM,MAAA,CAC7B,WAAaC,CAAAA,EAAsBN,CAAAA,CAAK,wBAAyB,CAAE,GAAGM,CAAAA,CAAK,QAAA,CAAU,IAAK,CAAC,CAAA,CAC3F,SAAA,CAAW,IAAM,CACfJ,CAAAA,CAAY,iBAAA,CAAkB,CAAE,QAAA,CAAUG,EAAU,KAAA,CAAM,GAAI,CAAC,CAAA,CAC/DH,CAAAA,CAAY,kBAAkB,CAAE,QAAA,CAAUG,CAAAA,CAAU,KAAA,CAAM,QAAS,CAAC,EACtE,CACF,CAAC,CACH,CAEO,SAASG,CAAAA,EAAgB,CAC9B,IAAMR,CAAAA,CAAOC,CAAAA,GACPC,CAAAA,CAAcC,cAAAA,GAEpB,OAAOC,WAAAA,CAAY,CACjB,WAAA,CAAaC,EAAU,KAAA,CAAM,MAAA,CAC7B,WAAaI,CAAAA,EAAeT,CAAAA,CAAK,2BAA4B,IAAA,CAAM,CAAE,YAAA,CAAc,CAAE,GAAAS,CAAG,CAAE,CAAC,CAAA,CAC3F,SAAA,CAAW,IAAM,CACfP,CAAAA,CAAY,iBAAA,CAAkB,CAAE,SAAUG,CAAAA,CAAU,KAAA,CAAM,GAAI,CAAC,CAAA,CAC/DH,EAAY,iBAAA,CAAkB,CAAE,QAAA,CAAUG,CAAAA,CAAU,MAAM,MAAA,EAAS,CAAC,EACtE,CACF,CAAC,CACH","file":"chunk-Q6MAXVON.js","sourcesContent":["import { useMutation, useQueryClient } from '@tanstack/react-query'\n\nimport { useHttpPost } from '@/libs'\nimport { queryKeys } from '@/queryKeys'\nimport type { MenuListItem } from '@/types'\n\nexport function useCreateMenu() {\n const post = useHttpPost()\n const queryClient = useQueryClient()\n\n return useMutation({\n mutationKey: queryKeys.menus.create,\n mutationFn: (arg: Omit<MenuListItem, 'id'>) => post('/api/usystem/menu/set', { ...arg, id: 0, is_model: true }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: queryKeys.menus.all })\n queryClient.invalidateQueries({ queryKey: queryKeys.menus.navbar() })\n },\n })\n}\n\nexport function useUpdateMenu() {\n const post = useHttpPost()\n const queryClient = useQueryClient()\n\n return useMutation({\n mutationKey: queryKeys.menus.update,\n mutationFn: (arg: MenuListItem) => post('/api/usystem/menu/set', { ...arg, is_model: true }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: queryKeys.menus.all })\n queryClient.invalidateQueries({ queryKey: queryKeys.menus.navbar() })\n },\n })\n}\n\nexport function useRemoveMenu() {\n const post = useHttpPost()\n const queryClient = useQueryClient()\n\n return useMutation({\n mutationKey: queryKeys.menus.delete,\n mutationFn: (id: number) => post('/api/usystem/menu/delete', null, { searchParams: { id } }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: queryKeys.menus.all })\n queryClient.invalidateQueries({ queryKey: queryKeys.menus.navbar() })\n },\n })\n}\n"]}
|
package/lib/chunk-QEUTBIBK.js
DELETED
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
import { useTranslation } from './chunk-6SMI25Y3.js';
|
|
2
|
-
import { useAuth } from './chunk-JJR5NJTU.js';
|
|
3
|
-
import { createVisibilityStore, __name, generateId } from './chunk-Z7GW3RVV.js';
|
|
4
|
-
import { Modal, Form, Button, Tooltip } from 'antd';
|
|
5
|
-
import { jsx, Fragment } from 'react/jsx-runtime';
|
|
6
|
-
import { useMemo, useEffect, useState, useCallback } from 'react';
|
|
7
|
-
|
|
8
|
-
var AuthButton = /* @__PURE__ */ __name((props) => {
|
|
9
|
-
const { children, code, showLoading, disabled, config, ...restProps } = props;
|
|
10
|
-
const codes = code ? Array.isArray(code) ? code : [code] : [];
|
|
11
|
-
const { data, isLoading } = useAuth(codes, config);
|
|
12
|
-
const { t } = useTranslation();
|
|
13
|
-
const hasPermission = data && (typeof data === "boolean" || Object.values(data).some(Boolean));
|
|
14
|
-
const isButtonDisabled = disabled || !hasPermission || isLoading && !showLoading;
|
|
15
|
-
const isButtonLoading = isLoading && showLoading;
|
|
16
|
-
const shouldShowTooltip = isButtonDisabled;
|
|
17
|
-
const buttonNode = /* @__PURE__ */ jsx(Button, { disabled: isButtonDisabled, loading: isButtonLoading, ...restProps, children });
|
|
18
|
-
if (shouldShowTooltip) {
|
|
19
|
-
return /* @__PURE__ */ jsx(Tooltip, { defaultOpen: false, title: t("global.noEntitlement"), children: buttonNode });
|
|
20
|
-
}
|
|
21
|
-
return buttonNode;
|
|
22
|
-
}, "AuthButton");
|
|
23
|
-
var AuthButton_default = AuthButton;
|
|
24
|
-
|
|
25
|
-
// src/hooks/modal/stores.ts
|
|
26
|
-
var useModalStore = createVisibilityStore();
|
|
27
|
-
function useModal(props) {
|
|
28
|
-
const { content, onConfirm, afterOpen, afterClose, ...modalProps } = props;
|
|
29
|
-
const _id = useMemo(() => generateId(), []);
|
|
30
|
-
if (typeof useModalStore !== "function") {
|
|
31
|
-
throw new Error(
|
|
32
|
-
`useModalStore is not a function. This is likely a build or initialization issue. useModalStore type: ${typeof useModalStore}, value: ${String(useModalStore)}`
|
|
33
|
-
);
|
|
34
|
-
}
|
|
35
|
-
const { show, hide, isOpen, cleanup } = useModalStore();
|
|
36
|
-
useEffect(() => {
|
|
37
|
-
return () => {
|
|
38
|
-
cleanup(_id);
|
|
39
|
-
};
|
|
40
|
-
}, [_id, cleanup]);
|
|
41
|
-
const open = isOpen(_id);
|
|
42
|
-
const [confirmLoading, setConfirmLoading] = useState(false);
|
|
43
|
-
const isRenderFunction = typeof content === "function";
|
|
44
|
-
const _show = useCallback(async () => {
|
|
45
|
-
show(_id);
|
|
46
|
-
await afterOpen?.();
|
|
47
|
-
}, [_id, show, afterOpen]);
|
|
48
|
-
const _hide = useCallback(() => {
|
|
49
|
-
hide(_id);
|
|
50
|
-
}, [_id, hide]);
|
|
51
|
-
const onCancel = useCallback(async () => {
|
|
52
|
-
_hide();
|
|
53
|
-
await afterClose?.();
|
|
54
|
-
}, [_hide, afterClose]);
|
|
55
|
-
const onOk = useCallback(async () => {
|
|
56
|
-
try {
|
|
57
|
-
setConfirmLoading(true);
|
|
58
|
-
await onConfirm?.();
|
|
59
|
-
_hide();
|
|
60
|
-
await afterClose?.();
|
|
61
|
-
} catch (error) {
|
|
62
|
-
console.error("Modal confirm error:", error);
|
|
63
|
-
throw error;
|
|
64
|
-
} finally {
|
|
65
|
-
setConfirmLoading(false);
|
|
66
|
-
}
|
|
67
|
-
}, [onConfirm, _hide, afterClose]);
|
|
68
|
-
const internalModal = /* @__PURE__ */ jsx(Modal, { ...modalProps, open, confirmLoading, onOk, onCancel, children: isRenderFunction ? /* @__PURE__ */ jsx(Fragment, { children: content({ hide: _hide }) }) : /* @__PURE__ */ jsx(Fragment, { children: content }) });
|
|
69
|
-
return {
|
|
70
|
-
id: _id,
|
|
71
|
-
show: _show,
|
|
72
|
-
hide: _hide,
|
|
73
|
-
modal: internalModal
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
__name(useModal, "useModal");
|
|
77
|
-
function useFormModal(props) {
|
|
78
|
-
const { content, form, formProps, onConfirm, onSuccess, afterClose, ...modalProps } = props;
|
|
79
|
-
const [internalExtraValues, setInternalExtraValues] = useState({});
|
|
80
|
-
const [internalForm] = Form.useForm(form);
|
|
81
|
-
const isRenderFunction = typeof content === "function";
|
|
82
|
-
const { id, show, hide, modal } = useModal({
|
|
83
|
-
...modalProps,
|
|
84
|
-
content: /* @__PURE__ */ __name((operation) => /* @__PURE__ */ jsx(Form, { ...formProps, form: internalForm, children: isRenderFunction ? /* @__PURE__ */ jsx(Fragment, { children: content(internalExtraValues, operation) }) : /* @__PURE__ */ jsx(Fragment, { children: content }) }), "content"),
|
|
85
|
-
onConfirm: /* @__PURE__ */ __name(async () => {
|
|
86
|
-
try {
|
|
87
|
-
const values = await internalForm.validateFields();
|
|
88
|
-
await onConfirm?.(values, internalExtraValues);
|
|
89
|
-
onSuccess?.();
|
|
90
|
-
hide();
|
|
91
|
-
} catch (error) {
|
|
92
|
-
console.error("Form validation or submission error:", error);
|
|
93
|
-
throw error;
|
|
94
|
-
}
|
|
95
|
-
}, "onConfirm"),
|
|
96
|
-
afterClose: /* @__PURE__ */ __name(() => {
|
|
97
|
-
setInternalExtraValues({});
|
|
98
|
-
afterClose?.(internalForm);
|
|
99
|
-
}, "afterClose")
|
|
100
|
-
});
|
|
101
|
-
const showForm = useCallback(
|
|
102
|
-
(options) => {
|
|
103
|
-
const { initialValues, extraValues } = options || {};
|
|
104
|
-
if (extraValues !== void 0) {
|
|
105
|
-
setInternalExtraValues(extraValues);
|
|
106
|
-
}
|
|
107
|
-
if (initialValues) {
|
|
108
|
-
internalForm.setFieldsValue(initialValues);
|
|
109
|
-
}
|
|
110
|
-
show();
|
|
111
|
-
},
|
|
112
|
-
[internalForm, show]
|
|
113
|
-
);
|
|
114
|
-
return {
|
|
115
|
-
id,
|
|
116
|
-
show: showForm,
|
|
117
|
-
hide,
|
|
118
|
-
modal
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
__name(useFormModal, "useFormModal");
|
|
122
|
-
|
|
123
|
-
export { AuthButton_default, useFormModal, useModal, useModalStore };
|
|
124
|
-
//# sourceMappingURL=chunk-QEUTBIBK.js.map
|
|
125
|
-
//# sourceMappingURL=chunk-QEUTBIBK.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/authButton/AuthButton.tsx","../src/hooks/modal/stores.ts","../src/hooks/modal/modal.tsx","../src/hooks/modal/formModal.tsx"],"names":["jsx","useState","Fragment","useCallback"],"mappings":";;;;;;;AAwBA,IAAM,6BAAqD,MAAA,CAAA,CAAA,KAAA,KAAS;AAClE,EAAA,MAAM,EAAE,UAAU,IAAA,EAAM,WAAA,EAAa,UAAU,MAAA,EAAQ,GAAG,WAAU,GAAI,KAAA;AACxE,EAAA,MAAM,KAAA,GAAQ,IAAA,GAAQ,KAAA,CAAM,OAAA,CAAQ,IAAI,IAAI,IAAA,GAAO,CAAC,IAAI,CAAA,GAAK,EAAC;AAC9D,EAAA,MAAM,EAAE,IAAA,EAAM,SAAA,EAAU,GAAI,OAAA,CAAQ,OAAO,MAAM,CAAA;AACjD,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,cAAA,EAAe;AAG7B,EAAA,MAAM,aAAA,GAAgB,IAAA,KAAS,OAAO,IAAA,KAAS,SAAA,IAAa,OAAO,MAAA,CAAO,IAAI,CAAA,CAAE,IAAA,CAAK,OAAO,CAAA,CAAA;AAG5F,EAAA,MAAM,gBAAA,GAAmB,QAAA,IAAY,CAAC,aAAA,IAAkB,aAAa,CAAC,WAAA;AACtE,EAAA,MAAM,kBAAkB,SAAA,IAAa,WAAA;AAGrC,EAAA,MAAM,iBAAA,GAAoB,gBAAA;AAE1B,EAAA,MAAM,UAAA,uBACH,MAAA,EAAA,EAAO,QAAA,EAAU,kBAAkB,OAAA,EAAS,eAAA,EAAkB,GAAG,SAAA,EAC/D,QAAA,EACH,CAAA;AAGF,EAAA,IAAI,iBAAA,EAAmB;AACrB,IAAA,uBACE,GAAA,CAAC,WAAQ,WAAA,EAAa,KAAA,EAAO,OAAO,CAAA,CAAE,sBAAsB,GACzD,QAAA,EAAA,UAAA,EACH,CAAA;AAAA,EAEJ;AAEA,EAAA,OAAO,UAAA;AACT,CAAA,EA/B2D,YAAA,CAAA;AAiC3D,IAAO,kBAAA,GAAQ;;;ACvDR,IAAM,gBAAgB,qBAAA;ACiBtB,SAAS,SAAS,KAAA,EAAsB;AAC7C,EAAA,MAAM,EAAE,OAAA,EAAS,SAAA,EAAW,WAAW,UAAA,EAAY,GAAG,YAAW,GAAI,KAAA;AAErE,EAAA,MAAM,MAAM,OAAA,CAAQ,MAAM,UAAA,EAAW,EAAG,EAAE,CAAA;AAG1C,EAAA,IAAI,OAAO,kBAAkB,UAAA,EAAY;AACvC,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,wGACyB,OAAO,aAAa,CAAA,SAAA,EAAY,MAAA,CAAO,aAAa,CAAC,CAAA;AAAA,KAChF;AAAA,EACF;AAEA,EAAA,MAAM,EAAE,IAAA,EAAM,IAAA,EAAM,MAAA,EAAQ,OAAA,KAAY,aAAA,EAAc;AAGtD,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,OAAO,MAAM;AACX,MAAA,OAAA,CAAQ,GAAG,CAAA;AAAA,IACb,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,GAAA,EAAK,OAAO,CAAC,CAAA;AAEjB,EAAA,MAAM,IAAA,GAAO,OAAO,GAAG,CAAA;AACvB,EAAA,MAAM,CAAC,cAAA,EAAgB,iBAAiB,CAAA,GAAI,SAAS,KAAK,CAAA;AAC1D,EAAA,MAAM,gBAAA,GAAmB,OAAO,OAAA,KAAY,UAAA;AAE5C,EAAA,MAAM,KAAA,GAAQ,YAAY,YAAY;AACpC,IAAA,IAAA,CAAK,GAAG,CAAA;AACR,IAAA,MAAM,SAAA,IAAY;AAAA,EACpB,CAAA,EAAG,CAAC,GAAA,EAAK,IAAA,EAAM,SAAS,CAAC,CAAA;AAEzB,EAAA,MAAM,KAAA,GAAQ,YAAY,MAAM;AAC9B,IAAA,IAAA,CAAK,GAAG,CAAA;AAAA,EACV,CAAA,EAAG,CAAC,GAAA,EAAK,IAAI,CAAC,CAAA;AAEd,EAAA,MAAM,QAAA,GAAmC,YAAY,YAAY;AAC/D,IAAA,KAAA,EAAM;AACN,IAAA,MAAM,UAAA,IAAa;AAAA,EACrB,CAAA,EAAG,CAAC,KAAA,EAAO,UAAU,CAAC,CAAA;AAEtB,EAAA,MAAM,IAAA,GAAO,YAAY,YAAY;AACnC,IAAA,IAAI;AACF,MAAA,iBAAA,CAAkB,IAAI,CAAA;AACtB,MAAA,MAAM,SAAA,IAAY;AAClB,MAAA,KAAA,EAAM;AACN,MAAA,MAAM,UAAA,IAAa;AAAA,IACrB,SAAS,KAAA,EAAO;AACd,MAAA,OAAA,CAAQ,KAAA,CAAM,wBAAwB,KAAK,CAAA;AAC3C,MAAA,MAAM,KAAA;AAAA,IACR,CAAA,SAAE;AACA,MAAA,iBAAA,CAAkB,KAAK,CAAA;AAAA,IACzB;AAAA,EACF,CAAA,EAAG,CAAC,SAAA,EAAW,KAAA,EAAO,UAAU,CAAC,CAAA;AAEjC,EAAA,MAAM,aAAA,mBACJA,GAAAA,CAAC,KAAA,EAAA,EAAO,GAAG,YAAY,IAAA,EAAY,cAAA,EAAgC,IAAA,EAAY,QAAA,EAC5E,QAAA,EAAA,gBAAA,mBAAmBA,IAAA,QAAA,EAAA,EAAG,QAAA,EAAA,OAAA,CAAQ,EAAE,IAAA,EAAM,KAAA,EAAO,CAAA,EAAE,CAAA,mBAAMA,GAAAA,CAAA,QAAA,EAAA,EAAG,QAAA,EAAA,OAAA,EAAQ,CAAA,EACnE,CAAA;AAGF,EAAA,OAAO;AAAA,IACL,EAAA,EAAI,GAAA;AAAA,IACJ,IAAA,EAAM,KAAA;AAAA,IACN,IAAA,EAAM,KAAA;AAAA,IACN,KAAA,EAAO;AAAA,GACT;AACF;AAlEgB,MAAA,CAAA,QAAA,EAAA,UAAA,CAAA;ACaT,SAAS,aACd,KAAA,EACyC;AACzC,EAAA,MAAM,EAAE,SAAS,IAAA,EAAM,SAAA,EAAW,WAAW,SAAA,EAAW,UAAA,EAAY,GAAG,UAAA,EAAW,GAAI,KAAA;AACtF,EAAA,MAAM,CAAC,mBAAA,EAAqB,sBAAsB,CAAA,GAAIC,QAAAA,CAAsB,EAAiB,CAAA;AAC7F,EAAA,MAAM,CAAC,YAAY,CAAA,GAAI,IAAA,CAAK,QAAgB,IAAI,CAAA;AAEhD,EAAA,MAAM,gBAAA,GAAmB,OAAO,OAAA,KAAY,UAAA;AAE5C,EAAA,MAAM,EAAE,EAAA,EAAI,IAAA,EAAM,IAAA,EAAM,KAAA,KAAU,QAAA,CAAS;AAAA,IACzC,GAAG,UAAA;AAAA,IACH,OAAA,kBAAS,MAAA,CAAA,CAAA,SAAA,qBACPD,GAAAA,CAAC,IAAA,EAAA,EAAM,GAAG,SAAA,EAAW,IAAA,EAAM,YAAA,EACxB,QAAA,EAAA,gBAAA,mBAAmBA,GAAAA,CAAAE,UAAA,EAAG,QAAA,EAAA,OAAA,CAAQ,mBAAA,EAAqB,SAAS,CAAA,EAAE,CAAA,mBAAMF,GAAAA,CAAAE,QAAAA,EAAA,EAAG,QAAA,EAAA,OAAA,EAAQ,CAAA,EAClF,CAAA,EAHO,SAAA,CAAA;AAAA,IAKT,2BAAW,MAAA,CAAA,YAAY;AACrB,MAAA,IAAI;AACF,QAAA,MAAM,MAAA,GAAS,MAAM,YAAA,CAAa,cAAA,EAAe;AACjD,QAAA,MAAM,SAAA,GAAY,QAAQ,mBAAmB,CAAA;AAC7C,QAAA,SAAA,IAAY;AACZ,QAAA,IAAA,EAAK;AAAA,MACP,SAAS,KAAA,EAAO;AACd,QAAA,OAAA,CAAQ,KAAA,CAAM,wCAAwC,KAAK,CAAA;AAC3D,QAAA,MAAM,KAAA;AAAA,MACR;AAAA,IACF,CAAA,EAVW,WAAA,CAAA;AAAA,IAWX,4BAAY,MAAA,CAAA,MAAM;AAChB,MAAA,sBAAA,CAAuB,EAAiB,CAAA;AACxC,MAAA,UAAA,GAAa,YAAY,CAAA;AAAA,IAC3B,CAAA,EAHY,YAAA;AAAA,GAIb,CAAA;AAED,EAAA,MAAM,QAAA,GAAWC,WAAAA;AAAA,IACf,CAAC,OAAA,KAAmD;AAClD,MAAA,MAAM,EAAE,aAAA,EAAe,WAAA,EAAY,GAAI,WAAW,EAAC;AAEnD,MAAA,IAAI,gBAAgB,MAAA,EAAW;AAC7B,QAAA,sBAAA,CAAuB,WAAW,CAAA;AAAA,MACpC;AAEA,MAAA,IAAI,aAAA,EAAe;AACjB,QAAA,YAAA,CAAa,eAAe,aAAa,CAAA;AAAA,MAC3C;AAEA,MAAA,IAAA,EAAK;AAAA,IACP,CAAA;AAAA,IACA,CAAC,cAAc,IAAI;AAAA,GACrB;AAEA,EAAA,OAAO;AAAA,IACL,EAAA;AAAA,IACA,IAAA,EAAM,QAAA;AAAA,IACN,IAAA;AAAA,IACA;AAAA,GACF;AACF;AAxDgB,MAAA,CAAA,YAAA,EAAA,cAAA,CAAA","file":"chunk-QEUTBIBK.js","sourcesContent":["import type { ButtonProps } from 'antd'\nimport { Button, Tooltip } from 'antd'\nimport type { Options as KyOptions } from 'ky'\nimport type { FC, PropsWithChildren } from 'react'\n\nimport { useTranslation } from '@/locale'\nimport { useAuth } from '@/services'\n\nexport interface AuthButtonProps extends ButtonProps {\n /** 权限码,支持单个或多个 */\n code?: string | string[]\n /** 加载时是否显示 loading 状态 */\n showLoading?: boolean\n /** 请求配置 */\n config?: KyOptions\n}\n\n/**\n * 授权按钮组件\n * 根据权限码自动控制按钮的启用/禁用状态\n * - 有权限:正常显示可点击按钮\n * - 无权限:显示禁用按钮并带有提示\n * - 加载中:显示加载状态\n */\nconst AuthButton: FC<PropsWithChildren<AuthButtonProps>> = props => {\n const { children, code, showLoading, disabled, config, ...restProps } = props\n const codes = code ? (Array.isArray(code) ? code : [code]) : []\n const { data, isLoading } = useAuth(codes, config)\n const { t } = useTranslation()\n\n // 判断是否有权限\n const hasPermission = data && (typeof data === 'boolean' || Object.values(data).some(Boolean))\n\n // 计算最终的禁用状态和加载状态\n const isButtonDisabled = disabled || !hasPermission || (isLoading && !showLoading)\n const isButtonLoading = isLoading && showLoading\n\n // 判断是否需要显示 tooltip(任何禁用状态都显示)\n const shouldShowTooltip = isButtonDisabled\n\n const buttonNode = (\n <Button disabled={isButtonDisabled} loading={isButtonLoading} {...restProps}>\n {children}\n </Button>\n )\n\n if (shouldShowTooltip) {\n return (\n <Tooltip defaultOpen={false} title={t('global.noEntitlement')}>\n {buttonNode}\n </Tooltip>\n )\n }\n\n return buttonNode\n}\n\nexport default AuthButton\n","import { createVisibilityStore } from '@/utils'\n\nexport const useModalStore = createVisibilityStore()\n","import type { ModalProps } from 'antd'\nimport { Modal } from 'antd'\nimport { type ReactNode, useCallback, useEffect, useMemo, useState } from 'react'\n\nimport { generateId } from '@/utils'\n\nimport { useModalStore } from './stores'\n\nexport interface UseModalOperation {\n hide: () => void\n}\n\nexport interface UseModalProps extends Omit<ModalProps, 'open' | 'confirmLoading' | 'onOk' | 'onCancel'> {\n content?: ReactNode | ((operation: UseModalOperation) => ReactNode)\n onConfirm?: () => void | Promise<void>\n afterOpen?: () => void | Promise<void>\n afterClose?: () => void | Promise<void>\n}\n\nexport function useModal(props: UseModalProps) {\n const { content, onConfirm, afterOpen, afterClose, ...modalProps } = props\n\n const _id = useMemo(() => generateId(), [])\n\n // 防御性检查\n if (typeof useModalStore !== 'function') {\n throw new Error(\n 'useModalStore is not a function. This is likely a build or initialization issue. ' +\n `useModalStore type: ${typeof useModalStore}, value: ${String(useModalStore)}`,\n )\n }\n\n const { show, hide, isOpen, cleanup } = useModalStore()\n\n // 组件销毁时清理 ID\n useEffect(() => {\n return () => {\n cleanup(_id)\n }\n }, [_id, cleanup])\n\n const open = isOpen(_id)\n const [confirmLoading, setConfirmLoading] = useState(false)\n const isRenderFunction = typeof content === 'function'\n\n const _show = useCallback(async () => {\n show(_id)\n await afterOpen?.()\n }, [_id, show, afterOpen])\n\n const _hide = useCallback(() => {\n hide(_id)\n }, [_id, hide])\n\n const onCancel: ModalProps['onCancel'] = useCallback(async () => {\n _hide()\n await afterClose?.()\n }, [_hide, afterClose])\n\n const onOk = useCallback(async () => {\n try {\n setConfirmLoading(true)\n await onConfirm?.()\n _hide()\n await afterClose?.()\n } catch (error) {\n console.error('Modal confirm error:', error)\n throw error\n } finally {\n setConfirmLoading(false)\n }\n }, [onConfirm, _hide, afterClose])\n\n const internalModal = (\n <Modal {...modalProps} open={open} confirmLoading={confirmLoading} onOk={onOk} onCancel={onCancel}>\n {isRenderFunction ? <>{content({ hide: _hide })}</> : <>{content}</>}\n </Modal>\n )\n\n return {\n id: _id,\n show: _show,\n hide: _hide,\n modal: internalModal,\n }\n}\n","import type { FormInstance, FormProps } from 'antd'\nimport { Form } from 'antd'\nimport type { AnyObject } from 'antd/es/_util/type'\nimport type { ReactNode } from 'react'\nimport { useCallback, useState } from 'react'\n\nimport type { RecursivePartial } from '@/types'\n\nimport { useModal, type UseModalOperation, type UseModalProps } from './modal'\n\nexport interface ShowFormOptions<Values extends AnyObject, ExtraValues> {\n initialValues?: RecursivePartial<Values>\n extraValues?: ExtraValues\n}\n\nexport interface UseFormModalProps<Values extends AnyObject = AnyObject, ExtraValues = Record<string, unknown>>\n extends Omit<UseModalProps, 'onConfirm' | 'content' | 'onShow' | 'afterClose'> {\n formProps?: Omit<FormProps, 'form'>\n form?: FormInstance<Values>\n content?: ReactNode | ((extraValues: ExtraValues, operation: UseModalOperation) => ReactNode)\n onConfirm?: (values: Values, extraValues: ExtraValues) => void | Promise<void>\n onSuccess?: () => void\n afterClose?: (form: FormInstance<Values>) => void\n}\n\nexport interface UseFormModalReturn<Values extends AnyObject, ExtraValues> {\n id: number\n show: (options?: ShowFormOptions<Values, ExtraValues>) => void\n hide: () => void\n modal: ReactNode\n}\n\nexport function useFormModal<Values extends AnyObject = AnyObject, ExtraValues = Record<string, unknown>>(\n props: UseFormModalProps<Values, ExtraValues>,\n): UseFormModalReturn<Values, ExtraValues> {\n const { content, form, formProps, onConfirm, onSuccess, afterClose, ...modalProps } = props\n const [internalExtraValues, setInternalExtraValues] = useState<ExtraValues>({} as ExtraValues)\n const [internalForm] = Form.useForm<Values>(form)\n\n const isRenderFunction = typeof content === 'function'\n\n const { id, show, hide, modal } = useModal({\n ...modalProps,\n content: operation => (\n <Form {...formProps} form={internalForm}>\n {isRenderFunction ? <>{content(internalExtraValues, operation)}</> : <>{content}</>}\n </Form>\n ),\n onConfirm: async () => {\n try {\n const values = await internalForm.validateFields()\n await onConfirm?.(values, internalExtraValues)\n onSuccess?.()\n hide()\n } catch (error) {\n console.error('Form validation or submission error:', error)\n throw error\n }\n },\n afterClose: () => {\n setInternalExtraValues({} as ExtraValues)\n afterClose?.(internalForm)\n },\n })\n\n const showForm = useCallback(\n (options?: ShowFormOptions<Values, ExtraValues>) => {\n const { initialValues, extraValues } = options || {}\n\n if (extraValues !== undefined) {\n setInternalExtraValues(extraValues)\n }\n\n if (initialValues) {\n internalForm.setFieldsValue(initialValues)\n }\n\n show()\n },\n [internalForm, show],\n )\n\n return {\n id,\n show: showForm,\n hide,\n modal,\n }\n}\n"]}
|