Files
AFFiNE-Mirror/blocksuite/affine/blocks/data-view/src/configs/slash-menu.ts
T
Saul-Mirone 388641bc89 refactor(editor): rename doc to store on block components (#12173)
<!-- 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 -->
2025-05-08 01:01:05 +00:00

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);
}
},
},
],
};