react-toolkits 0.8.62 → 0.8.63

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 CHANGED
@@ -1,5 +1,11 @@
1
1
  # react-toolkits
2
2
 
3
+ ## 0.8.63
4
+
5
+ ### Patch Changes
6
+
7
+ - 9812dba: Refactor useGameStore hook
8
+
3
9
  ## 0.8.62
4
10
 
5
11
  ### Patch Changes
@@ -1,6 +1,6 @@
1
- import { a as S, j as e, d as $ } from "./index-k8GuuOCY.chunk.js";
1
+ import { a as S, j as e, d as $ } from "./index-HgiD-vIE.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-tI7pd8AJ.chunk.js";
3
+ import { h as R, i as B } from "./index-K4c6HXFy.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-s9GwU8Ka.chunk.js.map
171
+ //# sourceMappingURL=index-0j-tVu9j.chunk.js.map
@@ -1 +1 @@
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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"}
1
+ {"version":3,"file":"index-0j-tVu9j.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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"}