Sha256: a7818f4c4fd45720498ebb681af7afbe4814f1b840beb1f16bcb99f643dfce1d

Contents?: true

Size: 426 Bytes

Versions: 3

Compression:

Stored size: 426 Bytes

Contents

class CountdownComponent < TurboLive::Component
  state :countdown, Integer

  def view
    div do
      if countdown.nil?
        button(**on(click: :start)) { "Start!" }
      else
        h1 { countdown }
        every(1000, :countdown) if countdown >= 1
      end
    end
  end

  def update(input)
    case input
    in [:countdown]
      self.countdown -= 1
    in [:start]
      self.countdown = 1000
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
turbo_live-0.2.0 examples/countdown_component.rb
turbo_live-0.1.3 examples/countdown_component.rb
turbo_live-0.1.2 examples/countdown_component.rb