fix: Kurzbefehl-Anleitung dauerhaft sichtbar

Die Anleitung – und damit die Konto-Nummern fuer account_id – erschien nur
direkt nach dem Anlegen einer Marke. Wer sie ausblendete oder die Seite neu
lud, kam nie wieder daran und stand vor dem Kurzbefehl ohne die Nummer, die
er eintragen sollte.

Einmalig ist nur der Klartext der Marke; die Anleitung steht jetzt immer da,
mit Platzhalter statt Klartext.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Guido
2026-08-22 23:49:00 +02:00
co-authored by Claude Opus 5
parent 5ff9b63d0a
commit 4a17b520b6
+14 -8
View File
@@ -30,6 +30,9 @@ export default function Geraetemarken() {
const [busy, setBusy] = useState(false); const [busy, setBusy] = useState(false);
const basis = useMemo(() => window.location.origin, []); const basis = useMemo(() => window.location.origin, []);
// In der Anleitung steht der Klartext nur, solange die Marke frisch ist –
// danach ein Platzhalter, denn wir haben ihn selbst nicht mehr.
const markeText = frisch ? frisch.token : "<deine Marke>";
async function laden() { async function laden() {
try { try {
@@ -124,7 +127,15 @@ export default function Geraetemarken() {
<Icon name="copy" size={14} /> {t("tokens.copy")} <Icon name="copy" size={14} /> {t("tokens.copy")}
</button> </button>
</div> </div>
<details style={{ marginTop: "var(--sp-3)" }} open> <button className="btn sm ghost" style={{ marginTop: "var(--sp-2)" }}
onClick={() => setFrisch(null)}>
{t("tokens.hide")}
</button>
</div>
)}
<div style={{ marginTop: "var(--sp-4)" }}>
<details>
<summary>{t("tokens.guideTitle")}</summary> <summary>{t("tokens.guideTitle")}</summary>
<p className="muted small">{t("tokens.guideNoDownload")}</p> <p className="muted small">{t("tokens.guideNoDownload")}</p>
<ol className="muted small" style={{ paddingLeft: "1.2em" }}> <ol className="muted small" style={{ paddingLeft: "1.2em" }}>
@@ -142,9 +153,9 @@ export default function Geraetemarken() {
</div> </div>
<div className="input-with-button" style={{ marginTop: 4 }}> <div className="input-with-button" style={{ marginTop: 4 }}>
<input readOnly className="selectable" <input readOnly className="selectable"
value={`X-Certain-Token: ${frisch.token}`} /> value={`X-Certain-Token: ${markeText}`} />
<button type="button" className="btn sm" <button type="button" className="btn sm"
onClick={() => kopieren(`X-Certain-Token: ${frisch.token}`)}> onClick={() => kopieren(`X-Certain-Token: ${markeText}`)}>
<Icon name="copy" size={14} /> <Icon name="copy" size={14} />
</button> </button>
</div> </div>
@@ -183,12 +194,7 @@ export default function Geraetemarken() {
</ul> </ul>
<p className="muted small">{t("tokens.fileGuideNote")}</p> <p className="muted small">{t("tokens.fileGuideNote")}</p>
</details> </details>
<button className="btn sm ghost" style={{ marginTop: "var(--sp-2)" }}
onClick={() => setFrisch(null)}>
{t("tokens.hide")}
</button>
</div> </div>
)}
{marken.length > 0 && ( {marken.length > 0 && (
<div className="account-list" style={{ marginTop: "var(--sp-3)" }}> <div className="account-list" style={{ marginTop: "var(--sp-3)" }}>