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