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