mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-08-20 03:21:45 +08:00
388641bc89
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Refactor** - Unified internal data access by replacing all references from `doc` to `store` across all components, blocks, widgets, and utilities. This affects how readonly state, block operations, and service retrieval are handled throughout the application. - **Tests** - Updated all test utilities and test cases to use `store` instead of `doc` for document-related operations. - **Chores** - Updated context providers and property names to reflect the change from `doc` to `store` for improved consistency and maintainability. No user-facing features or behaviors have changed. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
52 lines
1.6 KiB
TypeScript
52 lines
1.6 KiB
TypeScript
import { FeatureFlagService } from '@blocksuite/affine-shared/services';
|
|
import { isInsideBlockByFlavour } from '@blocksuite/affine-shared/utils';
|
|
import { type SlashMenuConfig } from '@blocksuite/affine-widget-slash-menu';
|
|
import { DatabaseTableViewIcon } from '@blocksuite/icons/lit';
|
|
|
|
import type { DataViewBlockComponent } from '../data-view-block';
|
|
import { ToDoListTooltip } from './tooltips';
|
|
|
|
export const dataViewSlashMenuConfig: SlashMenuConfig = {
|
|
disableWhen: ({ model }) => {
|
|
return model.flavour === 'affine:data-view';
|
|
},
|
|
items: [
|
|
{
|
|
name: 'Todo',
|
|
searchAlias: ['todo view'],
|
|
icon: DatabaseTableViewIcon(),
|
|
tooltip: {
|
|
figure: ToDoListTooltip,
|
|
caption: 'To-do List',
|
|
},
|
|
group: '7_Database@1',
|
|
when: ({ model, std }) =>
|
|
!isInsideBlockByFlavour(model.store, model, 'affine:edgeless-text') &&
|
|
!!std.get(FeatureFlagService).getFlag('enable_block_query'),
|
|
|
|
action: ({ model, std }) => {
|
|
const { host } = std;
|
|
const parent = host.store.getParent(model);
|
|
if (!parent) return;
|
|
const index = parent.children.indexOf(model);
|
|
const id = host.store.addBlock(
|
|
'affine:data-view',
|
|
{},
|
|
host.store.getParent(model),
|
|
index + 1
|
|
);
|
|
const dataViewModel = host.store.getBlock(id)!;
|
|
|
|
const dataView = std.view.getBlock(
|
|
dataViewModel.id
|
|
) as DataViewBlockComponent | null;
|
|
dataView?.dataSource.viewManager.viewAdd('table');
|
|
|
|
if (model.text?.length === 0) {
|
|
model.store.deleteBlock(model);
|
|
}
|
|
},
|
|
},
|
|
],
|
|
};
|