Class: RSpecTelemetry::Trace::Viewer::AppRenderer

Inherits:
Object
  • Object
show all
Defined in:
lib/rspec_telemetry/trace/viewer/app_renderer.rb

Defined Under Namespace

Classes: Result, State

Constant Summary collapse

DIVIDER =
TuiTui::Style.new(attrs: [:dim])

Instance Method Summary collapse

Instance Method Details

#render(state) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/rspec_telemetry/trace/viewer/app_renderer.rb', line 36

def render(state)
  canvas = TuiTui::Canvas.blank(state.size, chrome: state.chrome)
  state.list.ensure_visible(state.regions.list.rows)

  TimeBar.new(current_ms: state.screen.time_bar_current, total_ms: state.document.end_wall_ms)
    .draw(canvas, state.regions.time) if state.regions.time
  state.screen.draw_list(canvas, state.regions.list, focused: state.focused?(:timeline))
  detail_scroll = draw_detail(canvas, state)
  draw_divider(canvas, state.regions) if state.regions.divider
  state.source_view.draw(canvas, state.regions.source, state.screen.current_source) if state.regions.source
  draw_status(canvas, state) if state.regions.status
  state.modal&.draw(canvas, state.size)

  Result.new(canvas: canvas, detail_scroll: detail_scroll || state.detail_scroll)
end