mirror of https://github.com/msgbyte/tailchat
feat: 增加群组配置权限,增加群组成员隐私控制选项
parent
99564c4fb1
commit
9b331e7707
@ -0,0 +1,53 @@
|
||||
import React from 'react';
|
||||
import {
|
||||
model,
|
||||
showSuccessToasts,
|
||||
t,
|
||||
useAsyncRequest,
|
||||
useGroupInfo,
|
||||
} from 'tailchat-shared';
|
||||
import { Loading } from '@/components/Loading';
|
||||
import { FullModalField } from '@/components/FullModal/Field';
|
||||
import { FullModalCommonTitle } from '@/components/FullModal/CommonTitle';
|
||||
import { Switch } from 'antd';
|
||||
|
||||
export const GroupConfig: React.FC<{
|
||||
groupId: string;
|
||||
}> = React.memo((props) => {
|
||||
const groupId = props.groupId;
|
||||
const groupInfo = useGroupInfo(groupId);
|
||||
|
||||
const [{ loading }, handleModifyConfig] = useAsyncRequest(
|
||||
async (configName: model.group.GroupConfigNames, configValue: any) => {
|
||||
await model.group.modifyGroupConfig(groupId, configName, configValue);
|
||||
},
|
||||
[groupId]
|
||||
);
|
||||
|
||||
if (!groupInfo) {
|
||||
return <Loading spinning={true} />;
|
||||
}
|
||||
|
||||
const config = groupInfo.config ?? {};
|
||||
|
||||
return (
|
||||
<div>
|
||||
<FullModalCommonTitle>{t('群组配置')}</FullModalCommonTitle>
|
||||
|
||||
<FullModalField
|
||||
title={t('隐藏成员完整名称')}
|
||||
tip={t('群组隐私控制,防止通过群组恶意获取成员信息')}
|
||||
content={
|
||||
<Switch
|
||||
disabled={loading}
|
||||
checked={config['hideGroupMemberDiscriminator'] ?? false}
|
||||
onChange={(checked) =>
|
||||
handleModifyConfig('hideGroupMemberDiscriminator', checked)
|
||||
}
|
||||
/>
|
||||
}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
});
|
||||
GroupConfig.displayName = 'GroupConfig';
|
Loading…
Reference in New Issue