fix: replace outer <button> with <div> in TimelineTrackContent to res… by kehuaWangfff · Pull Request #705 · OpenCut-app/OpenCut

@claude

…olve nested button hydration error

TimelineTrackContent wrapped its entire content in a <button>, while each
timeline element (ElementInner) also rendered its own <button> for click
handling. This created an invalid HTML structure where <button> was nested
inside <button>, triggering a React hydration error:

  "In HTML, <button> cannot be a descendant of <button>."

The outer <button> in TimelineTrackContent only handled click-to-deselect
and mousedown events — it did not need button semantics. Replacing it with
a <div> preserves the exact same event handling behavior while eliminating
the invalid nesting.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>