- |
+ |
{row.filename}
-
+ |
|
@@ -168,7 +182,7 @@ function RowItem({ row, columns }: { row: Row; columns: ReviewColumn[] }) {
return (
{value ? (
{value}
@@ -223,8 +237,9 @@ function StatusBadge({
if (status === "pending") {
return (
En attente
@@ -233,7 +248,7 @@ function StatusBadge({
}
if (status === "running") {
return (
-
+
En cours
@@ -241,7 +256,7 @@ function StatusBadge({
}
if (status === "ok") {
return (
-
+
OK
@@ -249,8 +264,9 @@ function StatusBadge({
}
return (
Erreur
diff --git a/src/app/(app)/tabular-reviews/new/new-review-form.tsx b/src/app/(app)/tabular-reviews/new/new-review-form.tsx
index fa4a5e9..3fa38c5 100644
--- a/src/app/(app)/tabular-reviews/new/new-review-form.tsx
+++ b/src/app/(app)/tabular-reviews/new/new-review-form.tsx
@@ -25,15 +25,17 @@ import { createTabularReview } from "../actions";
type KeyOption = { id: string; label: string; type: ProviderType };
type DocOption = { id: string; filename: string };
-type Column = { label: string; prompt: string };
+type Column = { id: string; label: string; prompt: string };
const DEFAULT_COLUMNS: Column[] = [
{
+ id: crypto.randomUUID(),
label: "Type de document",
prompt:
"Nature du document : contrat, mémo, décision, courrier, autre. Sois précis.",
},
{
+ id: crypto.randomUUID(),
label: "Date principale",
prompt:
"Date la plus importante du document (signature, décision, etc.). Format JJ/MM/AAAA.",
@@ -72,7 +74,10 @@ export function NewReviewForm({
setColumns((cols) => cols.filter((_, idx) => idx !== i));
}
function addColumn() {
- setColumns((cols) => [...cols, { label: "", prompt: "" }]);
+ setColumns((cols) => [
+ ...cols,
+ { id: crypto.randomUUID(), label: "", prompt: "" },
+ ]);
}
function toggleDoc(id: string) {
@@ -204,7 +209,7 @@ export function NewReviewForm({
{columns.map((c, i) => (
@@ -51,11 +53,13 @@ export function LoginForm() {
type="password"
autoComplete="current-password"
required
+ aria-invalid={!!state.error}
+ aria-describedby={state.error ? "login-error" : undefined}
/>
{state.error && (
-
+
{state.error}
)}
diff --git a/src/app/print/chat/[id]/page.tsx b/src/app/print/chat/[id]/page.tsx
index b8c8fc9..9d1aff1 100644
--- a/src/app/print/chat/[id]/page.tsx
+++ b/src/app/print/chat/[id]/page.tsx
@@ -128,19 +128,19 @@ export default async function PrintConversationPage({
- - conv:
+ - conv:
- {shortConvId}
- - sha256:
+ - sha256:
- {integrityHash}
- - messages:
+ - messages:
- {rows.length}
- - modèles:
+ - modèles:
-
{modelsUsed.length > 0 ? modelsUsed.join(", ") : "—"}
diff --git a/src/components/ui/checkbox.tsx b/src/components/ui/checkbox.tsx
index 8db1a01..50ece57 100644
--- a/src/components/ui/checkbox.tsx
+++ b/src/components/ui/checkbox.tsx
@@ -24,6 +24,7 @@ function Checkbox({
className="grid place-content-center text-current transition-none [&>svg]:size-3.5"
>
diff --git a/src/components/ui/select.tsx b/src/components/ui/select.tsx
index fe0307a..255e12b 100644
--- a/src/components/ui/select.tsx
+++ b/src/components/ui/select.tsx
@@ -154,6 +154,7 @@ function SelectScrollUpButton({
{...props}
>
)
@@ -173,6 +174,7 @@ function SelectScrollDownButton({
{...props}
>
)
diff --git a/src/components/ui/spinner.tsx b/src/components/ui/spinner.tsx
index f4676c2..81af514 100644
--- a/src/components/ui/spinner.tsx
+++ b/src/components/ui/spinner.tsx
@@ -3,7 +3,10 @@ import { IconLoader } from "@tabler/icons-react"
function Spinner({ className, ...props }: React.ComponentProps<"svg">) {
return (
-
+
+
+ Chargement
+
)
}
|