abstract class UI::Screen

Overview

Abstract base class for screens. Authors subclass UI::Screen and implement #build(context) to return a UI::View tree.

Screens are stateless — the per-request data lives on ScreenContext. A screen instance is constructed fresh per render.

class SignInScreen < UI::Screen
  def build(context : UI::ScreenContext) : UI::View
    form = UI::Form.new(
      action: "/sign_in/submit",
      csrf_token: context.csrf_token,
    )
    form << UI::TextField.new(placeholder: "Email", name: "email",
                              text: context.params["email"]? || "")
    form << UI::SecureField.new(placeholder: "Password", name: "password")
    form << UI::Button.new("Sign in", type: UI::Button::Type::Submit)
    form
  end
end

Defined in:

asset_pipeline/amber_integration.cr

Instance Method Summary

Instance Method Detail

abstract def build(context : ScreenContext) : UI::View #

[View source]