A self-contained Svelte 5
island mounted inside this LiveView. LiveView never touches its DOM
(phx-update="ignore") — all realtime flows over a Phoenix channel the island opens itself.
Open a second browser (or switch users, top-right) to see messages and presence update live.
Click any avatar
to load that person's profile here.
How it's connected
-
props
-
The room list is passed as static config from
ChatLive.
-
context
-
The island reads the page socket + current user from the once-per-page runtime context.
-
channel
-
Joins
chat:<room>; history, new_message
broadcasts and Presence
avatars all ride this topic.
-
live
-
Clicking an avatar pushes
show_profile
to LiveView, which renders the profile card in this column.