chore: update
ci-api / test (push) Successful in 23m31s
ci-web / test (push) Successful in 14m33s

This commit is contained in:
Xor290
2026-08-03 12:11:14 +02:00
parent e2802aeb59
commit a9811fbb10
7 changed files with 1637 additions and 46 deletions
+4 -1
View File
@@ -45,7 +45,10 @@ export function BackofficeLayout() {
const roleColor = isAdmin ? 'purple' : isClient ? 'gray' : 'gray'
return (
<Box minH="100vh" bg="chakra-subtle-bg">
// overflowX hidden : garde-fou global — si un élément interne déborde
// malgré tout (contenu imprévu, régression future), le contenu est
// rogné plutôt que d'ouvrir un scroll horizontal sur toute la page.
<Box minH="100vh" bg="chakra-subtle-bg" overflowX="hidden">
<Flex as="header" px={6} py={3} borderBottomWidth="1px" align="center" gap={6}>
<Heading size="sm" as={RouterLink} to="/app">
Omnex · {isAdmin ? 'Espace admin' : 'Espace client'}
+6 -4
View File
@@ -47,7 +47,7 @@ export function DemoCard({
<Box borderWidth="1px" borderRadius="lg" overflow="hidden" bg="bg-surface">
<Box p={4} cursor="pointer" onClick={onToggle} _active={{ bg: 'chakra-subtle-bg' }}>
<HStack justify="space-between" align="start">
<HStack spacing={2} minW={0}>
<HStack spacing={2} minW={0} flex="1">
<Icon
as={ChevronIcon}
boxSize={3}
@@ -56,7 +56,7 @@ export function DemoCard({
transform={isOpen ? 'rotate(90deg)' : undefined}
transition="transform 0.15s"
/>
<Text fontFamily="mono" fontSize="sm" noOfLines={1} wordBreak="break-all">
<Text fontFamily="mono" fontSize="sm" noOfLines={1} wordBreak="break-all" minW={0} flex="1">
{demo.namespace}
</Text>
</HStack>
@@ -74,7 +74,7 @@ export function DemoCard({
<Text color="gray.500" flexShrink={0}>
URL
</Text>
<HStack spacing={1} minW={0}>
<HStack spacing={1} minW={0} flex="1" justify="flex-end">
{demo.status === 'ready' ? (
<Link
href={demo.url}
@@ -82,6 +82,8 @@ export function DemoCard({
isExternal
noOfLines={1}
wordBreak="break-all"
minW={0}
flex="1"
onClick={(e) => e.stopPropagation()}
>
{demo.url}
@@ -111,7 +113,7 @@ export function DemoCard({
</Stack>
{actions && (
<HStack mt={3} spacing={2} onClick={(e) => e.stopPropagation()}>
<HStack mt={3} spacing={2} flexWrap="wrap" rowGap={2} onClick={(e) => e.stopPropagation()}>
{actions}
</HStack>
)}
+7 -3
View File
@@ -30,7 +30,11 @@ export function PodStatusPanel({ state }: { state: DemoDetails['state'] }) {
: `${downCount} service${downCount > 1 ? 's' : ''} indisponible${downCount > 1 ? 's' : ''}`}
</Text>
</HStack>
<SimpleGrid columns={{ base: 1, sm: 2, lg: 4 }} spacing={3}>
{/* 1 colonne jusqu'à lg : à "sm" (480px), 2 colonnes serraient trop les
cartes (CPU/mémoire en mono + badge) et forçaient un débordement
horizontal — surtout dans le contexte carte mobile, déjà à l'étroit
avec son propre padding. */}
<SimpleGrid columns={{ base: 1, lg: 4 }} spacing={3}>
{PODSTATUS_COMPONENTS.map((c) => (
<ComponentCard key={c.key} title={c.label} cs={state[c.key]} />
))}
@@ -44,9 +48,9 @@ function ComponentCard({ title, cs }: { title: string; cs: ComponentState }) {
const memPct = cs.memory_limit_mi > 0 ? Math.min(100, Math.round((cs.memory_mi / cs.memory_limit_mi) * 100)) : 0
return (
<Box p={3} borderWidth="1px" borderRadius="lg" bg="bg-surface">
<Box p={3} borderWidth="1px" borderRadius="lg" bg="bg-surface" minW={0}>
<HStack justify="space-between" mb={3}>
<Text fontSize="sm" fontWeight="semibold">
<Text fontSize="sm" fontWeight="semibold" noOfLines={1}>
{title}
</Text>
<HStack spacing={1.5}>
+1 -1
View File
@@ -53,7 +53,7 @@ const plans: Plan[] = [
description: 'Passez en production : stockage persistant, votre démo n\'expire plus.',
features: [
'Tout ce qui est inclus dans Démo',
'Stockage persistant, n\'expire plus',
'Votre nom de domaine',
'Support prioritaire',
],
cta: 'Nous contacter',