Skip to content

Commit 589ef82

Browse files
ismoilovdevmlclaude
andcommitted
Fix History UI issues and improve search bar
- Remove misleading history count from tab - Improve search bar UI (larger icons, better padding) - Make action buttons responsive (hide text on mobile) - Fix Docker entrypoint for Alpine sh compatibility Fixes: Empty history cards display issue Fixes: Search bar UI bugs 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
1 parent 77b7113 commit 589ef82

File tree

3 files changed

+82
-64
lines changed

3 files changed

+82
-64
lines changed

docker-entrypoint.sh

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#!/bin/sh
2+
set -e
3+
4+
echo "🔍 Checking database connection..."
5+
6+
# Wait for postgres to be ready
7+
until nc -z postgres 5432 > /dev/null 2>&1; do
8+
echo "⏳ Waiting for database..."
9+
sleep 2
10+
done
11+
12+
echo "✅ Database is ready!"
13+
14+
echo "🔄 Running database migrations..."
15+
npx prisma db push --skip-generate
16+
17+
echo "🚀 Starting Next.js application..."
18+
exec node server.js

src/components/AlertingTab.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -363,7 +363,7 @@ export default function AlertingTab() {
363363
}`}
364364
>
365365
<History className="w-4 h-4 inline mr-2" />
366-
History ({alertHistory.length})
366+
History
367367
</button>
368368
</div>
369369

src/components/EnterpriseHistory.tsx

Lines changed: 63 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -341,70 +341,69 @@ export default function EnterpriseHistory() {
341341

342342
{/* Search and Filters */}
343343
<div className={`${card} p-6`}>
344-
<div className="flex flex-col lg:flex-row gap-4 mb-4">
345-
{/* Search */}
346-
<div className="flex-1 relative">
347-
<Search className={`absolute left-3 top-1/2 transform -translate-y-1/2 w-4 h-4 ${textSecondary}`} />
348-
<input
349-
type="text"
350-
placeholder="Search by project name..."
351-
value={search}
352-
onChange={(e) => setSearch(e.target.value)}
353-
className={`${input} pl-10 w-full`}
354-
/>
355-
</div>
344+
<div className="flex flex-col gap-4">
345+
{/* Search Bar */}
346+
<div className="flex flex-col lg:flex-row gap-3">
347+
<div className="flex-1 relative">
348+
<Search className={`absolute left-3 top-1/2 transform -translate-y-1/2 w-5 h-5 ${textSecondary}`} />
349+
<input
350+
type="text"
351+
placeholder="Search by project name..."
352+
value={search}
353+
onChange={(e) => setSearch(e.target.value)}
354+
className={`${input} pl-11 pr-4 py-3 w-full text-base`}
355+
/>
356+
</div>
356357

357-
{/* Filter Toggle */}
358-
<button
359-
onClick={() => setShowFilters(!showFilters)}
360-
className={`px-4 py-2 rounded-lg flex items-center gap-2 ${
361-
showFilters ? 'bg-blue-600 text-white' : 'bg-gray-700 text-gray-300'
362-
}`}
363-
>
364-
<Filter className="w-4 h-4" />
365-
Filters
366-
</button>
367-
368-
{/* Refresh */}
369-
<button
370-
onClick={() => { loadHistory(); loadAnalytics(); }}
371-
className="px-4 py-2 bg-gray-700 text-gray-300 rounded-lg flex items-center gap-2 hover:bg-gray-600"
372-
>
373-
<RefreshCw className="w-4 h-4" />
374-
Refresh
375-
</button>
376-
377-
{/* Export */}
378-
<div className="flex gap-2">
379-
<button
380-
onClick={() => handleExport('csv')}
381-
className="px-4 py-2 bg-green-600 text-white rounded-lg flex items-center gap-2 hover:bg-green-700"
382-
>
383-
<Download className="w-4 h-4" />
384-
CSV
385-
</button>
386-
<button
387-
onClick={() => handleExport('json')}
388-
className="px-4 py-2 bg-blue-600 text-white rounded-lg flex items-center gap-2 hover:bg-blue-700"
389-
>
390-
<Download className="w-4 h-4" />
391-
JSON
392-
</button>
393-
</div>
358+
{/* Action Buttons */}
359+
<div className="flex flex-wrap gap-2">
360+
<button
361+
onClick={() => setShowFilters(!showFilters)}
362+
className={`px-4 py-3 rounded-lg flex items-center gap-2 transition-colors ${
363+
showFilters ? 'bg-blue-600 text-white hover:bg-blue-700' : 'bg-gray-700 text-gray-300 hover:bg-gray-600'
364+
}`}
365+
>
366+
<Filter className="w-4 h-4" />
367+
<span className="hidden sm:inline">Filters</span>
368+
</button>
394369

395-
{/* Clear All */}
396-
<button
397-
onClick={handleClearHistory}
398-
className="px-4 py-2 bg-red-600 text-white rounded-lg flex items-center gap-2 hover:bg-red-700"
399-
>
400-
<Trash2 className="w-4 h-4" />
401-
Clear All
402-
</button>
403-
</div>
370+
<button
371+
onClick={() => { loadHistory(); loadAnalytics(); }}
372+
className="px-4 py-3 bg-gray-700 text-gray-300 rounded-lg flex items-center gap-2 hover:bg-gray-600 transition-colors"
373+
>
374+
<RefreshCw className="w-4 h-4" />
375+
<span className="hidden sm:inline">Refresh</span>
376+
</button>
377+
378+
<button
379+
onClick={() => handleExport('csv')}
380+
className="px-4 py-3 bg-green-600 text-white rounded-lg flex items-center gap-2 hover:bg-green-700 transition-colors"
381+
>
382+
<Download className="w-4 h-4" />
383+
<span className="hidden sm:inline">CSV</span>
384+
</button>
385+
386+
<button
387+
onClick={() => handleExport('json')}
388+
className="px-4 py-3 bg-blue-600 text-white rounded-lg flex items-center gap-2 hover:bg-blue-700 transition-colors"
389+
>
390+
<Download className="w-4 h-4" />
391+
<span className="hidden sm:inline">JSON</span>
392+
</button>
404393

405-
{/* Advanced Filters */}
406-
{showFilters && (
407-
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4 p-4 bg-gray-700/30 rounded-lg">
394+
<button
395+
onClick={handleClearHistory}
396+
className="px-4 py-3 bg-red-600 text-white rounded-lg flex items-center gap-2 hover:bg-red-700 transition-colors"
397+
>
398+
<Trash2 className="w-4 h-4" />
399+
<span className="hidden sm:inline">Clear All</span>
400+
</button>
401+
</div>
402+
</div>
403+
404+
{/* Advanced Filters */}
405+
{showFilters && (
406+
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4 p-4 bg-gray-700/30 rounded-lg">
408407
<div>
409408
<label className={`block text-sm font-medium ${textSecondary} mb-2`}>Status</label>
410409
<select
@@ -455,8 +454,9 @@ export default function EnterpriseHistory() {
455454
className={input}
456455
/>
457456
</div>
458-
</div>
459-
)}
457+
</div>
458+
)}
459+
</div>
460460
</div>
461461

462462
{/* History List */}

0 commit comments

Comments
 (0)