refactor(editor): enable the noUncheckedIndexedAccess rule for the block-database package (#9691)

close: BS-2269
This commit is contained in:
zzj3720
2025-01-14 14:35:46 +00:00
parent aa2a8fbf9b
commit ff295f383f
24 changed files with 324 additions and 344 deletions
@@ -8,12 +8,12 @@ import { presetPropertyConverts } from '@blocksuite/data-view/property-presets';
import { propertyModelPresets } from '@blocksuite/data-view/property-pure-presets';
import { nanoid, Text } from '@blocksuite/store';
import { richTextColumnModelConfig } from './rich-text/define.js';
import { richTextPropertyModelConfig } from './rich-text/define.js';
export const databasePropertyConverts = [
...presetPropertyConverts,
createPropertyConvert(
richTextColumnModelConfig,
richTextPropertyModelConfig,
propertyModelPresets.selectPropertyModelConfig,
(_property, cells) => {
const options: Record<string, SelectTag> = {};
@@ -43,7 +43,7 @@ export const databasePropertyConverts = [
}
),
createPropertyConvert(
richTextColumnModelConfig,
richTextPropertyModelConfig,
propertyModelPresets.multiSelectPropertyModelConfig,
(_property, cells) => {
const options: Record<string, SelectTag> = {};
@@ -77,7 +77,7 @@ export const databasePropertyConverts = [
}
),
createPropertyConvert(
richTextColumnModelConfig,
richTextPropertyModelConfig,
propertyModelPresets.numberPropertyModelConfig,
(_property, cells) => {
return {
@@ -93,7 +93,7 @@ export const databasePropertyConverts = [
}
),
createPropertyConvert(
richTextColumnModelConfig,
richTextPropertyModelConfig,
propertyModelPresets.progressPropertyModelConfig,
(_property, cells) => {
return {
@@ -106,7 +106,7 @@ export const databasePropertyConverts = [
}
),
createPropertyConvert(
richTextColumnModelConfig,
richTextPropertyModelConfig,
propertyModelPresets.checkboxPropertyModelConfig,
(_property, cells) => {
const truthyValues = new Set(['yes', 'true']);
@@ -120,7 +120,7 @@ export const databasePropertyConverts = [
),
createPropertyConvert(
propertyModelPresets.checkboxPropertyModelConfig,
richTextColumnModelConfig,
richTextPropertyModelConfig,
(_property, cells) => {
return {
property: {},
@@ -130,7 +130,7 @@ export const databasePropertyConverts = [
),
createPropertyConvert(
propertyModelPresets.multiSelectPropertyModelConfig,
richTextColumnModelConfig,
richTextPropertyModelConfig,
(property, cells) => {
const optionMap = Object.fromEntries(
property.options.map(v => [v.id, v])
@@ -146,7 +146,7 @@ export const databasePropertyConverts = [
),
createPropertyConvert(
propertyModelPresets.numberPropertyModelConfig,
richTextColumnModelConfig,
richTextPropertyModelConfig,
(_property, cells) => ({
property: {},
cells: cells.map(v => new Text(v?.toString()).yText),
@@ -154,7 +154,7 @@ export const databasePropertyConverts = [
),
createPropertyConvert(
propertyModelPresets.progressPropertyModelConfig,
richTextColumnModelConfig,
richTextPropertyModelConfig,
(_property, cells) => ({
property: {},
cells: cells.map(v => new Text(v?.toString()).yText),
@@ -162,7 +162,7 @@ export const databasePropertyConverts = [
),
createPropertyConvert(
propertyModelPresets.selectPropertyModelConfig,
richTextColumnModelConfig,
richTextPropertyModelConfig,
(property, cells) => {
const optionMap = Object.fromEntries(
property.options.map(v => [v.id, v])
@@ -18,7 +18,7 @@ import { query, state } from 'lit/decorators.js';
import { html } from 'lit/static-html.js';
import { HostContextKey } from '../../context/host-context.js';
import { linkColumnModelConfig } from './define.js';
import { linkPropertyModelConfig } from './define.js';
export class LinkCell extends BaseCellRenderer<string> {
static override styles = css`
@@ -247,7 +247,7 @@ export class LinkCellEditing extends BaseCellRenderer<string> {
private accessor _container!: HTMLInputElement;
}
export const linkColumnConfig = linkColumnModelConfig.createPropertyMeta({
export const linkColumnConfig = linkPropertyModelConfig.createPropertyMeta({
icon: createIcon('LinkIcon'),
cellRenderer: {
view: createFromBaseCellRenderer(LinkCell),
@@ -1,7 +1,7 @@
import { propertyType, t } from '@blocksuite/data-view';
export const linkColumnType = propertyType('link');
export const linkColumnModelConfig = linkColumnType.modelConfig<string>({
export const linkPropertyModelConfig = linkColumnType.modelConfig<string>({
name: 'Link',
type: () => t.string.instance(),
defaultData: () => ({}),
@@ -0,0 +1,20 @@
import type { PropertyModel } from '@blocksuite/data-view';
import { propertyModelPresets } from '@blocksuite/data-view/property-pure-presets';
import { linkPropertyModelConfig } from './link/define';
import { richTextPropertyModelConfig } from './rich-text/define';
import { titlePropertyModelConfig } from './title/define';
export const databaseBlockModels = Object.fromEntries(
[
propertyModelPresets.checkboxPropertyModelConfig,
propertyModelPresets.datePropertyModelConfig,
propertyModelPresets.numberPropertyModelConfig,
propertyModelPresets.progressPropertyModelConfig,
propertyModelPresets.selectPropertyModelConfig,
propertyModelPresets.multiSelectPropertyModelConfig,
linkPropertyModelConfig,
richTextPropertyModelConfig,
titlePropertyModelConfig,
].map(v => [v.type, v as PropertyModel])
);
@@ -31,7 +31,7 @@ import { html } from 'lit/static-html.js';
import { HostContextKey } from '../../context/host-context.js';
import type { DatabaseBlockComponent } from '../../database-block.js';
import { richTextColumnModelConfig } from './define.js';
import { richTextPropertyModelConfig } from './define.js';
function toggleStyle(
inlineEditor: AffineInlineEditor | null,
@@ -581,7 +581,7 @@ declare global {
}
export const richTextColumnConfig =
richTextColumnModelConfig.createPropertyMeta({
richTextPropertyModelConfig.createPropertyMeta({
icon: createIcon('TextIcon'),
cellRenderer: {
@@ -9,7 +9,7 @@ import { type RichTextCellType, toYText } from '../utils.js';
export const richTextColumnType = propertyType('rich-text');
export const richTextColumnModelConfig =
export const richTextPropertyModelConfig =
richTextColumnType.modelConfig<RichTextCellType>({
name: 'Text',
type: () => t.richText.instance(),
@@ -6,10 +6,10 @@ import {
} from '@blocksuite/data-view';
import { TableSingleView } from '@blocksuite/data-view/view-presets';
import { titlePurePropertyConfig } from './define.js';
import { titlePropertyModelConfig } from './define.js';
import { HeaderAreaTextCell, HeaderAreaTextCellEditing } from './text.js';
export const titleColumnConfig = titlePurePropertyConfig.createPropertyMeta({
export const titleColumnConfig = titlePropertyModelConfig.createPropertyMeta({
icon: createIcon('TitleIcon'),
cellRenderer: {
view: uniMap(
@@ -6,7 +6,7 @@ import { isLinkedDoc } from '../../utils/title-doc.js';
export const titleColumnType = propertyType('title');
export const titlePurePropertyConfig = titleColumnType.modelConfig<Text>({
export const titlePropertyModelConfig = titleColumnType.modelConfig<Text>({
name: 'Title',
type: () => t.richText.instance(),
defaultData: () => ({}),