К содержимому

SusBottomSheet

SusBottomSheet

Нижний action sheet с backdrop, высотой и слотами header / body / footer.

Пакет

SusKit · Молекулы (коммерческий)

Открыть в песочнице

SusKit · Molecules

Свойства

ИмяТипПо умолчанию
ModelProp<bool>falsev-model
PersistentProp<bool>falsev-model
InsetProp<bool>falsev-model
HeightProp<float>280fv-model

Слоты

Имя
header
(по умолчанию)
footer

События

ИмяПолеPayload
OpenedOnOpened
ClosedOnClosed
BackdropClickOnBackdropClick

Хуки стиля

Контракт USS-классов — внешний вид переопределяется без правки C#. Состояния переключаются этими классами:

  • sus-bottom-sheet
  • sus-bottom-sheet__backdrop
  • sus-bottom-sheet__body
  • sus-bottom-sheet__footer
  • sus-bottom-sheet__handle
  • sus-bottom-sheet__header
  • sus-bottom-sheet__panel
  • sus-bottom-sheet--inset
  • sus-bottom-sheet--open
  • sus-slot

Использование

xml
<template>
  <sus:SusBottomSheet :Model="Open.Value"
                      Height="200"
                      :Persistent="Persistent.Value"
                      @opened="OnOpened"
                      @closed="OnClosed">
    <template #header>
      <ui:Label text="Quick actions" />
    </template>
    <ui:Label text="Trade · Invite · Report" />
    <template #footer>
      <sus:SusButton Text="Close" Variant="text" @click="Open.Value = false" />
    </template>
  </sus:SusBottomSheet>
</template>

<script>
public Prop<bool> Open = new(false);
public Prop<bool> Persistent = new(false);
void OnOpened() { }
void OnClosed() { }
</script>
csharp
var sheet = new SusBottomSheet();
sheet.Model.Value = true;
sheet.Height.Value = 200f;
sheet.OnOpened += () => { /* … */ };
sheet.Slot("header")?.Add(new Label("Quick actions"));
sheet.Slot("default")?.Add(new Label("Trade · Invite · Report"));
// Prefer Slot("default") over Add() — Add() lands on the overlay root.
sheet.Open(); // or sheet.Model.Value = true;

Заметки

  • Persistent оставляет sheet открытым при клике на backdrop / нажатии Escape.
  • Inset подтягивает панель внутрь от краёв экрана.