milestone 19: hygiene sweep - dead ecs surface, single-source constants, tls classification, frontend state hazards, docker smoke network fix
CI / test (push) Successful in 1m46s
CI / test-aarch64 (push) Successful in 5m30s
CI / frontend (push) Successful in 46s
CI / cross (push) Successful in 8m12s
CI / docker (push) Successful in 3m46s

This commit is contained in:
2026-08-07 20:39:27 +02:00
parent 6f67940995
commit 6c507992e4
59 changed files with 1020 additions and 382 deletions
+3 -2
View File
@@ -2,6 +2,7 @@ import { useReducer, useState } from "react";
import { useMutation, useQueryClient } from "@tanstack/react-query";
import { clientPrefixesPutMutation } from "@/lib/queries";
import type { ClientPrefix, Group } from "@/lib/types";
import { defaultGroupId } from "@/lib/defaultGroup";
import { firstProblem, initPrefixEditor, isDirty, prefixEditorReducer, toInputs } from "./prefixEditor";
import InlineError from "@/lib/InlineError";
import { buttonClass, focusRing, primaryButtonClass, smallInputClass } from "@/ui/classes";
@@ -17,7 +18,7 @@ export default function PrefixesEditor({ prefixes, groups }: Props) {
const [state, dispatch] = useReducer(prefixEditorReducer, prefixes, initPrefixEditor);
const [validation, setValidation] = useState<string | null>(null);
const dirty = isDirty(state);
const defaultGroupId = groups.find((group) => group.id === 1)?.id ?? groups[0]?.id ?? 1;
const fallbackGroupId = defaultGroupId(groups);
const save = () => {
const problem = firstProblem(state.rows);
@@ -96,7 +97,7 @@ export default function PrefixesEditor({ prefixes, groups }: Props) {
<div className="mt-4 flex gap-2">
<button
type="button"
onClick={() => dispatch({ type: "add", groupId: defaultGroupId })}
onClick={() => dispatch({ type: "add", groupId: fallbackGroupId })}
className={buttonClass}
>
Add prefix