AOSSIE-Org / AOSSIE-Org/DebateAI

Improve mobile UX for RoomBrowser by switching table to card layout on small screens

Đang mở
#276 1 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
TypeScript
Star
84
Fork
198
Merge trung bình
2 ngày 19 giờ
Pull request đã merge (30 ngày)
30

Mô tả

### Description

The current **RoomBrowser** component renders a table for all screen sizes.
On mobile devices, this results in horizontal scrolling due to long Room IDs and multiple columns, which negatively impacts usability.

Although overflow-x-auto prevents layout breaking, horizontal scrolling tables are not a good mobile UX pattern.

### Current Behavior

RoomBrowser.tsx always renders a table

**On mobile:**

> Requires horizontal scrolling
> Action buttons are cramped
> Room IDs cause layout overflow

### Expected Behavior :

- Desktop: keep the existing table layout
- Mobile: display rooms as stacked cards (vertical layout)
- No change in data, logic, or API behavior

### Proposed Solution

- Render card-based layout on mobile (sm:hidden)
- Render table layout on desktop (hidden sm:block)
- Reuse existing handlers (handleJoinMatch, handleViewDebate)
- No backend or API changes

### Files to be Updated

```
src/components/RoomBrowser.tsx

```

### Implementation Plan (Simple & Safe)
1. Keep existing table (desktop only)

Wrap your existing table JSX like this:
```


{/* existing table exactly as-is */}

```

2.Add a mobile card layout (new JSX)
```


{rooms.map((room) => {
const memberCount = room.participants?.length || 0;
const avgElo = getAverageElo(room.participants);

return (


Room ID


{room.id}


Type
{room.type.toUpperCase()}


Members
{memberCount > 0 ? memberCount : 'Empty'}


Avg Elo
{memberCount > 0 ? avgElo : '--'}


handleJoinMatch(room.id)}
className="flex-1 bg-primary text-primary-foreground py-2 rounded"
>
Join

handleViewDebate(room.id)}
className="flex-1 bg-secondary text-secondary-foreground py-2 rounded"
>
View



);
})}

```

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.