feat: 增加删除身份组功能(开发环境)

pull/56/head
moonrailgun 2 years ago
parent ed2b949405
commit 53365ae017

@ -1,4 +1,5 @@
{
"k10416951": "Unable to remove everyone permission",
"k1096add": "Create permanent invite code",
"k10c018fe": "Teamwork",
"k1141d649": "Version update",
@ -95,6 +96,7 @@
"k58a85592": "Is not a valid plugin configuration",
"k5ab727ca": "This invitation will expire on <2><0>{{date}}</0></2>",
"k5bb71ad7": "Installed",
"k5be1a5b0": "Delete role group",
"k5bec387": "Unable to get group information",
"k5d2a6631": "Allow to manage channels",
"k5f91e72c": "Built Plugins",
@ -178,6 +180,7 @@
"ka39b3032": "1 day",
"ka49ec177": "Input somthing",
"ka4cebef8": "New Role",
"ka4dac521": "Are you sure you want to delete role {{name}}?",
"ka50c7408": "Please enter the JSON information manually, if you are not sure what you are doing, please do not use this function",
"ka5616453": "Mute {{length}}, expected until {{until}}",
"ka5d64ee9": "Choose the following template and start creating your own group!",

@ -1,4 +1,5 @@
{
"k10416951": "无法删除所有人权限",
"k1096add": "创建永久邀请码",
"k10c018fe": "工作协同",
"k1141d649": "更新版本",
@ -95,6 +96,7 @@
"k58a85592": "不是一个合法的插件配置",
"k5ab727ca": "该邀请将于 <2><0>{{date}}</0></2> 过期",
"k5bb71ad7": "已安装",
"k5be1a5b0": "删除身份组",
"k5bec387": "无法获取到群组信息",
"k5d2a6631": "允许管理频道",
"k5f91e72c": "内置插件",
@ -178,6 +180,7 @@
"ka39b3032": "1天",
"ka49ec177": "输入一些什么",
"ka4cebef8": "新身份组",
"ka4dac521": "确认要删除角色 {{name}} 么?",
"ka50c7408": "请手动输入JSON信息如果你不明确你在做什么请不要使用该功能",
"ka5616453": "禁言 {{length}}, 预计到 {{until}} 为止",
"ka5d64ee9": "选择以下模板, 开始创建属于自己的群组吧!",

@ -30,6 +30,7 @@ export const GroupRole: React.FC<GroupPermissionProps> = React.memo((props) => {
handleCreateRole,
handleSavePermission,
handleChangeRoleName,
handleDeleteRole,
} = useRoleActions(groupId, roleId);
return (
@ -70,6 +71,7 @@ export const GroupRole: React.FC<GroupPermissionProps> = React.memo((props) => {
<RoleSummary
currentRoleInfo={currentRoleInfo}
onChangeRoleName={handleChangeRoleName}
onDeleteRole={handleDeleteRole}
/>
)}
</PillTabPane>

@ -1,16 +1,31 @@
import { DevContainer } from '@/components/DevContainer';
import {
DefaultFullModalInputEditorRender,
FullModalField,
} from '@/components/FullModal/Field';
import { openReconfirmModal } from '@/components/Modal';
import { Button } from 'antd';
import React from 'react';
import { model, t } from 'tailchat-shared';
import { model, t, useMemoizedFn } from 'tailchat-shared';
interface RoleSummaryProps {
currentRoleInfo: model.group.GroupRole;
onChangeRoleName: (roleName: string) => void;
onDeleteRole: () => Promise<void>;
}
// 权限概述
export const RoleSummary: React.FC<RoleSummaryProps> = React.memo((props) => {
// 权限概述
const { currentRoleInfo } = props;
const handleDeleteRole = useMemoizedFn(() => {
openReconfirmModal({
title: t('确认要删除角色 {{name}} 么?', {
name: currentRoleInfo.name,
}),
onConfirm: () => props.onDeleteRole(),
});
});
return (
<div className="px-2">
<FullModalField
@ -20,6 +35,12 @@ export const RoleSummary: React.FC<RoleSummaryProps> = React.memo((props) => {
renderEditor={DefaultFullModalInputEditorRender}
onSave={props.onChangeRoleName}
/>
<DevContainer>
<Button type="primary" danger={true} onClick={handleDeleteRole}>
{t('删除身份组')}
</Button>
</DevContainer>
</div>
);
});

@ -53,10 +53,21 @@ export function useRoleActions(
[groupId, roleId]
);
const [{ loading: loading4 }, handleDeleteRole] =
useAsyncRequest(async () => {
if (roleId === AllPermission) {
throw new Error(t('无法删除所有人权限'));
}
await model.group.deleteGroupRole(groupId, roleId);
showSuccessToasts();
}, [groupId, roleId]);
return {
loading: loading1 || loading2 || loading3,
loading: loading1 || loading2 || loading3 || loading4,
handleCreateRole,
handleSavePermission,
handleChangeRoleName,
handleDeleteRole,
};
}

Loading…
Cancel
Save