fix: migrate select to Base UI items API (#4655)

This commit is contained in:
yyhhyyyyyy
2026-05-06 21:38:58 +08:00
committed by GitHub
parent 38a3314b9b
commit d98f0e8ac3
38 changed files with 1187 additions and 485 deletions
@@ -28,6 +28,7 @@ import { ScrollArea } from '@/components/ui/scroll-area'
import {
Select,
SelectContent,
SelectGroup,
SelectItem,
SelectTrigger,
SelectValue,
@@ -104,6 +105,12 @@ export function BillingHistoryDialog({
/>
</div>
<Select
items={[
{ value: '10', label: t('10 / page') },
{ value: '20', label: t('20 / page') },
{ value: '50', label: t('50 / page') },
{ value: '100', label: t('100 / page') },
]}
value={pageSize.toString()}
onValueChange={(value) =>
value !== null && handlePageSizeChange(parseInt(value))
@@ -112,11 +119,13 @@ export function BillingHistoryDialog({
<SelectTrigger className='h-9 w-[92px] sm:w-32'>
<SelectValue />
</SelectTrigger>
<SelectContent>
<SelectItem value='10'>{t('10 / page')}</SelectItem>
<SelectItem value='20'>{t('20 / page')}</SelectItem>
<SelectItem value='50'>{t('50 / page')}</SelectItem>
<SelectItem value='100'>{t('100 / page')}</SelectItem>
<SelectContent alignItemWithTrigger={false}>
<SelectGroup>
<SelectItem value='10'>{t('10 / page')}</SelectItem>
<SelectItem value='20'>{t('20 / page')}</SelectItem>
<SelectItem value='50'>{t('50 / page')}</SelectItem>
<SelectItem value='100'>{t('100 / page')}</SelectItem>
</SelectGroup>
</SelectContent>
</Select>
</div>
@@ -10,6 +10,7 @@ import { Progress } from '@/components/ui/progress'
import {
Select,
SelectContent,
SelectGroup,
SelectItem,
SelectTrigger,
SelectValue,
@@ -276,6 +277,34 @@ export function SubscriptionPlansCard({
</div>
<div className='flex w-full items-center gap-2 sm:w-auto'>
<Select
items={[
{
value: 'subscription_first',
label: (
<>
{getBillingPreferenceLabel('subscription_first', t)}
{disablePref ? ` (${t('No Active')})` : ''}
</>
),
},
{
value: 'wallet_first',
label: getBillingPreferenceLabel('wallet_first', t),
},
{
value: 'subscription_only',
label: (
<>
{getBillingPreferenceLabel('subscription_only', t)}
{disablePref ? ` (${t('No Active')})` : ''}
</>
),
},
{
value: 'wallet_only',
label: getBillingPreferenceLabel('wallet_only', t),
},
]}
value={displayPref}
onValueChange={(v) => v !== null && handlePreferenceChange(v)}
>
@@ -284,21 +313,29 @@ export function SubscriptionPlansCard({
{getBillingPreferenceLabel(displayPref, t)}
</SelectValue>
</SelectTrigger>
<SelectContent>
<SelectItem value='subscription_first' disabled={disablePref}>
{getBillingPreferenceLabel('subscription_first', t)}
{disablePref ? ` (${t('No Active')})` : ''}
</SelectItem>
<SelectItem value='wallet_first'>
{getBillingPreferenceLabel('wallet_first', t)}
</SelectItem>
<SelectItem value='subscription_only' disabled={disablePref}>
{getBillingPreferenceLabel('subscription_only', t)}
{disablePref ? ` (${t('No Active')})` : ''}
</SelectItem>
<SelectItem value='wallet_only'>
{getBillingPreferenceLabel('wallet_only', t)}
</SelectItem>
<SelectContent alignItemWithTrigger={false}>
<SelectGroup>
<SelectItem
value='subscription_first'
disabled={disablePref}
>
{getBillingPreferenceLabel('subscription_first', t)}
{disablePref ? ` (${t('No Active')})` : ''}
</SelectItem>
<SelectItem value='wallet_first'>
{getBillingPreferenceLabel('wallet_first', t)}
</SelectItem>
<SelectItem
value='subscription_only'
disabled={disablePref}
>
{getBillingPreferenceLabel('subscription_only', t)}
{disablePref ? ` (${t('No Active')})` : ''}
</SelectItem>
<SelectItem value='wallet_only'>
{getBillingPreferenceLabel('wallet_only', t)}
</SelectItem>
</SelectGroup>
</SelectContent>
</Select>
<Button