mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-07-17 18:16:15 +08:00
chore: allow cursor in none-contenteditable blocks (#11366)
This commit is contained in:
@@ -9,6 +9,7 @@ import {
|
||||
stdContext,
|
||||
TextSelection,
|
||||
} from '@blocksuite/std';
|
||||
import { RANGE_SYNC_EXCLUDE_ATTR } from '@blocksuite/std/inline';
|
||||
import type { BlockModel, Store } from '@blocksuite/store';
|
||||
import { Text } from '@blocksuite/store';
|
||||
import { consume } from '@lit/context';
|
||||
@@ -121,6 +122,8 @@ export class BlockCaptionEditor<
|
||||
override connectedCallback(): void {
|
||||
super.connectedCallback();
|
||||
|
||||
this.setAttribute(RANGE_SYNC_EXCLUDE_ATTR, 'true');
|
||||
|
||||
this.caption = this.model.props.caption;
|
||||
|
||||
this.disposables.add(
|
||||
|
||||
@@ -8,6 +8,7 @@ import {
|
||||
SearchIcon,
|
||||
} from '@blocksuite/icons/lit';
|
||||
import { ShadowlessElement } from '@blocksuite/std';
|
||||
import { RANGE_SYNC_EXCLUDE_ATTR } from '@blocksuite/std/inline';
|
||||
import {
|
||||
autoPlacement,
|
||||
autoUpdate,
|
||||
@@ -383,6 +384,7 @@ export const getDefaultModalRoot = (ele: HTMLElement) => {
|
||||
};
|
||||
export const createModal = (container: HTMLElement = document.body) => {
|
||||
const div = document.createElement('div');
|
||||
div.setAttribute(RANGE_SYNC_EXCLUDE_ATTR, 'true');
|
||||
div.style.pointerEvents = 'auto';
|
||||
div.style.position = 'absolute';
|
||||
div.style.left = '0';
|
||||
|
||||
@@ -2,8 +2,6 @@ import type { BaseSelection, BlockModel } from '@blocksuite/store';
|
||||
import throttle from 'lodash-es/throttle';
|
||||
|
||||
import { TextSelection } from '../../selection/index.js';
|
||||
import type { BlockComponent } from '../../view/element/block-component.js';
|
||||
import { BLOCK_ID_ATTR } from '../../view/index.js';
|
||||
import { isActiveInEditor } from './active.js';
|
||||
import { RANGE_SYNC_EXCLUDE_ATTR } from './consts.js';
|
||||
import type { RangeManager } from './range-manager.js';
|
||||
@@ -211,8 +209,13 @@ export class RangeBinding {
|
||||
|
||||
const el = getElement(range.commonAncestorContainer);
|
||||
if (!el) return;
|
||||
const block = el.closest<BlockComponent>(`[${BLOCK_ID_ATTR}]`);
|
||||
if (block?.getAttribute(RANGE_SYNC_EXCLUDE_ATTR) === 'true') return;
|
||||
|
||||
const closestExclude = el.closest(`[${RANGE_SYNC_EXCLUDE_ATTR}]`);
|
||||
if (closestExclude?.getAttribute(RANGE_SYNC_EXCLUDE_ATTR) === 'true')
|
||||
return;
|
||||
|
||||
const closestEditable = el.closest('[contenteditable]');
|
||||
if (closestEditable?.getAttribute('contenteditable') === 'false') return;
|
||||
|
||||
const startElement = getElement(range.startContainer);
|
||||
const endElement = getElement(range.endContainer);
|
||||
|
||||
Reference in New Issue
Block a user