mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-14 21:27:20 +00:00
chore(editor): remove edgeless element toolbar (#10900)
This commit is contained in:
@@ -45,7 +45,7 @@ import {
|
||||
actionToErrorResponse,
|
||||
actionToGenerating,
|
||||
actionToResponse,
|
||||
getElementToolbar,
|
||||
getToolbar,
|
||||
} from './edgeless-response';
|
||||
|
||||
async function getContentFromEmbedSyncedDocModel(
|
||||
@@ -400,7 +400,7 @@ export function actionToHandler<T extends keyof BlockSuitePresets.AIActions>(
|
||||
trackerOptions
|
||||
);
|
||||
|
||||
const elementToolbar = getElementToolbar(host);
|
||||
const toolbar = getToolbar(host);
|
||||
const isEmpty = selectedElements.length === 0;
|
||||
const isCreateImageAction = id === 'createImage';
|
||||
const isMakeItRealAction = !isCreateImageAction && id === 'makeItReal';
|
||||
@@ -411,8 +411,8 @@ export function actionToHandler<T extends keyof BlockSuitePresets.AIActions>(
|
||||
referenceElement = selectedBlocks.at(-1);
|
||||
} else if (edgelessCopilot.visible && edgelessCopilot.selectionElem) {
|
||||
referenceElement = edgelessCopilot.selectionElem;
|
||||
} else if (elementToolbar.toolbarVisible) {
|
||||
referenceElement = getElementToolbar(host);
|
||||
} else if (toolbar?.dataset.open) {
|
||||
referenceElement = toolbar;
|
||||
} else if (!isEmpty) {
|
||||
const lastSelected = selectedElements.at(-1)?.id;
|
||||
if (!lastSelected) return;
|
||||
|
||||
@@ -5,10 +5,6 @@ import {
|
||||
EDGELESS_TEXT_BLOCK_MIN_WIDTH,
|
||||
} from '@blocksuite/affine/blocks/edgeless-text';
|
||||
import { addImages } from '@blocksuite/affine/blocks/image';
|
||||
import {
|
||||
EDGELESS_ELEMENT_TOOLBAR_WIDGET,
|
||||
type EdgelessElementToolbarWidget,
|
||||
} from '@blocksuite/affine/blocks/root';
|
||||
import {
|
||||
fitContent,
|
||||
getSurfaceBlock,
|
||||
@@ -26,6 +22,10 @@ import {
|
||||
NoteDisplayMode,
|
||||
} from '@blocksuite/affine/model';
|
||||
import { TelemetryProvider } from '@blocksuite/affine/shared/services';
|
||||
import {
|
||||
AFFINE_TOOLBAR_WIDGET,
|
||||
type AffineToolbarWidget,
|
||||
} from '@blocksuite/affine/widgets/toolbar';
|
||||
import {
|
||||
ChatWithAiIcon,
|
||||
DeleteIcon,
|
||||
@@ -65,16 +65,14 @@ type ErrorConfig = Exclude<
|
||||
null
|
||||
>['errorStateConfig'];
|
||||
|
||||
export function getElementToolbar(
|
||||
host: EditorHost
|
||||
): EdgelessElementToolbarWidget {
|
||||
export function getToolbar(host: EditorHost) {
|
||||
const rootBlockId = host.doc.root?.id as string;
|
||||
const elementToolbar = host.view.getWidget(
|
||||
EDGELESS_ELEMENT_TOOLBAR_WIDGET,
|
||||
const toolbar = host.view.getWidget(
|
||||
AFFINE_TOOLBAR_WIDGET,
|
||||
rootBlockId
|
||||
) as EdgelessElementToolbarWidget;
|
||||
) as AffineToolbarWidget;
|
||||
|
||||
return elementToolbar;
|
||||
return toolbar.querySelector('editor-toolbar');
|
||||
}
|
||||
|
||||
export function getTriggerEntry(host: EditorHost) {
|
||||
|
||||
@@ -1,7 +1,3 @@
|
||||
import type {
|
||||
EdgelessElementToolbarWidget,
|
||||
EdgelessRootBlockComponent,
|
||||
} from '@blocksuite/affine/blocks/root';
|
||||
import { noop } from '@blocksuite/affine/global/utils';
|
||||
import type { DocMode } from '@blocksuite/affine/model';
|
||||
import {
|
||||
@@ -25,64 +21,6 @@ export function setupEdgelessCopilot(widget: EdgelessCopilotWidget) {
|
||||
widget.groups = edgelessAIGroups;
|
||||
}
|
||||
|
||||
export function setupEdgelessElementToolbarAIEntry(
|
||||
widget: EdgelessElementToolbarWidget
|
||||
) {
|
||||
widget.registerEntry({
|
||||
when: () => {
|
||||
return true;
|
||||
},
|
||||
render: (edgeless: EdgelessRootBlockComponent) => {
|
||||
const chain = edgeless.service.std.command.chain();
|
||||
const filteredGroups = edgelessAIGroups.reduce((pre, group) => {
|
||||
const filtered = group.items.filter(item =>
|
||||
item.showWhen?.(chain, 'edgeless' as DocMode, edgeless.host)
|
||||
);
|
||||
|
||||
if (filtered.length > 0) pre.push({ ...group, items: filtered });
|
||||
|
||||
return pre;
|
||||
}, [] as AIItemGroupConfig[]);
|
||||
|
||||
if (filteredGroups.every(group => group.items.length === 0)) return null;
|
||||
|
||||
const handler = () => {
|
||||
const aiPanel = getAIPanelWidget(edgeless.host);
|
||||
if (aiPanel.config) {
|
||||
aiPanel.config.generateAnswer = ({ finish, input }) => {
|
||||
finish('success');
|
||||
aiPanel.hide();
|
||||
extractSelectedContent(edgeless.host)
|
||||
.then(context => {
|
||||
AIProvider.slots.requestSendWithChat.next({
|
||||
input,
|
||||
context,
|
||||
host: edgeless.host,
|
||||
});
|
||||
})
|
||||
.catch(console.error);
|
||||
};
|
||||
aiPanel.config.inputCallback = text => {
|
||||
const copilotWidget = getEdgelessCopilotWidget(edgeless.host);
|
||||
const panel = copilotWidget.shadowRoot?.querySelector(
|
||||
'edgeless-copilot-panel'
|
||||
);
|
||||
if (panel instanceof HTMLElement) {
|
||||
panel.style.visibility = text ? 'hidden' : 'visible';
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
return html`<edgeless-copilot-toolbar-entry
|
||||
.host=${edgeless.host}
|
||||
.groups=${edgelessAIGroups}
|
||||
.onClick=${handler}
|
||||
></edgeless-copilot-toolbar-entry>`;
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export function edgelessToolbarAIEntryConfig(): ToolbarModuleConfig {
|
||||
return {
|
||||
actions: [
|
||||
|
||||
@@ -2,10 +2,7 @@ import {
|
||||
BlockFlavourIdentifier,
|
||||
LifeCycleWatcher,
|
||||
} from '@blocksuite/affine/block-std';
|
||||
import {
|
||||
EdgelessElementToolbarWidget,
|
||||
EdgelessRootBlockSpec,
|
||||
} from '@blocksuite/affine/blocks/root';
|
||||
import { EdgelessRootBlockSpec } from '@blocksuite/affine/blocks/root';
|
||||
import { ToolbarModuleExtension } from '@blocksuite/affine/shared/services';
|
||||
import type { ExtensionType } from '@blocksuite/affine/store';
|
||||
import type { FrameworkProvider } from '@toeverything/infra';
|
||||
@@ -15,7 +12,6 @@ import { toolbarAIEntryConfig } from '../entries';
|
||||
import {
|
||||
edgelessToolbarAIEntryConfig,
|
||||
setupEdgelessCopilot,
|
||||
setupEdgelessElementToolbarAIEntry,
|
||||
} from '../entries/edgeless/index';
|
||||
import { setupSpaceAIEntry } from '../entries/space/setup-space';
|
||||
import { CopilotTool } from '../tool/copilot-tool';
|
||||
@@ -72,10 +68,6 @@ function getAIEdgelessRootWatcher(framework: FrameworkProvider) {
|
||||
if (component instanceof EdgelessCopilotWidget) {
|
||||
setupEdgelessCopilot(component);
|
||||
}
|
||||
|
||||
if (component instanceof EdgelessElementToolbarWidget) {
|
||||
setupEdgelessElementToolbarAIEntry(component);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,7 +54,6 @@ import { getSelectedModelsCommand } from '@blocksuite/affine/shared/commands';
|
||||
import { ImageSelection } from '@blocksuite/affine/shared/selection';
|
||||
import {
|
||||
ActionPlacement,
|
||||
FeatureFlagService,
|
||||
GenerateDocUrlProvider,
|
||||
isRemovedUserInfo,
|
||||
OpenDocExtensionIdentifier,
|
||||
@@ -316,8 +315,7 @@ function createToolbarMoreMenuConfigV2(baseUrl?: string) {
|
||||
{
|
||||
id: 'block-meta-display',
|
||||
when: ctx => {
|
||||
const featureFlag = ctx.std.get(FeatureFlagService);
|
||||
const isEnabled = featureFlag.getFlag('enable_block_meta');
|
||||
const isEnabled = ctx.features.getFlag('enable_block_meta');
|
||||
if (!isEnabled) return false;
|
||||
|
||||
// only display when one block is selected by block selection
|
||||
|
||||
Reference in New Issue
Block a user