style(ui): align wallet and profile interactions

This commit is contained in:
t0ng7u
2026-06-16 00:44:33 +08:00
parent b36888ba9c
commit eb86311604
39 changed files with 341 additions and 314 deletions
@@ -307,8 +307,7 @@ export function UptimeKumaSection({ enabled, data }: UptimeKumaSectionProps) {
{
id: 'url',
header: t('Uptime Kuma URL'),
cellClassName:
'text-primary max-w-xs truncate font-mono text-sm',
cellClassName: 'text-primary max-w-xs truncate font-mono text-sm',
cell: (group) => group.url,
},
{
@@ -554,7 +554,9 @@ export function ChannelAffinitySection(props: Props) {
{
id: 'model-regex',
header: t('Model Regex'),
cell: (rule) => <RuleBadgeList items={rule.model_regex || []} />,
cell: (rule) => (
<RuleBadgeList items={rule.model_regex || []} />
),
},
{
id: 'key-sources',
@@ -149,9 +149,7 @@ export function AmountDiscountVisualEditor({
id: 'amount',
header: t('Recharge Amount'),
cell: (discount) => (
<span className='font-mono text-sm'>
${discount.amount}
</span>
<span className='font-mono text-sm'>${discount.amount}</span>
),
},
{
@@ -26,9 +26,7 @@ import {
PopoverContent,
PopoverTrigger,
} from '@/components/ui/popover'
import {
StaticDataTable,
} from '@/components/data-table'
import { StaticDataTable } from '@/components/data-table'
import { safeJsonParseWithValidation } from '../utils/json-parser'
import { isArray } from '../utils/json-validators'
import {
@@ -27,9 +27,7 @@ import {
AlertDialogHeader,
AlertDialogTitle,
} from '@/components/ui/alert-dialog'
import {
StaticDataTable,
} from '@/components/data-table'
import { StaticDataTable } from '@/components/data-table'
export type ConflictItem = {
channel: string
@@ -86,18 +84,18 @@ export function ConflictConfirmDialog({
id: 'current',
header: t('Current Billing'),
cell: (conflict) => (
<pre className='text-sm whitespace-pre-wrap'>
{conflict.current}
</pre>
<pre className='text-sm whitespace-pre-wrap'>
{conflict.current}
</pre>
),
},
{
id: 'new',
header: t('Change To'),
cell: (conflict) => (
<pre className='text-sm whitespace-pre-wrap'>
{conflict.newVal}
</pre>
<pre className='text-sm whitespace-pre-wrap'>
{conflict.newVal}
</pre>
),
},
]}
@@ -263,11 +263,11 @@ export const ToolPriceSettings = memo(function ToolPriceSettings({
id: 'tool',
header: t('Tool identifier'),
cell: (row) => (
<Input
value={row.key}
placeholder='web_search_preview:gpt-4o*'
onChange={(e) => updateRow(row.id, 'key', e.target.value)}
/>
<Input
value={row.key}
placeholder='web_search_preview:gpt-4o*'
onChange={(e) => updateRow(row.id, 'key', e.target.value)}
/>
),
},
{
@@ -275,15 +275,15 @@ export const ToolPriceSettings = memo(function ToolPriceSettings({
header: t('Price ($/1K calls)'),
className: 'w-[200px]',
cell: (row) => (
<Input
type='number'
min={0}
step={0.5}
value={row.price}
onChange={(e) =>
updateRow(row.id, 'price', Number(e.target.value) || 0)
}
/>
<Input
type='number'
min={0}
step={0.5}
value={row.price}
onChange={(e) =>
updateRow(row.id, 'price', Number(e.target.value) || 0)
}
/>
),
},
{
@@ -292,14 +292,14 @@ export const ToolPriceSettings = memo(function ToolPriceSettings({
className: 'w-[80px] text-right',
cellClassName: 'text-right',
cell: (row) => (
<Button
variant='ghost'
size='icon'
onClick={() => removeRow(row.id)}
aria-label={t('Delete')}
>
<Trash2 className='text-destructive h-4 w-4' />
</Button>
<Button
variant='ghost'
size='icon'
onClick={() => removeRow(row.id)}
aria-label={t('Delete')}
>
<Trash2 className='text-destructive h-4 w-4' />
</Button>
),
},
]}