SusLobbyScreenContent

Оболочка хаба / лобби — back, title chip, tabs, empty alert, хост child-view, footer Ready + Vs AI.
Пакет
SusGame · Экраны (коммерческий)
Свойства
| Имя | Тип | По умолчанию | |
|---|---|---|---|
Title | Prop<string> | "Hub" | |
EmptyText | Prop<string> | "No data" | |
CanAct | Prop<bool> | false | |
HasData | Prop<bool> | false | |
ActionLabel | Prop<string> | "Ready" | |
SoloActionLabel | Prop<string> | "Vs AI" |
Слоты
Слотов нет.
События
Публичных событий нет.
Хуки стиля
Контракт USS-классов — внешний вид переопределяется без правки C#. Состояния переключаются этими классами:
sc-lobby-footersc-lobby-headersus-lobby-screensus-lobby-screen__back-btnsus-lobby-screen__child-viewsus-lobby-screen__contentsus-lobby-screen__empty-textsus-lobby-screen__rowsus-lobby-screen__row-iconsus-lobby-screen__row-labelsus-lobby-screen__row-valuesus-lobby-screen__rowssus-lobby-screen__solo-action-btnsus-lobby-screen__tabssus-lobby-screen__titlesus-lobby-screen--limbo
Использование
Привяжите пропы chrome; заполните Tabs / ChildViewHost со стороны хоста или дочерних view. Управляйте footer через CanAct.
xml
<template>
<sus:SusLobbyScreenContent
:Title="Title.Value"
:EmptyText="Empty.Value"
:CanAct="Ready.Value"
:ActionLabel="Act.Value"
:SoloActionLabel="Solo.Value"
/>
</template>
<script>
public Prop<string> Title = new("Hub");
public Prop<string> Empty = new("No data");
public Prop<bool> Ready = new(false);
public Prop<string> Act = new("Ready");
public Prop<string> Solo = new("Vs AI");
</script>csharp
var lobby = new SusLobbyScreenContent();
lobby.Title.Value = "Multiplayer";
lobby.EmptyText.Value = "No parties";
lobby.CanAct.Value = true;
lobby.ActionLabel.Value = "Ready";
lobby.SoloActionLabel.Value = "Vs AI";
// After mount:
lobby.Tabs.Items.Value = new List<SusTabs.TabItem> {
new() { Title = "Parties", Value = "parties" },
new() { Title = "Friends", Value = "friends" },
};
lobby.ChildViewHost.Add(myListView);
lobby.BackBtn.OnClick += () => { /* back */ };
lobby.ActionBtn.OnClick += () => { /* ready */ };
lobby.SoloActionBtn.OnClick += () => { /* vs AI */ };| Prop / API | Роль |
|---|---|
Title | Подпись чипа заголовка |
EmptyText | Empty-alert; пустая строка → скрыт |
CanAct | Включает/отключает обе кнопки footer (Disabled = !CanAct) |
ActionLabel / SoloActionLabel | Подписи Ready / Vs AI |
HasData | Объявленный Prop<bool> — не подключён к UI в текущем пине |
BackBtn / Tabs / EmptyAlert / ActionBtn / SoloActionBtn | Подключение со стороны хоста |
ChildViewHost | Сюда монтируется контент списка/деталей |
Заметки
- USS-модификаторы
--limboесть на root для прозрачных overlay-хабов (класс добавляется со стороны хоста). - Tabs изначально пустые — хост должен задать
Items/Model. HasDataизвлекается в API, но не используетсяWireProps; пустое состояние управляется черезEmptyText+ видимость со стороны хоста.