react-toolkits 0.8.60 → 0.8.62

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.
@@ -1,6 +1,6 @@
1
- import { a as S, j as e, d as $ } from "./index-QEbb1ngP.chunk.js";
1
+ import { a as S, j as e, d as $ } from "./index-k8GuuOCY.chunk.js";
2
2
  import { Collapse as D, Checkbox as k, Row as G, Col as _, Skeleton as T, Typography as A, Divider as w, Card as K, Space as M, Select as E, Button as N, Empty as O } from "antd";
3
- import { h as R, i as B } from "./index-goOUs9qe.chunk.js";
3
+ import { h as R, i as B } from "./index-tI7pd8AJ.chunk.js";
4
4
  import { useState as P, useCallback as F, useEffect as b } from "react";
5
5
  const q = (x) => {
6
6
  const { permissions: l, readonly: t, expand: d, value: a, onChange: r } = x, [m, p] = P([]), [g, u] = P({}), [c, f] = P(a ?? []), C = S(), h = F((s) => {
@@ -168,4 +168,4 @@ const q = (x) => {
168
168
  export {
169
169
  ie as P
170
170
  };
171
- //# sourceMappingURL=index-VvfM7Qb8.chunk.js.map
171
+ //# sourceMappingURL=index-s9GwU8Ka.chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-VvfM7Qb8.chunk.js","sources":["../src/features/permission/components/PermissionCollapse/index.tsx","../src/features/permission/components/PermissionListV1/index.tsx","../src/features/permission/components/PermissionListV2/index.tsx","../src/features/permission/components/PermissionList/index.tsx"],"sourcesContent":["import { Checkbox, Col, Collapse, Row } from 'antd'\nimport type { CheckboxChangeEvent } from 'antd/es/checkbox'\nimport type { FC } from 'react'\nimport { useCallback, useEffect, useState } from 'react'\nimport { useTranslation } from '../../../../hooks/i18n'\nimport type { PermissionEnumItem } from '../../types'\n\ninterface PermissionCollapseProps {\n expand?: boolean\n permissions?: PermissionEnumItem[]\n readonly?: boolean\n value?: string[]\n onChange?: (value: string[]) => void\n}\n\nconst PermissionCollapse: FC<PermissionCollapseProps> = props => {\n const { permissions, readonly, expand, value, onChange } = props\n const [activeKey, setActiveKey] = useState<string[]>([])\n const [checkedMap, setCheckedMap] = useState<Record<string, boolean>>({})\n const [internalValue, setInternalValue] = useState<string[]>(value ?? [])\n const t = useTranslation()\n\n const onCollapseChange = useCallback((key: string | string[]) => {\n setActiveKey(key as string[])\n }, [])\n\n const getCheckedValue = (checkedValue: boolean, codes: string[]) => {\n let tempValue: string[] = []\n\n if (checkedValue) {\n tempValue = [...new Set(internalValue.concat(codes))]\n } else {\n tempValue = internalValue.slice()\n\n codes.forEach(code => {\n const index = tempValue.findIndex(item => item === code)\n if (index > -1) {\n tempValue.splice(index, 1)\n }\n })\n }\n\n return tempValue\n }\n\n const onCheckChange = (e: CheckboxChangeEvent, codes: string[]) => {\n const checkedValue = getCheckedValue(e.target.checked, codes)\n setInternalValue(checkedValue)\n onChange?.(checkedValue)\n }\n\n useEffect(() => {\n setInternalValue(value ?? [])\n }, [value])\n\n useEffect(() => {\n if (expand) {\n setActiveKey((permissions ?? []).map(({ category }) => category))\n }\n }, [expand, permissions])\n\n useEffect(() => {\n const checkedValue = (permissions ?? []).reduce(\n (acc, curr) => {\n acc[curr.category] = curr.permissions.every(item => internalValue?.includes(item.value))\n return acc\n },\n {} as Record<string, boolean>,\n )\n\n setCheckedMap(checkedValue)\n }, [internalValue, permissions])\n\n return (\n <Collapse\n style={{ width: '100%' }}\n collapsible=\"header\"\n activeKey={activeKey}\n items={(permissions ?? []).map(item => ({\n key: item.category,\n label: item.category,\n extra: !readonly && (\n <Checkbox\n checked={checkedMap[item.category]}\n onChange={e => {\n onCheckChange(\n e,\n item.permissions.map(permission => permission.value),\n )\n }}\n >\n {t('global.selectAll')}\n </Checkbox>\n ),\n children: (\n <Checkbox.Group style={{ width: '100%' }} value={internalValue} disabled={readonly}>\n <Row gutter={[10, 10]} style={{ width: '100%' }}>\n {item.permissions.map(permission => (\n <Col key={permission.value} span={6}>\n <Checkbox\n value={permission.value}\n onChange={e => {\n onCheckChange(e, [permission.value])\n }}\n >\n {permission.label}\n </Checkbox>\n </Col>\n ))}\n </Row>\n </Checkbox.Group>\n ),\n }))}\n onChange={onCollapseChange}\n />\n )\n}\n\nexport default PermissionCollapse\n","import { Skeleton, Typography } from 'antd'\nimport type { FC } from 'react'\nimport { useTranslation } from '../../../../hooks/i18n'\nimport { useAllPermissions } from '../../hooks'\nimport type { RoleV1 } from '../../types'\nimport PermissionCollapse from '../PermissionCollapse'\nimport type { PermissionListPropsBase } from '../PermissionList'\n\nconst { Text } = Typography\n\ninterface PermissionListV1Props extends PermissionListPropsBase {\n value?: RoleV1['permissions']\n onChange?: (checkedValue: RoleV1['permissions']) => void\n}\n\nconst PermissionListV1: FC<PermissionListV1Props> = props => {\n const { expand = true, value, readonly, onChange } = props\n const { data: permissions, isLoading, error } = useAllPermissions()\n const t = useTranslation()\n\n if (error) {\n return (\n <div className=\"flex justify-center\">\n <Text type=\"danger\">{t('PermissionList.failedDescription')}</Text>\n </div>\n )\n }\n\n return (\n <Skeleton active loading={isLoading}>\n <PermissionCollapse\n value={value}\n permissions={permissions}\n readonly={readonly}\n expand={expand}\n onChange={onChange}\n />\n </Skeleton>\n )\n}\n\nexport default PermissionListV1\n","import { Button, Card, Divider, Empty, Select, Skeleton, Space, Typography } from 'antd'\nimport type { FC } from 'react'\nimport { useEffect, useState } from 'react'\nimport { useTranslation } from '../../../../hooks/i18n'\nimport { useAllPermissionsV2 } from '../../hooks'\nimport type { RoleV2 } from '../../types'\nimport PermissionCollapse from '../PermissionCollapse'\nimport type { PermissionListPropsBase } from '../PermissionList'\n\nconst { Text } = Typography\nconst { Option } = Select\n\ninterface PermissionListV2Props extends PermissionListPropsBase {\n value?: RoleV2['permissions']\n onChange?: (checkedValue: RoleV2['permissions']) => void\n}\n\nconst PermissionListV2: FC<PermissionListV2Props> = props => {\n const { expand = true, value, readonly, onChange } = props\n const { data: { permission, game: games } = {}, isLoading, error } = useAllPermissionsV2()\n const [gameList, setGameList] = useState<{ gameId: string; permissions: string[] }[]>([])\n const globalPermissions = permission?.filter(item => item.is_common)\n const gamePermissions = permission?.filter(item => !item.is_common)\n const t = useTranslation()\n\n useEffect(() => {\n const list: { gameId: string; permissions: string[] }[] = []\n\n Object.keys(value ?? {}).forEach(key => {\n if (key !== 'global') {\n list.push({ gameId: key, permissions: value?.[key] ?? [] })\n }\n })\n\n setGameList(list)\n }, [value])\n\n if (error) {\n return (\n <div className=\"flex justify-center\">\n <Text type=\"danger\">{t('PermissionList.failedDescription')}</Text>\n </div>\n )\n }\n\n const addGame = () => {\n setGameList(prev => [...prev, { gameId: '', permissions: [] }])\n }\n\n const removeGame = (index: number) => {\n setGameList(prev => prev.filter((_, i) => i !== index))\n }\n\n return (\n <div className=\"flex flex-col w-full\">\n <div className=\"mb-12\">\n <Divider dashed>{t('PermissionList.baseSectionTitle')}</Divider>\n </div>\n <Skeleton active loading={isLoading}>\n <PermissionCollapse\n value={value?.global}\n readonly={readonly}\n permissions={globalPermissions}\n expand={expand}\n onChange={newValue => {\n onChange?.({\n ...value,\n global: newValue,\n })\n }}\n />\n </Skeleton>\n <div className=\"my-12\">\n <Divider dashed>{t('PermissionList.gameSectionTitle')}</Divider>\n </div>\n {gameList.map((item, index) => (\n <Card\n title={\n <Space>\n <Text>{t('global.game')}</Text>\n {readonly ? (\n <Text>{games?.find(game => game.id === item.gameId)?.name}</Text>\n ) : (\n <Select\n disabled={readonly}\n value={gameList[index].gameId || undefined}\n style={{ width: '160px' }}\n placeholder={t('PermissionList.gameSelectPlaceholder')}\n onChange={selectedValue => {\n setGameList(pev => {\n const temp = pev.slice()\n temp[index].gameId = selectedValue\n return temp\n })\n }}\n >\n {games?.map(game => (\n <Option key={game.id} value={game.id} disabled={gameList.some(({ gameId }) => gameId === game.id)}>\n {game.name}\n </Option>\n ))}\n </Select>\n )}\n </Space>\n }\n key={index}\n className=\"mb-6\"\n extra={\n !readonly && (\n <Button\n type=\"link\"\n onClick={() => {\n removeGame(index)\n }}\n >\n {t('PermissionList.removeText')}\n </Button>\n )\n }\n >\n {gameList[index].gameId ? (\n <Skeleton active loading={isLoading}>\n <PermissionCollapse\n value={value?.[gameList[index].gameId]}\n readonly={readonly}\n expand={expand}\n permissions={gamePermissions}\n onChange={newValue => {\n onChange?.({\n ...value,\n [gameList[index].gameId]: newValue,\n })\n }}\n />\n </Skeleton>\n ) : (\n <Empty description={t('PermissionList.gameSectionDescription')} />\n )}\n </Card>\n ))}\n {!readonly && (\n <Button block type=\"dashed\" onClick={addGame}>\n {t('PermissionList.addText')}\n </Button>\n )}\n </div>\n )\n}\n\nexport default PermissionListV2\n","import type { FC } from 'react'\nimport { useToolkitsContext } from '../../../../components/ContextProvider'\nimport type { RoleV1, RoleV2 } from '../../types'\nimport PermissionListV1 from '../PermissionListV1'\nimport PermissionListV2 from '../PermissionListV2'\n\nexport interface PermissionListPropsBase {\n expand?: boolean\n readonly?: boolean\n}\n\ninterface PermissionListProps extends PermissionListPropsBase {\n value?: RoleV1['permissions'] | RoleV2['permissions']\n onChange?: (checkedValue: RoleV1['permissions'] | RoleV2['permissions']) => void\n}\n\nconst PermissionList: FC<PermissionListProps> = (props: PermissionListProps) => {\n const { value } = props\n const { usePermissionApiV2 } = useToolkitsContext()\n\n return (\n <>\n {usePermissionApiV2 ? (\n <PermissionListV2 {...props} value={value as RoleV2['permissions']} />\n ) : (\n <PermissionListV1 {...props} value={value as RoleV1['permissions']} />\n )}\n </>\n )\n}\n\nexport default PermissionList\n"],"names":["PermissionCollapse","props","permissions","readonly","expand","value","onChange","activeKey","setActiveKey","useState","checkedMap","setCheckedMap","internalValue","setInternalValue","t","useTranslation","onCollapseChange","useCallback","key","getCheckedValue","checkedValue","codes","tempValue","code","index","item","onCheckChange","e","useEffect","category","acc","curr","jsx","Collapse","Checkbox","permission","Row","Col","PermissionCollapse$1","Text","Typography","PermissionListV1","isLoading","error","useAllPermissions","Skeleton","PermissionListV1$1","Option","Select","PermissionListV2","games","useAllPermissionsV2","gameList","setGameList","globalPermissions","gamePermissions","list","addGame","prev","removeGame","_","i","jsxs","Divider","newValue","Card","Space","_a","game","selectedValue","pev","temp","gameId","Button","Empty","PermissionListV2$1","PermissionList","usePermissionApiV2","useToolkitsContext","Fragment","PermissionList$1"],"mappings":"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"}
1
+ {"version":3,"file":"index-s9GwU8Ka.chunk.js","sources":["../src/features/permission/components/PermissionCollapse/index.tsx","../src/features/permission/components/PermissionListV1/index.tsx","../src/features/permission/components/PermissionListV2/index.tsx","../src/features/permission/components/PermissionList/index.tsx"],"sourcesContent":["import { Checkbox, Col, Collapse, Row } from 'antd'\nimport type { CheckboxChangeEvent } from 'antd/es/checkbox'\nimport type { FC } from 'react'\nimport { useCallback, useEffect, useState } from 'react'\nimport { useTranslation } from '../../../../hooks/i18n'\nimport type { PermissionEnumItem } from '../../types'\n\ninterface PermissionCollapseProps {\n expand?: boolean\n permissions?: PermissionEnumItem[]\n readonly?: boolean\n value?: string[]\n onChange?: (value: string[]) => void\n}\n\nconst PermissionCollapse: FC<PermissionCollapseProps> = props => {\n const { permissions, readonly, expand, value, onChange } = props\n const [activeKey, setActiveKey] = useState<string[]>([])\n const [checkedMap, setCheckedMap] = useState<Record<string, boolean>>({})\n const [internalValue, setInternalValue] = useState<string[]>(value ?? [])\n const t = useTranslation()\n\n const onCollapseChange = useCallback((key: string | string[]) => {\n setActiveKey(key as string[])\n }, [])\n\n const getCheckedValue = (checkedValue: boolean, codes: string[]) => {\n let tempValue: string[] = []\n\n if (checkedValue) {\n tempValue = [...new Set(internalValue.concat(codes))]\n } else {\n tempValue = internalValue.slice()\n\n codes.forEach(code => {\n const index = tempValue.findIndex(item => item === code)\n if (index > -1) {\n tempValue.splice(index, 1)\n }\n })\n }\n\n return tempValue\n }\n\n const onCheckChange = (e: CheckboxChangeEvent, codes: string[]) => {\n const checkedValue = getCheckedValue(e.target.checked, codes)\n setInternalValue(checkedValue)\n onChange?.(checkedValue)\n }\n\n useEffect(() => {\n setInternalValue(value ?? [])\n }, [value])\n\n useEffect(() => {\n if (expand) {\n setActiveKey((permissions ?? []).map(({ category }) => category))\n }\n }, [expand, permissions])\n\n useEffect(() => {\n const checkedValue = (permissions ?? []).reduce(\n (acc, curr) => {\n acc[curr.category] = curr.permissions.every(item => internalValue?.includes(item.value))\n return acc\n },\n {} as Record<string, boolean>,\n )\n\n setCheckedMap(checkedValue)\n }, [internalValue, permissions])\n\n return (\n <Collapse\n style={{ width: '100%' }}\n collapsible=\"header\"\n activeKey={activeKey}\n items={(permissions ?? []).map(item => ({\n key: item.category,\n label: item.category,\n extra: !readonly && (\n <Checkbox\n checked={checkedMap[item.category]}\n onChange={e => {\n onCheckChange(\n e,\n item.permissions.map(permission => permission.value),\n )\n }}\n >\n {t('global.selectAll')}\n </Checkbox>\n ),\n children: (\n <Checkbox.Group style={{ width: '100%' }} value={internalValue} disabled={readonly}>\n <Row gutter={[10, 10]} style={{ width: '100%' }}>\n {item.permissions.map(permission => (\n <Col key={permission.value} span={6}>\n <Checkbox\n value={permission.value}\n onChange={e => {\n onCheckChange(e, [permission.value])\n }}\n >\n {permission.label}\n </Checkbox>\n </Col>\n ))}\n </Row>\n </Checkbox.Group>\n ),\n }))}\n onChange={onCollapseChange}\n />\n )\n}\n\nexport default PermissionCollapse\n","import { Skeleton, Typography } from 'antd'\nimport type { FC } from 'react'\nimport { useTranslation } from '../../../../hooks/i18n'\nimport { useAllPermissions } from '../../hooks'\nimport type { RoleV1 } from '../../types'\nimport PermissionCollapse from '../PermissionCollapse'\nimport type { PermissionListPropsBase } from '../PermissionList'\n\nconst { Text } = Typography\n\ninterface PermissionListV1Props extends PermissionListPropsBase {\n value?: RoleV1['permissions']\n onChange?: (checkedValue: RoleV1['permissions']) => void\n}\n\nconst PermissionListV1: FC<PermissionListV1Props> = props => {\n const { expand = true, value, readonly, onChange } = props\n const { data: permissions, isLoading, error } = useAllPermissions()\n const t = useTranslation()\n\n if (error) {\n return (\n <div className=\"flex justify-center\">\n <Text type=\"danger\">{t('PermissionList.failedDescription')}</Text>\n </div>\n )\n }\n\n return (\n <Skeleton active loading={isLoading}>\n <PermissionCollapse\n value={value}\n permissions={permissions}\n readonly={readonly}\n expand={expand}\n onChange={onChange}\n />\n </Skeleton>\n )\n}\n\nexport default PermissionListV1\n","import { Button, Card, Divider, Empty, Select, Skeleton, Space, Typography } from 'antd'\nimport type { FC } from 'react'\nimport { useEffect, useState } from 'react'\nimport { useTranslation } from '../../../../hooks/i18n'\nimport { useAllPermissionsV2 } from '../../hooks'\nimport type { RoleV2 } from '../../types'\nimport PermissionCollapse from '../PermissionCollapse'\nimport type { PermissionListPropsBase } from '../PermissionList'\n\nconst { Text } = Typography\nconst { Option } = Select\n\ninterface PermissionListV2Props extends PermissionListPropsBase {\n value?: RoleV2['permissions']\n onChange?: (checkedValue: RoleV2['permissions']) => void\n}\n\nconst PermissionListV2: FC<PermissionListV2Props> = props => {\n const { expand = true, value, readonly, onChange } = props\n const { data: { permission, game: games } = {}, isLoading, error } = useAllPermissionsV2()\n const [gameList, setGameList] = useState<{ gameId: string; permissions: string[] }[]>([])\n const globalPermissions = permission?.filter(item => item.is_common)\n const gamePermissions = permission?.filter(item => !item.is_common)\n const t = useTranslation()\n\n useEffect(() => {\n const list: { gameId: string; permissions: string[] }[] = []\n\n Object.keys(value ?? {}).forEach(key => {\n if (key !== 'global') {\n list.push({ gameId: key, permissions: value?.[key] ?? [] })\n }\n })\n\n setGameList(list)\n }, [value])\n\n if (error) {\n return (\n <div className=\"flex justify-center\">\n <Text type=\"danger\">{t('PermissionList.failedDescription')}</Text>\n </div>\n )\n }\n\n const addGame = () => {\n setGameList(prev => [...prev, { gameId: '', permissions: [] }])\n }\n\n const removeGame = (index: number) => {\n setGameList(prev => prev.filter((_, i) => i !== index))\n }\n\n return (\n <div className=\"flex flex-col w-full\">\n <div className=\"mb-12\">\n <Divider dashed>{t('PermissionList.baseSectionTitle')}</Divider>\n </div>\n <Skeleton active loading={isLoading}>\n <PermissionCollapse\n value={value?.global}\n readonly={readonly}\n permissions={globalPermissions}\n expand={expand}\n onChange={newValue => {\n onChange?.({\n ...value,\n global: newValue,\n })\n }}\n />\n </Skeleton>\n <div className=\"my-12\">\n <Divider dashed>{t('PermissionList.gameSectionTitle')}</Divider>\n </div>\n {gameList.map((item, index) => (\n <Card\n title={\n <Space>\n <Text>{t('global.game')}</Text>\n {readonly ? (\n <Text>{games?.find(game => game.id === item.gameId)?.name}</Text>\n ) : (\n <Select\n disabled={readonly}\n value={gameList[index].gameId || undefined}\n style={{ width: '160px' }}\n placeholder={t('PermissionList.gameSelectPlaceholder')}\n onChange={selectedValue => {\n setGameList(pev => {\n const temp = pev.slice()\n temp[index].gameId = selectedValue\n return temp\n })\n }}\n >\n {games?.map(game => (\n <Option key={game.id} value={game.id} disabled={gameList.some(({ gameId }) => gameId === game.id)}>\n {game.name}\n </Option>\n ))}\n </Select>\n )}\n </Space>\n }\n key={index}\n className=\"mb-6\"\n extra={\n !readonly && (\n <Button\n type=\"link\"\n onClick={() => {\n removeGame(index)\n }}\n >\n {t('PermissionList.removeText')}\n </Button>\n )\n }\n >\n {gameList[index].gameId ? (\n <Skeleton active loading={isLoading}>\n <PermissionCollapse\n value={value?.[gameList[index].gameId]}\n readonly={readonly}\n expand={expand}\n permissions={gamePermissions}\n onChange={newValue => {\n onChange?.({\n ...value,\n [gameList[index].gameId]: newValue,\n })\n }}\n />\n </Skeleton>\n ) : (\n <Empty description={t('PermissionList.gameSectionDescription')} />\n )}\n </Card>\n ))}\n {!readonly && (\n <Button block type=\"dashed\" onClick={addGame}>\n {t('PermissionList.addText')}\n </Button>\n )}\n </div>\n )\n}\n\nexport default PermissionListV2\n","import type { FC } from 'react'\nimport { useToolkitsContext } from '../../../../components/ContextProvider'\nimport type { RoleV1, RoleV2 } from '../../types'\nimport PermissionListV1 from '../PermissionListV1'\nimport PermissionListV2 from '../PermissionListV2'\n\nexport interface PermissionListPropsBase {\n expand?: boolean\n readonly?: boolean\n}\n\ninterface PermissionListProps extends PermissionListPropsBase {\n value?: RoleV1['permissions'] | RoleV2['permissions']\n onChange?: (checkedValue: RoleV1['permissions'] | RoleV2['permissions']) => void\n}\n\nconst PermissionList: FC<PermissionListProps> = (props: PermissionListProps) => {\n const { value } = props\n const { usePermissionApiV2 } = useToolkitsContext()\n\n return (\n <>\n {usePermissionApiV2 ? (\n <PermissionListV2 {...props} value={value as RoleV2['permissions']} />\n ) : (\n <PermissionListV1 {...props} value={value as RoleV1['permissions']} />\n )}\n </>\n )\n}\n\nexport default PermissionList\n"],"names":["PermissionCollapse","props","permissions","readonly","expand","value","onChange","activeKey","setActiveKey","useState","checkedMap","setCheckedMap","internalValue","setInternalValue","t","useTranslation","onCollapseChange","useCallback","key","getCheckedValue","checkedValue","codes","tempValue","code","index","item","onCheckChange","e","useEffect","category","acc","curr","jsx","Collapse","Checkbox","permission","Row","Col","PermissionCollapse$1","Text","Typography","PermissionListV1","isLoading","error","useAllPermissions","Skeleton","PermissionListV1$1","Option","Select","PermissionListV2","games","useAllPermissionsV2","gameList","setGameList","globalPermissions","gamePermissions","list","addGame","prev","removeGame","_","i","jsxs","Divider","newValue","Card","Space","_a","game","selectedValue","pev","temp","gameId","Button","Empty","PermissionListV2$1","PermissionList","usePermissionApiV2","useToolkitsContext","Fragment","PermissionList$1"],"mappings":"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"}
@@ -0,0 +1,219 @@
1
+ import { I as O, w as W, f as h, g as x, s as z, m as q, h as V, U as y, i as U, e as u, d as M, c as K } from "./index-k8GuuOCY.chunk.js";
2
+ import L, { useRef as c, useCallback as G, useState as N } from "react";
3
+ const P = O ? (e) => {
4
+ e();
5
+ } : L.startTransition, $ = (e) => {
6
+ const [, s] = N({}), t = c(!1), r = c(e), a = c({
7
+ data: !1,
8
+ error: !1,
9
+ isValidating: !1
10
+ }), m = G((l) => {
11
+ let o = !1;
12
+ const g = r.current;
13
+ for (const p in l) {
14
+ const n = p;
15
+ g[n] !== l[n] && (g[n] = l[n], a.current[n] && (o = !0));
16
+ }
17
+ o && !t.current && s({});
18
+ }, []);
19
+ return U(() => (t.current = !1, () => {
20
+ t.current = !0;
21
+ })), [
22
+ r,
23
+ a.current,
24
+ m
25
+ ];
26
+ }, j = () => (e, s, t = {}) => {
27
+ const { mutate: r } = x(), a = c(e), m = c(s), l = c(t), o = c(0), [g, p, n] = $({
28
+ data: y,
29
+ error: y,
30
+ isMutating: !1
31
+ }), b = g.current, v = G(
32
+ async (T, k) => {
33
+ const [R, I] = z(a.current);
34
+ if (!m.current)
35
+ throw new Error("Can’t trigger the mutation: missing fetcher.");
36
+ if (!R)
37
+ throw new Error("Can’t trigger the mutation: missing key.");
38
+ const f = q(q({
39
+ populateCache: !1,
40
+ throwOnError: !0
41
+ }, l.current), k), w = V();
42
+ o.current = w, n({
43
+ isMutating: !0
44
+ });
45
+ try {
46
+ const i = await r(
47
+ R,
48
+ m.current(I, {
49
+ arg: T
50
+ }),
51
+ // We must throw the error here so we can catch and update the states.
52
+ q(f, {
53
+ throwOnError: !0
54
+ })
55
+ );
56
+ if (o.current <= w) {
57
+ var S, C;
58
+ P(() => n({
59
+ data: i,
60
+ isMutating: !1,
61
+ error: void 0
62
+ })), (S = (C = f).onSuccess) == null || S.call(C, i, R, f);
63
+ }
64
+ return i;
65
+ } catch (i) {
66
+ if (o.current <= w) {
67
+ var E, A;
68
+ if (P(() => n({
69
+ error: i,
70
+ isMutating: !1
71
+ })), (E = (A = f).onError) == null || E.call(A, i, R, f), f.throwOnError)
72
+ throw i;
73
+ }
74
+ }
75
+ },
76
+ // eslint-disable-next-line react-hooks/exhaustive-deps
77
+ []
78
+ ), D = G(() => {
79
+ o.current = V(), n({
80
+ data: y,
81
+ error: y,
82
+ isMutating: !1
83
+ });
84
+ }, []);
85
+ return U(() => {
86
+ a.current = e, m.current = s, l.current = t;
87
+ }), {
88
+ trigger: v,
89
+ reset: D,
90
+ get data() {
91
+ return p.data = !0, b.data;
92
+ },
93
+ get error() {
94
+ return p.error = !0, b.error;
95
+ },
96
+ get isMutating() {
97
+ return p.isMutating = !0, b.isMutating;
98
+ }
99
+ };
100
+ }, d = W(h, j);
101
+ function B() {
102
+ const e = u();
103
+ return h(
104
+ "/api/usystem/user/allPermssions",
105
+ (s) => e(s, { isGlobal: !0 }).then((t) => t.data)
106
+ );
107
+ }
108
+ function H() {
109
+ const e = u();
110
+ return h(
111
+ "/api/usystem/user/allPermissionsV2",
112
+ (s) => e(s, { isGlobal: !0 }).then((t) => t.data)
113
+ );
114
+ }
115
+ function J() {
116
+ const e = u(), { accessible: s } = K("200005", !0);
117
+ return h(
118
+ s ? "/api/usystem/role/all" : null,
119
+ (t) => e(t, { isGlobal: !0 }).then((r) => r.data)
120
+ );
121
+ }
122
+ function Q(e) {
123
+ const s = u(), { usePermissionApiV2: t } = M();
124
+ return h(
125
+ `/api/usystem/role/${t ? "infoV2" : "info"}?name=${e}`,
126
+ (r) => s(r, { isGlobal: !0 }).then((a) => a.data)
127
+ );
128
+ }
129
+ function X() {
130
+ const e = u(), { usePermissionApiV2: s } = M();
131
+ return d(
132
+ s ? "/api/usystem/role/createV2" : "/api/usystem/role/create",
133
+ (t, {
134
+ arg: r
135
+ }) => e(t, {
136
+ method: "post",
137
+ body: r,
138
+ isGlobal: !0
139
+ })
140
+ );
141
+ }
142
+ function Z() {
143
+ const e = u(), { usePermissionApiV2: s } = M();
144
+ return d(
145
+ s ? "/api/usystem/role/updateV2" : "/api/usystem/role/update",
146
+ (t, {
147
+ arg: r
148
+ }) => e(t, {
149
+ method: "post",
150
+ body: r,
151
+ isGlobal: !0
152
+ })
153
+ );
154
+ }
155
+ function _() {
156
+ const e = u();
157
+ return d(
158
+ "/api/usystem/role/delete",
159
+ (s, {
160
+ arg: t
161
+ }) => e(s, {
162
+ method: "post",
163
+ body: t,
164
+ isGlobal: !0
165
+ })
166
+ );
167
+ }
168
+ function ee() {
169
+ const e = u();
170
+ return d(
171
+ "/api/usystem/user/create",
172
+ (s, {
173
+ arg: t
174
+ }) => e(s, {
175
+ method: "post",
176
+ body: t,
177
+ isGlobal: !0
178
+ })
179
+ );
180
+ }
181
+ function te() {
182
+ const e = u();
183
+ return d(
184
+ "/api/usystem/user/update",
185
+ (s, {
186
+ arg: t
187
+ }) => e(s, {
188
+ method: "post",
189
+ body: t,
190
+ isGlobal: !0
191
+ })
192
+ );
193
+ }
194
+ function se() {
195
+ const e = u();
196
+ return d(
197
+ "/api/usystem/user/delete",
198
+ (s, {
199
+ arg: t
200
+ }) => e(s, {
201
+ method: "post",
202
+ body: t,
203
+ isGlobal: !0
204
+ })
205
+ );
206
+ }
207
+ export {
208
+ ee as a,
209
+ J as b,
210
+ te as c,
211
+ _ as d,
212
+ X as e,
213
+ Z as f,
214
+ Q as g,
215
+ B as h,
216
+ H as i,
217
+ se as u
218
+ };
219
+ //# sourceMappingURL=index-tI7pd8AJ.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-tI7pd8AJ.chunk.js","sources":["../../../node_modules/.pnpm/swr@2.2.4_react@18.2.0/node_modules/swr/mutation/dist/index.mjs","../src/features/permission/hooks/index.ts"],"sourcesContent":["import React, { useState, useRef, useCallback } from 'react';\nimport useSWR, { useSWRConfig } from 'swr';\nimport { IS_REACT_LEGACY, useIsomorphicLayoutEffect, withMiddleware, serialize, mergeObjects, getTimestamp, UNDEFINED } from 'swr/_internal';\n\nconst startTransition = IS_REACT_LEGACY ? (cb)=>{\n cb();\n} : React.startTransition;\n/**\n * An implementation of state with dependency-tracking.\n */ const useStateWithDeps = (state)=>{\n const [, rerender] = useState({});\n const unmountedRef = useRef(false);\n const stateRef = useRef(state);\n // If a state property (data, error, or isValidating) is accessed by the render\n // function, we mark the property as a dependency so if it is updated again\n // in the future, we trigger a rerender.\n // This is also known as dependency-tracking.\n const stateDependenciesRef = useRef({\n data: false,\n error: false,\n isValidating: false\n });\n /**\n * @param payload To change stateRef, pass the values explicitly to setState:\n * @example\n * ```js\n * setState({\n * isValidating: false\n * data: newData // set data to newData\n * error: undefined // set error to undefined\n * })\n *\n * setState({\n * isValidating: false\n * data: undefined // set data to undefined\n * error: err // set error to err\n * })\n * ```\n */ const setState = useCallback((payload)=>{\n let shouldRerender = false;\n const currentState = stateRef.current;\n for(const _ in payload){\n const k = _;\n // If the property has changed, update the state and mark rerender as\n // needed.\n if (currentState[k] !== payload[k]) {\n currentState[k] = payload[k];\n // If the property is accessed by the component, a rerender should be\n // triggered.\n if (stateDependenciesRef.current[k]) {\n shouldRerender = true;\n }\n }\n }\n if (shouldRerender && !unmountedRef.current) {\n rerender({});\n }\n }, []);\n useIsomorphicLayoutEffect(()=>{\n unmountedRef.current = false;\n return ()=>{\n unmountedRef.current = true;\n };\n });\n return [\n stateRef,\n stateDependenciesRef.current,\n setState\n ];\n};\n\nconst mutation = ()=>(key, fetcher, config = {})=>{\n const { mutate } = useSWRConfig();\n const keyRef = useRef(key);\n const fetcherRef = useRef(fetcher);\n const configRef = useRef(config);\n // Ditch all mutation results that happened earlier than this timestamp.\n const ditchMutationsUntilRef = useRef(0);\n const [stateRef, stateDependencies, setState] = useStateWithDeps({\n data: UNDEFINED,\n error: UNDEFINED,\n isMutating: false\n });\n const currentState = stateRef.current;\n const trigger = useCallback(async (arg, opts)=>{\n const [serializedKey, resolvedKey] = serialize(keyRef.current);\n if (!fetcherRef.current) {\n throw new Error('Can’t trigger the mutation: missing fetcher.');\n }\n if (!serializedKey) {\n throw new Error('Can’t trigger the mutation: missing key.');\n }\n // Disable cache population by default.\n const options = mergeObjects(mergeObjects({\n populateCache: false,\n throwOnError: true\n }, configRef.current), opts);\n // Trigger a mutation, and also track the timestamp. Any mutation that happened\n // earlier this timestamp should be ignored.\n const mutationStartedAt = getTimestamp();\n ditchMutationsUntilRef.current = mutationStartedAt;\n setState({\n isMutating: true\n });\n try {\n const data = await mutate(serializedKey, fetcherRef.current(resolvedKey, {\n arg\n }), // We must throw the error here so we can catch and update the states.\n mergeObjects(options, {\n throwOnError: true\n }));\n // If it's reset after the mutation, we don't broadcast any state change.\n if (ditchMutationsUntilRef.current <= mutationStartedAt) {\n var _options_onSuccess, _options;\n startTransition(()=>setState({\n data,\n isMutating: false,\n error: undefined\n }));\n (_options_onSuccess = (_options = options).onSuccess) == null ? void 0 : _options_onSuccess.call(_options, data, serializedKey, options);\n }\n return data;\n } catch (error) {\n // If it's reset after the mutation, we don't broadcast any state change\n // or throw because it's discarded.\n if (ditchMutationsUntilRef.current <= mutationStartedAt) {\n var _options_onError, _options1;\n startTransition(()=>setState({\n error: error,\n isMutating: false\n }));\n (_options_onError = (_options1 = options).onError) == null ? void 0 : _options_onError.call(_options1, error, serializedKey, options);\n if (options.throwOnError) {\n throw error;\n }\n }\n }\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n const reset = useCallback(()=>{\n ditchMutationsUntilRef.current = getTimestamp();\n setState({\n data: UNDEFINED,\n error: UNDEFINED,\n isMutating: false\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n useIsomorphicLayoutEffect(()=>{\n keyRef.current = key;\n fetcherRef.current = fetcher;\n configRef.current = config;\n });\n // We don't return `mutate` here as it can be pretty confusing (e.g. people\n // calling `mutate` but they actually mean `trigger`).\n // And also, `mutate` relies on the useSWR hook to exist too.\n return {\n trigger,\n reset,\n get data () {\n stateDependencies.data = true;\n return currentState.data;\n },\n get error () {\n stateDependencies.error = true;\n return currentState.error;\n },\n get isMutating () {\n stateDependencies.isMutating = true;\n return currentState.isMutating;\n }\n };\n };\n/**\n * A hook to define and manually trigger remote mutations like POST, PUT, DELETE and PATCH use cases.\n *\n * @link https://swr.vercel.app/docs/mutation\n * @example\n * ```jsx\n * import useSWRMutation from 'swr/mutation'\n *\n * const {\n * data,\n * error,\n * trigger,\n * reset,\n * isMutating\n * } = useSWRMutation(key, fetcher, options?)\n * ```\n */ const useSWRMutation = withMiddleware(useSWR, mutation);\n\nexport { useSWRMutation as default };\n","import useSWR from 'swr'\nimport useSWRMutation from 'swr/mutation'\nimport { useToolkitsContext } from '../../../components/ContextProvider'\nimport type { Game } from '../../../components/GameSelect'\nimport { usePermission } from '../../../hooks/permission'\nimport { useRequest } from '../../../hooks/request'\nimport type { PermissionEnumItem, RoleEnumItem, RoleV1, RoleV2 } from '../types'\n\nexport function useAllPermissions() {\n const request = useRequest()\n return useSWR('/api/usystem/user/allPermssions', url =>\n request<PermissionEnumItem[]>(url, { isGlobal: true }).then(response => response.data),\n )\n}\n\nexport function useAllPermissionsV2() {\n const request = useRequest()\n return useSWR('/api/usystem/user/allPermissionsV2', url =>\n request<{\n game: Game[]\n permission: PermissionEnumItem[]\n }>(url, { isGlobal: true }).then(response => response.data),\n )\n}\n\nexport function useAllRoles() {\n const request = useRequest()\n const { accessible } = usePermission('200005', true)\n return useSWR(accessible ? '/api/usystem/role/all' : null, url =>\n request<RoleEnumItem[]>(url, { isGlobal: true }).then(response => response.data),\n )\n}\n\nexport function useRole(name: string) {\n const request = useRequest()\n const { usePermissionApiV2 } = useToolkitsContext()\n return useSWR(`/api/usystem/role/${usePermissionApiV2 ? 'infoV2' : 'info'}?name=${name}`, (url: string) =>\n request<RoleV1 | RoleV2>(url, { isGlobal: true }).then(response => response.data),\n )\n}\n\nexport function useCreateRole() {\n const request = useRequest()\n const { usePermissionApiV2 } = useToolkitsContext()\n\n return useSWRMutation(\n usePermissionApiV2 ? '/api/usystem/role/createV2' : '/api/usystem/role/create',\n (\n url: string,\n {\n arg,\n }: {\n arg: { name: string; permissions: RoleV1['permissions'] | RoleV2['permissions'] }\n },\n ) =>\n request(url, {\n method: 'post',\n body: arg,\n isGlobal: true,\n }),\n )\n}\n\nexport function useUpdateRole() {\n const request = useRequest()\n const { usePermissionApiV2 } = useToolkitsContext()\n\n return useSWRMutation(\n usePermissionApiV2 ? '/api/usystem/role/updateV2' : '/api/usystem/role/update',\n (\n url: string,\n {\n arg,\n }: {\n arg: { id: number; name: string; permissions: RoleV1['permissions'] | RoleV2['permissions'] }\n },\n ) =>\n request(url, {\n method: 'post',\n body: arg,\n isGlobal: true,\n }),\n )\n}\n\nexport function useRemoveRole() {\n const request = useRequest()\n return useSWRMutation(\n '/api/usystem/role/delete',\n (\n url,\n {\n arg,\n }: {\n arg: { id: number; name: string }\n },\n ) =>\n request(url, {\n method: 'post',\n body: arg,\n isGlobal: true,\n }),\n )\n}\n\nexport function useCreateUser() {\n const request = useRequest()\n return useSWRMutation(\n '/api/usystem/user/create',\n (\n url,\n {\n arg,\n }: {\n arg: { name: string; roles: string[] }\n },\n ) =>\n request(url, {\n method: 'post',\n body: arg,\n isGlobal: true,\n }),\n )\n}\n\nexport function useUpdateUser() {\n const request = useRequest()\n return useSWRMutation(\n '/api/usystem/user/update',\n (\n url,\n {\n arg,\n }: {\n arg: { id: string; name: string; roles: string[] }\n },\n ) =>\n request(url, {\n method: 'post',\n body: arg,\n isGlobal: true,\n }),\n )\n}\n\nexport function useRemoveUser() {\n const request = useRequest()\n return useSWRMutation(\n '/api/usystem/user/delete',\n (\n url,\n {\n arg,\n }: {\n arg: { id: string; name: string }\n },\n ) =>\n request(url, {\n method: 'post',\n body: arg,\n isGlobal: true,\n }),\n )\n}\n"],"names":["startTransition","IS_REACT_LEGACY","cb","React","useStateWithDeps","state","rerender","useState","unmountedRef","useRef","stateRef","stateDependenciesRef","setState","useCallback","payload","shouldRerender","currentState","_","k","useIsomorphicLayoutEffect","mutation","key","fetcher","config","mutate","useSWRConfig","keyRef","fetcherRef","configRef","ditchMutationsUntilRef","stateDependencies","UNDEFINED","trigger","arg","opts","serializedKey","resolvedKey","serialize","options","mergeObjects","mutationStartedAt","getTimestamp","data","_options_onSuccess","_options","error","_options_onError","_options1","reset","useSWRMutation","withMiddleware","useSWR","useAllPermissions","request","useRequest","url","response","useAllPermissionsV2","useAllRoles","accessible","usePermission","useRole","name","usePermissionApiV2","useToolkitsContext","useCreateRole","useUpdateRole","useRemoveRole","useCreateUser","useUpdateUser","useRemoveUser"],"mappings":"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","x_google_ignoreList":[0]}
package/lib/index.d.ts CHANGED
@@ -18,6 +18,7 @@ import type { PropsWithChildren } from 'react';
18
18
  import type { ReactElement } from 'react';
19
19
  import { ReactNode } from 'react';
20
20
  import type { Ref } from 'react';
21
+ import type { RequestOptions as RequestOptions_2 } from 'src/utils/request';
21
22
  import type { StateStorage } from 'zustand/middleware';
22
23
  import { StoreApi } from 'zustand';
23
24
  import type { SubMenuType } from 'antd/es/menu/hooks/useItems';
@@ -82,14 +83,11 @@ export declare interface Game {
82
83
  export declare const GameSelect: () => JSX_2.Element;
83
84
 
84
85
  export declare interface GameState {
85
- isLoading: boolean;
86
86
  game: Game | null;
87
87
  games: Game[];
88
88
  setGame: (id: string) => void;
89
89
  setGames: (games: Game[]) => void;
90
90
  clearGame: () => void;
91
- setIsLoading: (isLoading: boolean) => void;
92
- refreshGames: () => void;
93
91
  }
94
92
 
95
93
  export declare const Highlight: (props: HighlightTextsProps) => JSX_2.Element;
@@ -284,7 +282,6 @@ declare type QueryListMutator = <Item = any>(action: string, data?: QueryListDat
284
282
  declare interface QueryListPayload<FormValues = any> {
285
283
  page?: number;
286
284
  size?: number;
287
- game?: string;
288
285
  formValues?: FormValues;
289
286
  }
290
287
 
@@ -316,20 +313,19 @@ export declare interface QueryListRef<Item = any, Values = any, Response = any>
316
313
  declare interface QueryListState {
317
314
  swrKeyMap: Map<string, string | null>;
318
315
  payloadMap: Map<string, QueryListPayload>;
319
- getPayload: (action: string) => QueryListPayload | undefined;
320
- setPayload(action: string, payload: QueryListPayload): void;
316
+ propsMap: Map<string, QueryListProps>;
321
317
  getSwrkKey(action: string): string | null;
322
- setSwrKey(action: string, key: string | null): void;
318
+ updateSwrKey(action: string, key?: string | null): void;
319
+ getPayload: (action: string) => QueryListPayload | undefined;
320
+ setPayload(action: string, payload: Partial<QueryListPayload>): void;
323
321
  mutate: QueryListMutator;
324
- remove(action: string): void;
322
+ refresh(action: string, page?: number): void;
325
323
  }
326
324
 
327
325
  declare type RecursivePartial<T> = NonNullable<T> extends object ? {
328
326
  [P in keyof T]?: NonNullable<T[P]> extends (infer U)[] ? RecursivePartial<U>[] : NonNullable<T[P]> extends object ? RecursivePartial<T[P]> : T[P];
329
327
  } : T;
330
328
 
331
- export declare function request<T = any>(url: string, opts?: RequestOptions): Promise<RequestResponse<T>>;
332
-
333
329
  export declare class RequestError extends Error {
334
330
  status: number;
335
331
  code?: number;
@@ -347,13 +343,6 @@ export declare interface RequestOptions extends Omit<RequestInit, 'body'> {
347
343
  isGlobal?: boolean;
348
344
  }
349
345
 
350
- declare interface RequestOptions_2 extends Omit<RequestInit, 'body'> {
351
- body?: Record<string | number, any> | FormData | null
352
- params?: Record<string | number, any> | URLSearchParams | null
353
- responseType?: 'json' | 'blob' | 'text'
354
- isGlobal?: boolean
355
- }
356
-
357
346
  export declare type RequestResponse<T> = Pick<Response, 'headers' | 'status' | 'statusText' | 'url'> & {
358
347
  data: T;
359
348
  };
@@ -434,6 +423,8 @@ export declare function usePermissions(codes: string[], isGlobal?: boolean, conf
434
423
 
435
424
  export declare const useQueryListStore: UseBoundStore<StoreApi<QueryListState>>;
436
425
 
426
+ export declare function useRequest(): <T = any>(url: string, opts?: RequestOptions) => Promise<RequestResponse<T>>;
427
+
437
428
  declare interface UserInfo {
438
429
  authorityId: string;
439
430
  exp: number;
package/lib/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { C as r, D as u, F as n, G as m, H as d, i as l, L as p, N as L, k as S, O as g, l as y, P, n as x, Q as c, o as F, R as G, p as M, S as T, q as h, t as k, v as q, r as Q, b as R, x as v, y as B, z as C, c as N, B as f, u as w, E as D, J as E, d as H, a as I, K as O, M as W } from "./index-QEbb1ngP.chunk.js";
1
+ import { C as r, D as u, F as n, G as m, H as d, l, L as p, N as L, o as S, O as g, p as y, P, q as x, Q as c, r as F, R as G, t as M, S as R, B as T, k as h, n as k, b as q, v as Q, x as v, y as B, c as C, z as N, u as f, e as w, E as D, J as E, d as H, a as I, K as O, M as W } from "./index-k8GuuOCY.chunk.js";
2
2
  import "react";
3
3
  import "antd";
4
4
  import "react-dom";
@@ -21,18 +21,18 @@ export {
21
21
  F as QueryListAction,
22
22
  G as RequestError,
23
23
  M as RequireGame,
24
- T as SignIn,
25
- h as UserWidget,
26
- k as contextStore,
27
- q as mixedStorage,
28
- Q as request,
29
- R as useFormModal,
30
- v as useGameStore,
31
- B as useModal,
32
- C as useModalStore,
33
- N as usePermission,
34
- f as usePermissions,
35
- w as useQueryListStore,
24
+ R as SignIn,
25
+ T as UserWidget,
26
+ h as contextStore,
27
+ k as mixedStorage,
28
+ q as useFormModal,
29
+ Q as useGameStore,
30
+ v as useModal,
31
+ B as useModalStore,
32
+ C as usePermission,
33
+ N as usePermissions,
34
+ f as useQueryListStore,
35
+ w as useRequest,
36
36
  D as useTokenStore,
37
37
  E as useTokenValidation,
38
38
  H as useToolkitsContext,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-toolkits",
3
- "version": "0.8.60",
3
+ "version": "0.8.62",
4
4
  "packageManager": "^pnpm@8.7.5",
5
5
  "sideEffects": [
6
6
  "**/*.css"