fix(core): chat panel display on cont in chat (#6527)

This commit is contained in:
pengx17
2024-04-12 03:58:43 +00:00
parent 13b39fc5f3
commit 4a67c84c73
@@ -11,7 +11,7 @@ import {
ImageService, ImageService,
} from '@blocksuite/blocks'; } from '@blocksuite/blocks';
import { DisposableGroup } from '@blocksuite/global/utils'; import { DisposableGroup } from '@blocksuite/global/utils';
import type { AffineEditorContainer } from '@blocksuite/presets'; import { type AffineEditorContainer, AIProvider } from '@blocksuite/presets';
import type { Doc as BlockSuiteDoc } from '@blocksuite/store'; import type { Doc as BlockSuiteDoc } from '@blocksuite/store';
import { import {
Doc, Doc,
@@ -56,7 +56,10 @@ import {
MultiTabSidebarHeaderSwitcher, MultiTabSidebarHeaderSwitcher,
sidebarTabs, sidebarTabs,
} from '../../../modules/multi-tab-sidebar'; } from '../../../modules/multi-tab-sidebar';
import { RightSidebarViewIsland } from '../../../modules/right-sidebar'; import {
RightSidebar,
RightSidebarViewIsland,
} from '../../../modules/right-sidebar';
import { import {
useIsActiveView, useIsActiveView,
ViewBodyIsland, ViewBodyIsland,
@@ -71,6 +74,7 @@ const RIGHT_SIDEBAR_TABS_ACTIVE_KEY = 'app:settings:rightsidebar:tabs:active';
const DetailPageImpl = memo(function DetailPageImpl() { const DetailPageImpl = memo(function DetailPageImpl() {
const globalState = useService(GlobalState); const globalState = useService(GlobalState);
const rightSidebar = useService(RightSidebar);
const activeTabName = useLiveData( const activeTabName = useLiveData(
LiveData.from( LiveData.from(
globalState.watch<SidebarTabName>(RIGHT_SIDEBAR_TABS_ACTIVE_KEY), globalState.watch<SidebarTabName>(RIGHT_SIDEBAR_TABS_ACTIVE_KEY),
@@ -102,6 +106,15 @@ const DetailPageImpl = memo(function DetailPageImpl() {
} }
}, [editor, isActiveView, setActiveBlockSuiteEditor]); }, [editor, isActiveView, setActiveBlockSuiteEditor]);
useEffect(() => {
AIProvider.slots.requestContinueInChat.on(() => {
rightSidebar.open();
if (activeTabName !== 'chat') {
setActiveTabName('chat');
}
});
}, [activeTabName, rightSidebar, setActiveTabName]);
const pageMeta = useBlockSuiteDocMeta(docCollection).find( const pageMeta = useBlockSuiteDocMeta(docCollection).find(
meta => meta.id === page.id meta => meta.id === page.id
); );