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:
@@ -59,12 +59,12 @@ function Feld({ feld, value, onChange, PickSelect, channelItems, roleItems }) {
|
||||
* form: object, setForm: (f: object) => void,
|
||||
* PickSelect: Function, channelItems: Array, roleItems: Array,
|
||||
* welcomePreviewUrl: string, flash: (msg: string) => void,
|
||||
* goTab: (tab: string) => void,
|
||||
* goTab: (tab: string) => void, reloadSettings: () => Promise<void>,
|
||||
* }} props
|
||||
*/
|
||||
export default function ModulePage(props) {
|
||||
const { id, onBack, onToggle, form, setForm, PickSelect, channelItems, roleItems,
|
||||
welcomePreviewUrl, flash, goTab } = props;
|
||||
welcomePreviewUrl, flash, goTab, reloadSettings } = props;
|
||||
|
||||
const [detail, setDetail] = useState(null);
|
||||
const [fehler, setFehler] = useState(false);
|
||||
@@ -104,7 +104,7 @@ export default function ModulePage(props) {
|
||||
if (Object.keys(geaendert).length === 0) return;
|
||||
try {
|
||||
const res = await apiPut('/api/tuning', geaendert);
|
||||
setDetail((d) => ({ ...d, werte: res.values.filter((w) => w.module === d.id) }));
|
||||
setDetail((d) => ({ ...d, werte: res.values.filter((w) => w.modules.includes(d.id)) }));
|
||||
setWerteEntwurf({});
|
||||
flash('✓ Werte gespeichert');
|
||||
} catch (error) {
|
||||
@@ -115,7 +115,9 @@ export default function ModulePage(props) {
|
||||
async function anlegen(setting) {
|
||||
try {
|
||||
const res = await apiPost('/api/setup/create', { setting });
|
||||
setForm(res.settings);
|
||||
// Auffrischen statt nur setzen: der neue Kanal muss auch in der
|
||||
// Auswahlliste stehen, sonst wirkt das Feld leer.
|
||||
await reloadSettings();
|
||||
laden();
|
||||
flash(res.wiederverwendet ? `✓ „${res.name}" verknüpft` : `✓ „${res.name}" angelegt`);
|
||||
} catch (error) {
|
||||
|
||||
Reference in New Issue
Block a user