File tree Expand file tree Collapse file tree 1 file changed +12
-0
lines changed
lib/algora_web/live/contract Expand file tree Collapse file tree 1 file changed +12
-0
lines changed Original file line number Diff line number Diff line change @@ -484,6 +484,10 @@ defmodule AlgoraWeb.Contract.ViewLive do
484484 not ( socket . assigns . all_contexts |> Enum . map ( & & 1 . id ) |> Enum . member? ( contract . client_id ) ) do
485485 { :ok , raise ( AlgoraWeb.NotFoundError ) }
486486 else
487+ if connected? ( socket ) do
488+ Chat . subscribe ( thread . id )
489+ end
490+
487491 { :ok ,
488492 socket
489493 |> assign ( :contract , contract )
@@ -501,6 +505,14 @@ defmodule AlgoraWeb.Contract.ViewLive do
501505 end
502506 end
503507
508+ def handle_info ( % Chat.Message { } = message , socket ) do
509+ if message . id in Enum . map ( socket . assigns . messages , & & 1 . id ) do
510+ { :noreply , socket }
511+ else
512+ { :noreply , Phoenix.Component . update ( socket , :messages , & ( & 1 ++ [ message ] ) ) }
513+ end
514+ end
515+
504516 def handle_event ( "send_message" , % { "message" => content } , socket ) do
505517 { :ok , message } =
506518 Chat . send_message (
You can’t perform that action at this time.
0 commit comments