fix(ui): use dynamic viewport heights

This commit is contained in:
9qeklajc
2026-07-16 13:25:44 +02:00
parent c6733dbb62
commit 281607108c
12 changed files with 12 additions and 12 deletions
+1 -1
View File
@@ -86,7 +86,7 @@ export function AddModelForm({
return ( return (
<Dialog open={isOpen} onOpenChange={handleClose}> <Dialog open={isOpen} onOpenChange={handleClose}>
<DialogContent className='max-h-[90vh] overflow-y-auto sm:max-w-[600px]'> <DialogContent className='max-h-[90dvh] overflow-y-auto sm:max-w-[600px]'>
<DialogHeader> <DialogHeader>
<DialogTitle className='flex items-center gap-2'> <DialogTitle className='flex items-center gap-2'>
<Plus className='h-5 w-5' /> <Plus className='h-5 w-5' />
+1 -1
View File
@@ -438,7 +438,7 @@ export function AddProviderModelDialog({
return ( return (
<Dialog open={isOpen} onOpenChange={(open) => !open && onClose()}> <Dialog open={isOpen} onOpenChange={(open) => !open && onClose()}>
<DialogContent className='max-h-[90vh] overflow-y-auto sm:max-w-[720px]'> <DialogContent className='max-h-[90dvh] overflow-y-auto sm:max-w-[720px]'>
<DialogHeader> <DialogHeader>
<DialogTitle className='flex items-center gap-2'> <DialogTitle className='flex items-center gap-2'>
<Plus className='h-4 w-4' /> <Plus className='h-4 w-4' />
+1 -1
View File
@@ -177,7 +177,7 @@ export function CollectModelsDialog({
return ( return (
<Dialog open={isOpen} onOpenChange={handleClose}> <Dialog open={isOpen} onOpenChange={handleClose}>
<DialogContent className='max-h-[80vh] sm:max-w-[700px]'> <DialogContent className='max-h-[80dvh] sm:max-w-[700px]'>
<DialogHeader> <DialogHeader>
<DialogTitle className='flex items-center gap-2'> <DialogTitle className='flex items-center gap-2'>
<Download className='h-5 w-5' /> <Download className='h-5 w-5' />
+1 -1
View File
@@ -25,7 +25,7 @@ export function CostCalculatorDialog({
}: CostCalculatorDialogProps) { }: CostCalculatorDialogProps) {
return ( return (
<Dialog open={isOpen} onOpenChange={onClose}> <Dialog open={isOpen} onOpenChange={onClose}>
<DialogContent className='max-h-[90vh] overflow-y-auto sm:max-w-[700px]'> <DialogContent className='max-h-[90dvh] overflow-y-auto sm:max-w-[700px]'>
<DialogHeader> <DialogHeader>
<DialogTitle className='flex items-center gap-2'> <DialogTitle className='flex items-center gap-2'>
<Calculator className='h-5 w-5' /> <Calculator className='h-5 w-5' />
+1 -1
View File
@@ -100,7 +100,7 @@ export function EditGroupForm({
return ( return (
<Dialog open={isOpen} onOpenChange={handleClose}> <Dialog open={isOpen} onOpenChange={handleClose}>
<DialogContent className='max-h-[90vh] overflow-y-auto sm:max-w-[700px]'> <DialogContent className='max-h-[90dvh] overflow-y-auto sm:max-w-[700px]'>
<DialogHeader> <DialogHeader>
<DialogTitle className='flex items-center gap-2'> <DialogTitle className='flex items-center gap-2'>
<Users className='h-5 w-5' /> <Users className='h-5 w-5' />
+1 -1
View File
@@ -213,7 +213,7 @@ export function ProviderCard({
</CardHeader> </CardHeader>
<Dialog open={isKeyModalOpen} onOpenChange={setIsKeyModalOpen}> <Dialog open={isKeyModalOpen} onOpenChange={setIsKeyModalOpen}>
<DialogContent className='max-h-[90vh] overflow-y-auto sm:max-w-[500px]'> <DialogContent className='max-h-[90dvh] overflow-y-auto sm:max-w-[500px]'>
<DialogHeader> <DialogHeader>
<DialogTitle> <DialogTitle>
{provider.api_key {provider.api_key
+1 -1
View File
@@ -112,7 +112,7 @@ export function ProviderBalance({
</Button> </Button>
<Dialog open={isTopupDialogOpen} onOpenChange={handleCloseDialog}> <Dialog open={isTopupDialogOpen} onOpenChange={handleCloseDialog}>
<DialogContent className='max-h-[90vh] overflow-y-auto sm:max-w-md'> <DialogContent className='max-h-[90dvh] overflow-y-auto sm:max-w-md'>
<DialogHeader> <DialogHeader>
<DialogTitle>Top Up Balance</DialogTitle> <DialogTitle>Top Up Balance</DialogTitle>
<DialogDescription> <DialogDescription>
@@ -239,7 +239,7 @@ export function RoutstrProviderCard({
</Card> </Card>
<Dialog open={isKeyDialogOpen} onOpenChange={setIsKeyDialogOpen}> <Dialog open={isKeyDialogOpen} onOpenChange={setIsKeyDialogOpen}>
<DialogContent className='max-h-[90vh] overflow-y-auto sm:max-w-lg'> <DialogContent className='max-h-[90dvh] overflow-y-auto sm:max-w-lg'>
<DialogHeader> <DialogHeader>
<DialogTitle> <DialogTitle>
{hasApiKey ? 'Create New Key on Upstream Node' : 'Create API Key'} {hasApiKey ? 'Create New Key on Upstream Node' : 'Create API Key'}
+1 -1
View File
@@ -626,7 +626,7 @@ export function TopModelsUsageChart({
className={cn( className={cn(
'aspect-auto w-full', 'aspect-auto w-full',
isFullscreen isFullscreen
? 'h-[calc(100vh-220px)] min-h-[340px] sm:h-[calc(100vh-260px)] sm:min-h-[420px]' ? 'h-[calc(100dvh-220px)] min-h-[340px] sm:h-[calc(100dvh-260px)] sm:min-h-[420px]'
: 'h-[260px] sm:h-[340px]' : 'h-[260px] sm:h-[340px]'
)} )}
onMouseLeave={() => { onMouseLeave={() => {
+1 -1
View File
@@ -130,7 +130,7 @@ function DialogContent({
<DrawerPrimitive.Content <DrawerPrimitive.Content
data-slot='dialog-content' data-slot='dialog-content'
className={cn( className={cn(
'border-border bg-card data-closed:animate-out data-open:animate-in data-closed:slide-out-to-bottom data-open:slide-in-from-bottom fixed inset-x-0 bottom-0 z-50 grid max-h-[90vh] w-full gap-4 rounded-t-xl border-t p-4 pb-[calc(1rem+env(safe-area-inset-bottom))] shadow-lg', 'border-border bg-card data-closed:animate-out data-open:animate-in data-closed:slide-out-to-bottom data-open:slide-in-from-bottom fixed inset-x-0 bottom-0 z-50 grid max-h-[90dvh] w-full gap-4 rounded-t-xl border-t p-4 pb-[calc(1rem+env(safe-area-inset-bottom))] shadow-lg',
className className
)} )}
{...(props as React.ComponentProps<typeof DrawerPrimitive.Content>)} {...(props as React.ComponentProps<typeof DrawerPrimitive.Content>)}
+1 -1
View File
@@ -56,7 +56,7 @@ function DrawerContent({
<DrawerPrimitive.Content <DrawerPrimitive.Content
data-slot='drawer-content' data-slot='drawer-content'
className={cn( className={cn(
'bg-background group/drawer-content fixed z-50 flex h-auto flex-col text-sm data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-xl data-[vaul-drawer-direction=bottom]:border-t data-[vaul-drawer-direction=bottom]:pb-[calc(0.5rem+env(safe-area-inset-bottom))] data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:rounded-r-xl data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:rounded-l-xl data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-xl data-[vaul-drawer-direction=top]:border-b data-[vaul-drawer-direction=left]:sm:max-w-sm data-[vaul-drawer-direction=right]:sm:max-w-sm', 'bg-background group/drawer-content fixed z-50 flex h-auto flex-col text-sm data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80dvh] data-[vaul-drawer-direction=bottom]:rounded-t-xl data-[vaul-drawer-direction=bottom]:border-t data-[vaul-drawer-direction=bottom]:pb-[calc(0.5rem+env(safe-area-inset-bottom))] data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:rounded-r-xl data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:rounded-l-xl data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80dvh] data-[vaul-drawer-direction=top]:rounded-b-xl data-[vaul-drawer-direction=top]:border-b data-[vaul-drawer-direction=left]:sm:max-w-sm data-[vaul-drawer-direction=right]:sm:max-w-sm',
className className
)} )}
{...props} {...props}
+1 -1
View File
@@ -291,7 +291,7 @@ export function UsageMetricsChart({
className={cn( className={cn(
'aspect-auto w-full', 'aspect-auto w-full',
isFullscreen isFullscreen
? 'h-[calc(100vh-220px)] min-h-[340px] sm:h-[calc(100vh-260px)] sm:min-h-[420px]' ? 'h-[calc(100dvh-220px)] min-h-[340px] sm:h-[calc(100dvh-260px)] sm:min-h-[420px]'
: 'h-[260px] sm:h-[340px]' : 'h-[260px] sm:h-[340px]'
)} )}
config={chartConfig} config={chartConfig}