diff --git a/src/app/api/list/players/route.ts b/src/app/api/list/players/route.ts new file mode 100644 index 000000000..21bb6aa19 --- /dev/null +++ b/src/app/api/list/players/route.ts @@ -0,0 +1,11 @@ +import { NextRequest, NextResponse } from 'next/server'; +import listPlayers from '../../../../core/blitz/listPlayers'; + +export async function GET(request: NextRequest) { + const search = request.nextUrl.searchParams.get('search'); + const limitParam = request.nextUrl.searchParams.get('limit'); + const limit = limitParam ? parseInt(limitParam) : undefined; + const players = search ? await listPlayers(search, limit) : []; + + return NextResponse.json(players); +} diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 5e35b9f7e..e121f5d3a 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,7 +1,10 @@ +import { config } from 'dotenv'; import { Roboto_Flex } from 'next/font/google'; import { ReactNode } from 'react'; import Navbar from '../components/Navbar'; +config(); + interface RootLayoutProps { children: ReactNode; } diff --git a/src/app/tools/session/page.tsx b/src/app/tools/session/page.tsx index d3c9e61b0..e6f09d53d 100644 --- a/src/app/tools/session/page.tsx +++ b/src/app/tools/session/page.tsx @@ -1,16 +1,44 @@ 'use client'; import { CopyIcon, ListBulletIcon, ReloadIcon } from '@radix-ui/react-icons'; +import { debounce } from 'lodash'; +import { ChangeEvent, useRef } from 'react'; import { Button } from '../../../components/Button'; import PageWrapper from '../../../components/PageWrapper'; import { SearchBar } from '../../../components/SearchBar'; +import { AccountListWithServer } from '../../../core/blitz/listPlayers'; import * as styles from './page.css'; export default function Page() { + const input = useRef(null); + const handleChange = debounce( + async (event: ChangeEvent) => { + if (event.target.value) { + const players = await fetch( + `/api/list/players?search=${event.target.value}`, + ).then((response) => response.json() as Promise); + + console.log( + players + .map((player) => `${player.region} - ${player.nickname}`) + .join('\n'), + ); + } else { + // TODO + } + }, + 500, + ); + return (
- +