feat: add setting for close message context menu

pull/220/head
moonrailgun 1 year ago
parent a02ad80bf1
commit 0107edfa0c

@ -317,6 +317,7 @@
"kbe20d511": "The user information was not found, there may be some exceptions", "kbe20d511": "The user information was not found, there may be some exceptions",
"kbef193d": "Invitation link copied to clipboard", "kbef193d": "Invitation link copied to clipboard",
"kbef5b92e": "Copy Link", "kbef5b92e": "Copy Link",
"kbf38b110": "Close message context menu",
"kc14b2ea3": "Back", "kc14b2ea3": "Back",
"kc161f3a6": "1 hour", "kc161f3a6": "1 hour",
"kc1a5303e": "Panel-based group space, highly customizable", "kc1a5303e": "Panel-based group space, highly customizable",

@ -317,6 +317,7 @@
"kbe20d511": "没有找到该用户信息, 可能出现了一些异常", "kbe20d511": "没有找到该用户信息, 可能出现了一些异常",
"kbef193d": "邀请链接已复制到剪切板", "kbef193d": "邀请链接已复制到剪切板",
"kbef5b92e": "复制链接", "kbef5b92e": "复制链接",
"kbf38b110": "关闭消息右键菜单",
"kc14b2ea3": "返回", "kc14b2ea3": "返回",
"kc161f3a6": "1小时", "kc161f3a6": "1小时",
"kc1a5303e": "基于面板的群组空间, 可高度自定义化", "kc1a5303e": "基于面板的群组空间, 可高度自定义化",

@ -37,6 +37,11 @@ export interface UserSettings {
*/ */
groupOrderList?: string[]; groupOrderList?: string[];
/**
*
*/
disableMessageContextMenu?: boolean;
/** /**
* *
*/ */

@ -10,6 +10,7 @@ import {
showMessageTime, showMessageTime,
useUserInfoList, useUserInfoList,
UserBaseInfo, UserBaseInfo,
useUserSettings,
} from 'tailchat-shared'; } from 'tailchat-shared';
import { useRenderPluginMessageInterpreter } from './useRenderPluginMessageInterpreter'; import { useRenderPluginMessageInterpreter } from './useRenderPluginMessageInterpreter';
import { getMessageRender, pluginMessageExtraParsers } from '@/plugin/common'; import { getMessageRender, pluginMessageExtraParsers } from '@/plugin/common';
@ -66,6 +67,7 @@ export const NormalMessage: React.FC<ChatMessageItemProps> = React.memo(
const { showAvatar, payload, hideAction = false } = props; const { showAvatar, payload, hideAction = false } = props;
const userInfo = useCachedUserInfo(payload.author ?? ''); const userInfo = useCachedUserInfo(payload.author ?? '');
const [isActionBtnActive, setIsActionBtnActive] = useState(false); const [isActionBtnActive, setIsActionBtnActive] = useState(false);
const { settings } = useUserSettings();
const reactions = useMessageReactions(payload); const reactions = useMessageReactions(payload);
@ -124,6 +126,7 @@ export const NormalMessage: React.FC<ChatMessageItemProps> = React.memo(
menu={moreActions} menu={moreActions}
placement="bottomLeft" placement="bottomLeft"
trigger={['contextMenu']} trigger={['contextMenu']}
disabled={settings['disableMessageContextMenu']}
onOpenChange={setIsActionBtnActive} onOpenChange={setIsActionBtnActive}
> >
<div <div

@ -42,6 +42,20 @@ export const SettingsSystem: React.FC = React.memo(() => {
} }
/> />
<FullModalField
title={t('关闭消息右键菜单')}
content={
<Switch
checked={settings['disableMessageContextMenu'] ?? false}
onChange={(checked) =>
setSettings({
disableMessageContextMenu: checked,
})
}
/>
}
/>
{pluginSettings {pluginSettings
.filter((item) => item.position === 'system') .filter((item) => item.position === 'system')
.map((item) => { .map((item) => {

Loading…
Cancel
Save