fix: avoid intercepting local edit typing events
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled

This commit is contained in:
Your Name 2026-05-23 14:14:59 +08:00
parent 9cbbc7f065
commit b5c7eeac5a

View File

@ -287,11 +287,6 @@ const LOCAL_EDIT_COLORS = [
const isLocalEditControlTarget = (target: EventTarget | null) => const isLocalEditControlTarget = (target: EventTarget | null) =>
target instanceof HTMLElement && target instanceof HTMLElement &&
Boolean(target.closest('[data-local-edit-control="true"]')); Boolean(target.closest('[data-local-edit-control="true"]'));
const stopLocalEditPromptTextEvent = (
event: React.SyntheticEvent<HTMLElement>
) => {
event.stopPropagation();
};
const FLOATING_TOOLBAR_SCALE = 0.8; const FLOATING_TOOLBAR_SCALE = 0.8;
const IMAGE_EDIT_PANEL_SCALE = 0.5; const IMAGE_EDIT_PANEL_SCALE = 0.5;
const ANGLE_PANEL_SCALE = 0.65; const ANGLE_PANEL_SCALE = 0.65;
@ -8057,7 +8052,6 @@ export function ImageNode({
event.stopPropagation(); event.stopPropagation();
}} }}
onCompositionEnd={(event) => { onCompositionEnd={(event) => {
stopLocalEditPromptTextEvent(event);
localEditPromptComposingRefs.current[region.id] = localEditPromptComposingRefs.current[region.id] =
false; false;
updateLocalEditPromptDraft( updateLocalEditPromptDraft(
@ -8065,36 +8059,23 @@ export function ImageNode({
event.currentTarget.value event.currentTarget.value
); );
}} }}
onCompositionStart={(event) => { onCompositionStart={() => {
stopLocalEditPromptTextEvent(event);
localEditPromptComposingRefs.current[region.id] = localEditPromptComposingRefs.current[region.id] =
true; true;
}} }}
onCompositionUpdate={(event) => {
stopLocalEditPromptTextEvent(event);
}}
onFocus={(event) => { onFocus={(event) => {
event.stopPropagation(); event.stopPropagation();
setEditingLocalEditRegionId((current) => setEditingLocalEditRegionId((current) =>
current === region.id ? current : region.id current === region.id ? current : region.id
); );
}} }}
onInput={(event) => {
stopLocalEditPromptTextEvent(event);
updateLocalEditPromptDraft(
region.id,
event.currentTarget.value
);
}}
onChange={(event) => { onChange={(event) => {
stopLocalEditPromptTextEvent(event);
updateLocalEditPromptDraft( updateLocalEditPromptDraft(
region.id, region.id,
event.currentTarget.value event.currentTarget.value
); );
}} }}
onKeyDown={(event) => { onKeyDown={(event) => {
stopLocalEditPromptTextEvent(event);
const isComposing = const isComposing =
event.nativeEvent.isComposing || event.nativeEvent.isComposing ||
event.key === "Process" || event.key === "Process" ||
@ -8107,6 +8088,7 @@ export function ImageNode({
(event.metaKey || event.ctrlKey) (event.metaKey || event.ctrlKey)
) { ) {
event.preventDefault(); event.preventDefault();
event.stopPropagation();
persistLocalEditRegionPrompt( persistLocalEditRegionPrompt(
region.id, region.id,
event.currentTarget.value event.currentTarget.value
@ -8115,6 +8097,7 @@ export function ImageNode({
} }
if (event.key === "Escape") { if (event.key === "Escape") {
event.preventDefault(); event.preventDefault();
event.stopPropagation();
persistLocalEditRegionPrompt( persistLocalEditRegionPrompt(
region.id, region.id,
event.currentTarget.value event.currentTarget.value
@ -8122,9 +8105,6 @@ export function ImageNode({
setEditingLocalEditRegionId(null); setEditingLocalEditRegionId(null);
} }
}} }}
onKeyUp={(event) => {
stopLocalEditPromptTextEvent(event);
}}
onMouseDown={(event) => { onMouseDown={(event) => {
event.stopPropagation(); event.stopPropagation();
}} }}