feat: 增加操作右键面板正在新窗口打开

release/desktop
moonrailgun 3 years ago
parent e568653060
commit f24db563fb

@ -2,6 +2,7 @@ import { findPluginPanelInfoByName } from '@/utils/plugin-helper';
import { Alert } from 'antd';
import React, { useMemo } from 'react';
import { isValidStr, useGroupPanel } from 'tailchat-shared';
import { GroupPanelWrapper } from './Wrapper';
interface GroupPluginPanelProps {
groupId: string;
@ -49,9 +50,20 @@ export const GroupPluginPanel: React.FC<GroupPluginPanelProps> = React.memo(
const Component = pluginPanelInfo.render;
if (!Component) {
// 没有找到插件组件
// TODO: Fallback
return null;
}
return <Component />;
return (
<GroupPanelWrapper
groupId={props.groupId}
panelId={props.panelId}
showHeader={false}
>
<Component />
</GroupPanelWrapper>
);
}
);
GroupPluginPanel.displayName = 'GroupPluginPanel';

@ -15,7 +15,7 @@ export const TextPanel: React.FC<TextPanelProps> = React.memo(
}
return (
<GroupPanelWrapper groupId={groupId} panelId={panelId}>
<GroupPanelWrapper groupId={groupId} panelId={panelId} showHeader={true}>
<ChatBox converseId={panelId} isGroup={true} groupId={groupId} />
</GroupPanelWrapper>
);

@ -13,6 +13,11 @@ import { IconBtn } from '@/components/IconBtn';
interface GroupPanelWrapperProps {
groupId: string;
panelId: string;
/**
*
*/
showHeader: boolean;
}
export const GroupPanelWrapper: React.FC<GroupPanelWrapperProps> = React.memo(
(props) => {
@ -28,6 +33,10 @@ export const GroupPanelWrapper: React.FC<GroupPanelWrapperProps> = React.memo(
return <OpenedPanelTip onClosePanelWindow={closePanelWindow} />;
}
if (!props.showHeader) {
return <>{props.children}</>;
}
return (
<CommonPanelWrapper
header={panelInfo.name}

@ -4,6 +4,7 @@ import { GroupPanelItem } from '@/components/GroupPanelItem';
import { GroupTextPanelItem } from './TextPanelItem';
import { Dropdown, Menu } from 'antd';
import copy from 'copy-to-clipboard';
import { usePanelWindow } from '@/hooks/usePanelWindow';
/**
*
@ -13,6 +14,9 @@ export const SidebarItem: React.FC<{
panel: GroupPanel;
}> = React.memo((props) => {
const { groupId, panel } = props;
const { hasOpenedPanel, openPanelWindow } = usePanelWindow(
`/panel/group/${groupId}/${panel.id}`
);
const menu = (
<Menu>
@ -25,6 +29,10 @@ export const SidebarItem: React.FC<{
>
{t('复制链接')}
</Menu.Item>
<Menu.Item disabled={hasOpenedPanel} onClick={openPanelWindow}>
{t('在新窗口打开')}
</Menu.Item>
</Menu>
);

Loading…
Cancel
Save