import { useEffect, useState } from 'react' import { api } from './api' /** Wie der Dienst sich nennt — an EINER Stelle. * * Vorher stand „d4rk_media" viermal fest im Quelltext: in der Kopfzeile, auf * der Anmeldeseite, unter einer Freigabe und im Tab-Titel. Das ist der * Repository-Name, nicht der Name des Dienstes — und wer ihn ändern wollte, * musste vier Stellen finden und eine davon übersehen. * * Er kommt jetzt vom Server, aus derselben Einstellung, die auch in der * Fußzeile der Discord-Meldungen steht (`D4RKST3R // MEDIA`). Ein zweiter * Name für die Oberfläche wäre ein zweiter, der beim nächsten Mal anders * lautet. * * DER STANDARD STEHT HIER TROTZDEM: bis die Antwort da ist, muss etwas in der * Kopfzeile stehen, und ein leerer Platz, der eine Zehntelsekunde später * zuspringt, sieht aus wie ein Fehler. */ export const MARKE_STANDARD = 'D4RKST3R' /** Aus der Marke den Namen des Dienstes: „D4RKST3R" → „D4RKST3R Media". * * Die Marke allein wäre falsch — sie steht über allem, was hier läuft * (Bot, Hub, Gitea). Dieser Dienst ist ihr Medienteil, und genau so heißt er * auch in der Discord-Fußzeile. */ export const dienstName = (marke: string) => `${marke} Media` /** Der Name für die angemeldete Oberfläche. Holt ihn einmal und merkt ihn sich * für die Lebensdauer der Seite — er ändert sich nicht zwischen zwei Klicks. */ export function useMarke(): string { const [marke, setMarke] = useState(MARKE_STANDARD) useEffect(() => { let lebt = true api.authConfig() .then((c) => lebt && c.marke && setMarke(c.marke)) .catch(() => { /* dann eben der Standard — dafür ist er da */ }) return () => { lebt = false } }, []) // Der Tab-Titel steht in index.html fest und kann die Einstellung nicht // kennen. Hier nachzuziehen ist die einzige Stelle, an der das geht. useEffect(() => { document.title = dienstName(marke) }, [marke]) return marke }