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