Werte für mehrere Funktionen, und Anlegen frischt die Auswahl auf
Zwei Nachzügler zu den Modul-Seiten. Die Thread-Archivdauer gilt für Tickets und Modmail, hing aber nur an Tickets — auf der Modmail-Seite fehlte sie also. `module` darf jetzt eine Liste sein; nach außen kommt immer eine, damit niemand zwischen einem und mehreren unterscheiden muss. Und beim Anlegen aus dem Panel wurde nur die Einstellung gesetzt, nicht die Kanalliste nachgeladen. Der frische Kanal stand damit zwar in der Einstellung, fehlte aber in der Auswahl — das Feld sah leer aus, obwohl es gesetzt war. Aufgefallen im Browser-Test: „Einsatzbereit" stand da, die Auswahl daneben war leer. Jetzt holt reloadSettings Kanäle, Rollen und Einstellungen frisch; das gilt für den Einzelknopf, den Assistenten und die Modul-Seiten gleichermaßen. Nachgeprüft: Kanal über die Status-Liste anlegen, dann ohne Neuladen nach Feeds wechseln — dort steht #dev-log. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -542,8 +542,7 @@ export default function Settings({ me }) {
|
||||
try {
|
||||
const res = await apiPost('/api/setup/run', { kategorie: plan.kategorie });
|
||||
setModules(res.modules);
|
||||
setForm(res.settings);
|
||||
setData((d) => (d ? { ...d, settings: res.settings } : d));
|
||||
await reloadSettings();
|
||||
setSetupResult(res.ergebnisse);
|
||||
setPlan(null);
|
||||
const neu = res.ergebnisse.filter((r) => r.ok && !r.wiederverwendet).length;
|
||||
@@ -555,16 +554,25 @@ export default function Settings({ me }) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Kanäle, Rollen und Einstellungen neu holen. Nötig nach dem Anlegen: der
|
||||
* frische Kanal steht sonst zwar in der Einstellung, fehlt aber in der
|
||||
* Auswahlliste — das Feld sähe leer aus, obwohl es gesetzt ist.
|
||||
*/
|
||||
async function reloadSettings() {
|
||||
const frisch = await apiGet('/api/settings').catch(() => null);
|
||||
if (!frisch) return;
|
||||
setData(frisch);
|
||||
setForm(frisch.settings);
|
||||
}
|
||||
|
||||
/** Fehlenden Kanal / fehlende Rolle vom Bot anlegen lassen */
|
||||
async function createMissing(entry) {
|
||||
setCreating(entry.setting);
|
||||
try {
|
||||
const res = await apiPost('/api/setup/create', { setting: entry.setting });
|
||||
setModules(res.modules);
|
||||
// Die neue Auswahl steht sofort im Formular — und zählt nicht als
|
||||
// ungespeicherte Änderung, weil der Vergleichsstand mitwandert.
|
||||
setForm(res.settings);
|
||||
setData((d) => (d ? { ...d, settings: res.settings } : d));
|
||||
await reloadSettings();
|
||||
flash(res.wiederverwendet
|
||||
? `✓ Vorhandenen ${res.art === 'rolle' ? 'Rolle' : 'Kanal'} „${res.name}" verknüpft`
|
||||
: `✓ ${res.art === 'rolle' ? 'Rolle' : 'Kanal'} „${res.name}" angelegt`);
|
||||
@@ -2378,6 +2386,7 @@ export default function Settings({ me }) {
|
||||
welcomePreviewUrl={welcomePreviewUrl}
|
||||
flash={flash}
|
||||
goTab={setTab}
|
||||
reloadSettings={reloadSettings}
|
||||
/>
|
||||
) : (
|
||||
<div className="settings-section">
|
||||
|
||||
Reference in New Issue
Block a user