chore: build
This commit is contained in:
@@ -113,8 +113,8 @@ export function CreateProjectModal({ isOpen, onClose, onCreated }: CreateProject
|
||||
))}
|
||||
</Select>
|
||||
<FormHelperText>
|
||||
Durée réellement payée par le client. À l'échéance le projet est suspendu, puis supprimé
|
||||
après le délai de grâce s'il n'est pas renouvelé.
|
||||
Durée réellement payée par le client. À l'échéance le projet est supprimé s'il n'est pas
|
||||
renouvelé.
|
||||
</FormHelperText>
|
||||
</FormControl>
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ interface ExtendProjectModalProps {
|
||||
}
|
||||
|
||||
// Renouvellement d'un abonnement : 1 à 12 mois ajoutés à l'échéance courante
|
||||
// (ou à aujourd'hui si elle est dépassée). Relance un projet suspendu.
|
||||
// (ou à aujourd'hui si elle est dépassée).
|
||||
export function ExtendProjectModal({ project, onClose, onExtended }: ExtendProjectModalProps) {
|
||||
const toast = useToast()
|
||||
const [months, setMonths] = useState(1)
|
||||
@@ -72,9 +72,7 @@ export function ExtendProjectModal({ project, onClose, onExtended }: ExtendProje
|
||||
))}
|
||||
</Select>
|
||||
<FormHelperText>
|
||||
{project?.status === 'suspended'
|
||||
? "Le projet est suspendu : il sera relancé et l'abonnement repart d'aujourd'hui."
|
||||
: "Les mois s'ajoutent à l'échéance actuelle."}
|
||||
Les mois s'ajoutent à l'échéance actuelle.
|
||||
</FormHelperText>
|
||||
</FormControl>
|
||||
</ModalBody>
|
||||
|
||||
+2
-5
@@ -58,13 +58,12 @@ export interface Demo {
|
||||
expires_at: string
|
||||
}
|
||||
|
||||
// Projets vitrine : abonnement de 1 à 12 mois, suspendu à l'échéance puis
|
||||
// supprimé après un délai de grâce (voir internal/projects côté API).
|
||||
// Projets vitrine : abonnement de 1 à 12 mois, supprimé à l'échéance
|
||||
// (voir internal/projects côté API).
|
||||
export type ProjectStatus =
|
||||
| 'pending'
|
||||
| 'provisioning'
|
||||
| 'ready'
|
||||
| 'suspended'
|
||||
| 'deleting'
|
||||
| 'deleted'
|
||||
| 'failed'
|
||||
@@ -81,8 +80,6 @@ export interface Project {
|
||||
months_purchased: number
|
||||
created_at: string
|
||||
expires_at: string
|
||||
delete_at: string
|
||||
suspended_at?: string
|
||||
}
|
||||
|
||||
export interface CreateProjectParams {
|
||||
|
||||
@@ -101,8 +101,6 @@ export function projectStatusColor(s: ProjectStatus): string {
|
||||
case 'provisioning':
|
||||
case 'pending':
|
||||
return 'blue'
|
||||
case 'suspended':
|
||||
return 'orange'
|
||||
case 'deleting':
|
||||
case 'failed':
|
||||
return 'red'
|
||||
@@ -118,7 +116,6 @@ export function projectStatusLabel(s: ProjectStatus): string {
|
||||
pending: 'En attente',
|
||||
provisioning: 'Déploiement…',
|
||||
ready: 'En ligne',
|
||||
suspended: 'Suspendu',
|
||||
deleting: 'Suppression…',
|
||||
deleted: 'Supprimé',
|
||||
failed: 'Échec',
|
||||
|
||||
@@ -75,21 +75,12 @@ export function Projects() {
|
||||
}
|
||||
}
|
||||
|
||||
// Échéance affichée : temps restant, ou date de suppression si suspendu.
|
||||
const deadline = (p: Project) => {
|
||||
if (p.status === 'suspended') {
|
||||
return (
|
||||
<Text color="orange.500" fontSize="sm">
|
||||
Suppression le {formatDate(p.delete_at)}
|
||||
</Text>
|
||||
)
|
||||
}
|
||||
return (
|
||||
<Text fontSize="sm">
|
||||
{formatDate(p.expires_at)} · {timeRemaining(p.expires_at)}
|
||||
</Text>
|
||||
)
|
||||
}
|
||||
// Échéance affichée : date de suppression et temps restant.
|
||||
const deadline = (p: Project) => (
|
||||
<Text fontSize="sm">
|
||||
{formatDate(p.expires_at)} · {timeRemaining(p.expires_at)}
|
||||
</Text>
|
||||
)
|
||||
|
||||
return (
|
||||
<Box p={{ base: 4, md: 8 }}>
|
||||
@@ -122,7 +113,7 @@ export function Projects() {
|
||||
<Tbody>
|
||||
{projects.map((p) => {
|
||||
const locked = busy === p.id
|
||||
const canExtend = p.status === 'ready' || p.status === 'provisioning' || p.status === 'suspended'
|
||||
const canExtend = p.status === 'ready' || p.status === 'provisioning'
|
||||
return (
|
||||
<Tr key={p.id}>
|
||||
<Td>{p.client_name}</Td>
|
||||
|
||||
Reference in New Issue
Block a user