diff --git a/src/components/Componentes/question-snap-list.tsx b/src/components/Componentes/question-snap-list.tsx index 88f6d05..c2b3291 100644 --- a/src/components/Componentes/question-snap-list.tsx +++ b/src/components/Componentes/question-snap-list.tsx @@ -26,6 +26,13 @@ const DRAG_IGNORE_SELECTOR = [ "input", "textarea", "select", + "button", + "label", + "a", + '[role="button"]', + '[role="option"]', + '[role="checkbox"]', + '[role="radio"]', '[contenteditable="true"]', "[data-snap-drag-ignore]", ].join(", "); @@ -389,7 +396,6 @@ export function QuestionSnapList({ const drag = dragRef.current; if (!drag.pointerDown) { - event.preventDefault(); return; } @@ -401,7 +407,7 @@ export function QuestionSnapList({ if (!drag.engaged) { if (Math.abs(drag.startY - y) < DRAG_ENGAGE_DISTANCE) { - event.preventDefault(); + // Allow micro-movements during a tap to produce native click/focus events return; } drag.engaged = true; diff --git a/src/components/Componentes/question-text.tsx b/src/components/Componentes/question-text.tsx index 1f0cdbb..70d3004 100644 --- a/src/components/Componentes/question-text.tsx +++ b/src/components/Componentes/question-text.tsx @@ -33,7 +33,6 @@ export default function QuestionText({ const [localValue, setLocalValue] = useState( isMuted ? "" : String(value ?? ""), ); - const [isReadOnly, setIsReadOnly] = useState(true); const debounceTimerRef = useRef(null); useEffect(() => { @@ -60,17 +59,12 @@ export default function QuestionText({ }; const handleBlur = () => { - setIsReadOnly(true); if (debounceTimerRef.current) { clearTimeout(debounceTimerRef.current); } setAnswerValue(question, localValue); }; - const handleFocus = () => { - setIsReadOnly(false); - }; - const stringValue = localValue.trim(); const isEmailQuestion = question.type === "email" || question.validation?.format === "email"; @@ -107,11 +101,9 @@ export default function QuestionText({ >