KTV / components /settings /SortSettings.tsx
l-g-t's picture
Upload 212 files
3c76719 verified
import { type SortOption } from '@/lib/store/settings-store';
import { sortOptions } from '@/lib/store/settings-helpers';
interface SortSettingsProps {
sortBy: SortOption;
onSortChange: (sort: SortOption) => void;
}
export function SortSettings({ sortBy, onSortChange }: SortSettingsProps) {
return (
<div className="bg-[var(--glass-bg)] border border-[var(--glass-border)] rounded-[var(--radius-2xl)] shadow-[var(--shadow-sm)] p-6 mb-6">
<h2 className="text-xl font-semibold text-[var(--text-color)] mb-4">搜索结果排序</h2>
<p className="text-sm text-[var(--text-color-secondary)] mb-4">
选择搜索结果的默认排序方式
</p>
<div className="grid grid-cols-1 sm:grid-cols-2 gap-3">
{(Object.keys(sortOptions) as SortOption[]).map((option) => (
<button
key={option}
onClick={() => onSortChange(option)}
className={`px-4 py-3 rounded-[var(--radius-2xl)] border text-left font-medium transition-all duration-200 cursor-pointer ${sortBy === option
? 'bg-[var(--accent-color)] border-[var(--accent-color)] text-white'
: 'bg-[var(--glass-bg)] border-[var(--glass-border)] text-[var(--text-color)] hover:bg-[color-mix(in_srgb,var(--accent-color)_10%,transparent)]'
}`}
>
{sortOptions[option]}
</button>
))}
</div>
</div>
);
}