feat: 重新設計手機版分頁導航解決字體過小問題
- 手機版採用極簡圓形按鈕設計,移除擠壓的下拉選單 - 大字體顯示:text-base (16px) 和 text-lg (18px) 確保清晰易讀 - 圓形大按鈕:12x12 觸控區域 + 陰影效果 + 按壓動畫 - 垂直居中布局:分頁資訊 + 導航控制分層顯示 - 桌面版保持完整功能:詳細統計 + 頁碼導航 + 每頁選擇 - 改進桌面版下拉選單:min-w-[80px] 確保適當寬度 解決手機版下拉選單字體過小和界面擠壓問題。 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
f08d798aa4
commit
a5b2cc746c
|
|
@ -45,20 +45,58 @@ export const PaginationControls: React.FC<PaginationControlsProps> = ({
|
|||
}
|
||||
|
||||
return (
|
||||
<div className="flex items-center justify-between p-4 bg-white border-t border-gray-200">
|
||||
<div className="bg-white border-t border-gray-200">
|
||||
{/* 手機版 - 簡潔美觀設計 */}
|
||||
<div className="block md:hidden p-4">
|
||||
<div className="flex flex-col items-center gap-4">
|
||||
{/* 分頁控制 - 圓形大按鈕 */}
|
||||
<div className="flex items-center gap-4">
|
||||
<button
|
||||
onClick={handlePrevPage}
|
||||
disabled={!hasPrev}
|
||||
className={`flex items-center justify-center w-12 h-12 rounded-full transition-all ${
|
||||
hasPrev
|
||||
? 'bg-blue-100 text-blue-700 hover:bg-blue-200 shadow-md hover:shadow-lg active:scale-95'
|
||||
: 'bg-gray-100 text-gray-400 cursor-not-allowed'
|
||||
}`}
|
||||
>
|
||||
<svg className="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M15 19l-7-7 7-7" />
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<div className="px-4 py-2 bg-gray-100 rounded-full min-w-[60px] text-center">
|
||||
<span className="text-lg font-bold text-gray-800">{currentPage}</span>
|
||||
</div>
|
||||
|
||||
<button
|
||||
onClick={handleNextPage}
|
||||
disabled={!hasNext}
|
||||
className={`flex items-center justify-center w-12 h-12 rounded-full transition-all ${
|
||||
hasNext
|
||||
? 'bg-blue-100 text-blue-700 hover:bg-blue-200 shadow-md hover:shadow-lg active:scale-95'
|
||||
: 'bg-gray-100 text-gray-400 cursor-not-allowed'
|
||||
}`}
|
||||
>
|
||||
<svg className="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M9 5l7 7-7 7" />
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* 桌面版 - 保持完整功能 */}
|
||||
<div className="hidden md:flex items-center justify-between p-4">
|
||||
{/* 左側:顯示資訊 */}
|
||||
<div className="flex items-center gap-4">
|
||||
<span className="text-sm text-gray-700">
|
||||
顯示 {startItem} 到 {endItem} 筆,共 {totalCount} 筆
|
||||
</span>
|
||||
|
||||
{/* 每頁筆數選擇 */}
|
||||
<div className="flex items-center gap-2">
|
||||
<label className="text-sm text-gray-600">每頁:</label>
|
||||
<select
|
||||
value={pageSize}
|
||||
onChange={handlePageSizeChange}
|
||||
className="border border-gray-300 rounded px-2 py-1 text-sm focus:ring-blue-500 focus:border-blue-500"
|
||||
className="border border-gray-300 rounded px-3 py-2 text-sm focus:ring-blue-500 focus:border-blue-500 min-w-[80px]"
|
||||
>
|
||||
<option value={10}>10</option>
|
||||
<option value={20}>20</option>
|
||||
|
|
@ -85,7 +123,6 @@ export const PaginationControls: React.FC<PaginationControlsProps> = ({
|
|||
|
||||
{/* 頁碼顯示 */}
|
||||
<div className="flex items-center gap-1">
|
||||
{/* 顯示當前頁附近的頁碼 */}
|
||||
{Array.from({ length: Math.min(5, totalPages) }, (_, i) => {
|
||||
let pageNumber
|
||||
if (totalPages <= 5) {
|
||||
|
|
@ -128,5 +165,6 @@ export const PaginationControls: React.FC<PaginationControlsProps> = ({
|
|||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
Loading…
Reference in New Issue