mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-08-10 05:29:08 +08:00
refactor(editor): enable the noUncheckedIndexedAccess rule for the block-database package (#9691)
close: BS-2269
This commit is contained in:
@@ -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: () => ({}),
|
||||
|
||||
Reference in New Issue
Block a user