React 18 doesn't pass ref as a regular prop to function components — it
needs forwardRef. Without it, the <dialog> element never received the
ref, so showModal() had no target. Click icon, nothing happens.
This was the real bug behind 'click icon, nothing happens' — Gallery
was already using ConfirmDialog but the ref was silently null.
Uses the existing ConfirmDialog component (native <dialog> element
styled like the app). Clicking Delete Track now opens a confirmation
modal instead of instantly deleting. Also cleaned up ConfirmDialog
to use React.Ref<HTMLDialogElement> for React 19 compatibility, and
removed unused ConfirmDialog import from App.tsx.