e.stopPropagation()}>
{t("playlists.addToPlaylist")}
{lists.length === 0 && !membership.isLoading && (
{t("playlists.noneYet")}
)}
{lists.map((pl) => (
toggle(pl)}
// NOT `disabled={busy}`: the native disabled attribute would blur the focused item to
// mid-request and permanently kill roving focus (useListNavigation listens on
// the floating element only). `toggle()` already no-ops while busy, so re-entrancy is
// guarded without touching focus; `aria-busy` on the list conveys the pending state.
label={playlistName(pl, t)}
className="w-full flex items-center gap-2 text-sm px-1.5 py-1.5 rounded-lg text-fg outline-hidden transition hover:bg-card/60 data-active:bg-[color-mix(in_srgb,var(--accent)_24%,transparent)]"
>
{pl.has_video && }
{playlistName(pl, t)}
{(pl.source === "youtube" || pl.yt_playlist_id) && (
)}
))}