Refactor HistoryTable and ProfileList components for improved UI and functionality

- Introduced a DropdownMenu for action buttons in HistoryTable, enhancing user interaction.
- Adjusted column widths in HistoryTable for better layout and readability.
- Updated ProfileList to replace icons and improve layout consistency.
- Added new DropdownMenu component for reusable dropdown functionality across the application.
- Enhanced Slider component with slight position adjustment for better visual alignment.
This commit is contained in:
Jamie Pine
2026-01-25 17:12:08 -08:00
parent 586b19f40f
commit a1b0f268c9
4 changed files with 232 additions and 32 deletions
@@ -1,4 +1,4 @@
import { Mic, Plus } from 'lucide-react';
import { Mic, Sparkles } from 'lucide-react';
import { Button } from '@/components/ui/button';
import { Card, CardContent } from '@/components/ui/card';
import { useProfiles } from '@/lib/hooks/useProfiles';
@@ -33,12 +33,12 @@ export function ProfileList() {
<div className="flex items-center justify-between mb-4 shrink-0">
<h2 className="text-2xl font-bold">Voicebox</h2>
<Button onClick={() => setDialogOpen(true)}>
<Plus className="mr-2 h-4 w-4" />
<Sparkles className="mr-2 h-4 w-4" />
New Profile
</Button>
</div>
<div className="min-h-[280px] shrink-0">
<div className="shrink-0">
{allProfiles.length === 0 ? (
<Card>
<CardContent className="flex flex-col items-center justify-center py-12">
@@ -47,13 +47,13 @@ export function ProfileList() {
No voice profiles yet. Create your first profile to get started.
</p>
<Button onClick={() => setDialogOpen(true)}>
<Plus className="mr-2 h-4 w-4" />
<Sparkles className="mr-2 h-4 w-4" />
Create Profile
</Button>
</CardContent>
</Card>
) : (
<div className="grid gap-4 grid-cols-3 auto-rows-fr p-1">
<div className="grid gap-4 grid-cols-3 auto-rows-auto p-1">
{allProfiles.map((profile) => (
<ProfileCard key={profile.id} profile={profile} />
))}