Skip to content

Commit 0107edf

Browse files
committed
feat: add setting for close message context menu
1 parent a02ad80 commit 0107edf

File tree

5 files changed

+24
-0
lines changed

5 files changed

+24
-0
lines changed

client/shared/i18n/langs/en-US/translation.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,7 @@
317317
"kbe20d511": "The user information was not found, there may be some exceptions",
318318
"kbef193d": "Invitation link copied to clipboard",
319319
"kbef5b92e": "Copy Link",
320+
"kbf38b110": "Close message context menu",
320321
"kc14b2ea3": "Back",
321322
"kc161f3a6": "1 hour",
322323
"kc1a5303e": "Panel-based group space, highly customizable",

client/shared/i18n/langs/zh-CN/translation.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,7 @@
317317
"kbe20d511": "没有找到该用户信息, 可能出现了一些异常",
318318
"kbef193d": "邀请链接已复制到剪切板",
319319
"kbef5b92e": "复制链接",
320+
"kbf38b110": "关闭消息右键菜单",
320321
"kc14b2ea3": "返回",
321322
"kc161f3a6": "1小时",
322323
"kc1a5303e": "基于面板的群组空间, 可高度自定义化",

client/shared/model/user.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,11 @@ export interface UserSettings {
3737
*/
3838
groupOrderList?: string[];
3939

40+
/**
41+
* 是否关闭消息右键菜单
42+
*/
43+
disableMessageContextMenu?: boolean;
44+
4045
/**
4146
* 其他的设置项
4247
*/

client/web/src/components/ChatBox/ChatMessageList/Item.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import {
1010
showMessageTime,
1111
useUserInfoList,
1212
UserBaseInfo,
13+
useUserSettings,
1314
} from 'tailchat-shared';
1415
import { useRenderPluginMessageInterpreter } from './useRenderPluginMessageInterpreter';
1516
import { getMessageRender, pluginMessageExtraParsers } from '@/plugin/common';
@@ -66,6 +67,7 @@ export const NormalMessage: React.FC<ChatMessageItemProps> = React.memo(
6667
const { showAvatar, payload, hideAction = false } = props;
6768
const userInfo = useCachedUserInfo(payload.author ?? '');
6869
const [isActionBtnActive, setIsActionBtnActive] = useState(false);
70+
const { settings } = useUserSettings();
6971

7072
const reactions = useMessageReactions(payload);
7173

@@ -124,6 +126,7 @@ export const NormalMessage: React.FC<ChatMessageItemProps> = React.memo(
124126
menu={moreActions}
125127
placement="bottomLeft"
126128
trigger={['contextMenu']}
129+
disabled={settings['disableMessageContextMenu']}
127130
onOpenChange={setIsActionBtnActive}
128131
>
129132
<div

client/web/src/components/modals/SettingsView/System.tsx

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,20 @@ export const SettingsSystem: React.FC = React.memo(() => {
4242
}
4343
/>
4444

45+
<FullModalField
46+
title={t('关闭消息右键菜单')}
47+
content={
48+
<Switch
49+
checked={settings['disableMessageContextMenu'] ?? false}
50+
onChange={(checked) =>
51+
setSettings({
52+
disableMessageContextMenu: checked,
53+
})
54+
}
55+
/>
56+
}
57+
/>
58+
4559
{pluginSettings
4660
.filter((item) => item.position === 'system')
4761
.map((item) => {

0 commit comments

Comments
 (0)