+ {draft.id != null && (
+
+ Правка объявления
+
+
+ )}
+
+
+
+ patch({ title: e.target.value })}
+ />
+
+
+
+
Текст объявления
+
patch({ html, length })}
+ />
+ TEXT_MAX ? " over" : "")}>
+ {draft.length} / {TEXT_MAX}
+
+
+
+
+
+
+
+ Выключите, если объявление ни к чему тем, кто зарегистрируется после начала показа.
+
+
+ {draft.id != null && (
+ <>
+
+
+ Они увидят объявление ещё раз — с красной пометкой «обновлено» под заголовком.
+
+ >
+ )}
+
+ {error &&
{error}
}
+
+
+
+
+
+
Объявлений пока нет.
+ {items.map((a) => {
+ const [label, badge] = STATUS[a.status];
+ const meta = [
+ `${formatDateTime(a.starts_at)} — ${formatDateTime(a.ends_at)}`,
+ `закрыли ${a.seen_count} из ${a.audience_count}`,
+ ...(a.show_to_new_players ? [] : ["без новых игроков"]),
+ ...(a.revision > 1 ? [`версия ${a.revision}`] : []),
+ ];
+ return (
+
+
+
+
{a.title}
+
+ {meta.join(" · ")}
+
+
+
{label}
+
+
+
+ {a.status === "live" ? (
+
+ ) : (
+
+ )}
+
+
+
+ );
+ })}
+