diff --git a/src/components/Openings/OpeningSelectionModal.tsx b/src/components/Openings/OpeningSelectionModal.tsx index 70065d5f..289f2d20 100644 --- a/src/components/Openings/OpeningSelectionModal.tsx +++ b/src/components/Openings/OpeningSelectionModal.tsx @@ -758,6 +758,23 @@ const BrowsePanel: React.FC<{ ) + const selectBrowseItem = ( + opening: Opening, + variation: OpeningVariation | null, + ) => { + setPreviewOpening(opening) + setPreviewVariation(variation) + trackOpeningPreviewSelected( + opening.name, + opening.id, + !!variation, + variation?.name, + ) + if (isMobile) { + onOpeningClick(opening, variation) + } + } + return (
{ const openingIsBeingPreviewed = previewOpening.id === opening.id && !previewVariation - const showStandaloneOpening = opening.variations.length === 0 const isCollapsed = searchTerm ? false : collapsedOpenings.has(opening.id) @@ -828,30 +844,51 @@ const BrowsePanel: React.FC<{ return (
{ - if (hasVariations) toggleCollapse(opening.id) + role="button" + tabIndex={0} + className={`flex items-start gap-1.5 rounded-md px-2 py-1.5 transition-colors ${ + openingIsBeingPreviewed + ? 'bg-white/[0.05]' + : 'cursor-pointer hover:bg-white/[0.03]' + }`} + onClick={() => selectBrowseItem(opening, null)} + onKeyDown={(e) => { + if (e.key === 'Enter' || e.key === ' ') { + selectBrowseItem(opening, null) + } }} - role={hasVariations ? 'button' : undefined} - tabIndex={hasVariations ? 0 : undefined} - onKeyDown={ - hasVariations - ? (e) => { - if (e.key === 'Enter' || e.key === ' ') - toggleCollapse(opening.id) - } - : undefined - } > - {hasVariations && ( - { + e.stopPropagation() + toggleCollapse(opening.id) + }} > - expand_more - + + expand_more + + + ) : ( + )}
-

+

{opening.name}

{opening.pgn && hasVariations && ( @@ -869,26 +906,6 @@ const BrowsePanel: React.FC<{ {!isCollapsed && (
- {showStandaloneOpening - ? renderRow( - opening.name, - opening.pgn, - openingIsBeingPreviewed, - () => { - setPreviewOpening(opening) - setPreviewVariation(null) - trackOpeningPreviewSelected( - opening.name, - opening.id, - false, - ) - if (isMobile) { - onOpeningClick(opening, null) - } - }, - ) - : null} - {opening.variations.map((variation) => { const variationIsBeingPreviewed = previewOpening.id === opening.id && @@ -919,19 +936,7 @@ const BrowsePanel: React.FC<{ return `${moveNum}. ...${suffix}` })(), variationIsBeingPreviewed, - () => { - setPreviewOpening(opening) - setPreviewVariation(variation) - trackOpeningPreviewSelected( - opening.name, - opening.id, - true, - variation.name, - ) - if (isMobile) { - onOpeningClick(opening, variation) - } - }, + () => selectBrowseItem(opening, variation), )} )