Module: TurboPresence::ViewHelper

Defined in:
lib/turbo_presence/view_helper.rb

Instance Method Summary collapse

Instance Method Details

#turbo_presence_for(record, cursors: true, typing: true, class: nil, &block) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/turbo_presence/view_helper.rb', line 5

def turbo_presence_for(record, cursors: true, typing: true, class: nil, &block)
  token     = RoomToken.generate(record)
  identity  = TurboPresence.identify_current_user(current_user)
  identity[:color] ||= Color.for_user(identity[:id])
  css_class = binding.local_variable_get(:class)

  tag.div(
    data: {
      controller: "turbo-presence",
      turbo_presence_room_token_value:  token,
      turbo_presence_identity_value:    identity.to_json,
      turbo_presence_cursors_value:     cursors,
      turbo_presence_typing_value:      typing,
      turbo_presence_throttle_value:    TurboPresence.configuration.cursor_throttle_ms
    },
    class: ["turbo-presence", css_class].compact.join(" "),
    &block
  )
end