From 4d1dfc1ae52a477d77f1ac74b17d3ba3944d9770 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com> Date: Sun, 1 Oct 2023 16:05:51 -0500 Subject: [PATCH] feat: use radix ui for dropdown --- src/app/tools/session/page.tsx | 80 +++++++++------------------------- 1 file changed, 21 insertions(+), 59 deletions(-) diff --git a/src/app/tools/session/page.tsx b/src/app/tools/session/page.tsx index 206ee61eb..f2fd95dfa 100644 --- a/src/app/tools/session/page.tsx +++ b/src/app/tools/session/page.tsx @@ -1,7 +1,7 @@ 'use client'; import { CopyIcon, PersonIcon, ReloadIcon } from '@radix-ui/react-icons'; -import { Button, TextField } from '@radix-ui/themes'; +import { Button, DropdownMenu, TextField } from '@radix-ui/themes'; import { debounce } from 'lodash'; import { ChangeEvent, useRef, useState } from 'react'; import PageWrapper from '../../../components/PageWrapper'; @@ -11,7 +11,6 @@ import getWargamingResponse from '../../../core/blitz/getWargamingResponse'; import listPlayers, { AccountListWithServer, } from '../../../core/blitz/listPlayers'; -import { theme } from '../../../stitches.config'; import { useSession } from '../../../stores/session'; import { NormalizedTankStats, TanksStats } from '../../../types/tanksStats'; import SessionPage from '../../embeds/session/page'; @@ -77,6 +76,8 @@ export default function Page() { defaultValue={session.isTracking ? session.nickname : undefined} ref={input} onChange={(event) => { + event.stopPropagation(); + if (event.target.value) { setShowSearchResults(true); setSearchResults(undefined); @@ -86,79 +87,40 @@ export default function Page() { handleChange(event); }} - onBlur={() => setShowSearchResults(false)} + onBlur={(event) => { + // TODO: remove this hack when https://github.com/radix-ui/primitives/issues/2193 is fixed + event.target.value.length === 1 && event.target.focus(); + }} placeholder="Search for a player..." /> - {showSearchResults && ( -