Packages
livebook
0.7.0
0.19.8
0.19.7
0.19.6
0.19.5
0.19.4
0.19.3
0.19.2
0.19.1
0.19.0
0.18.6
0.18.5
0.18.4
0.18.3
0.18.2
0.18.1
0.18.0
0.17.3
0.17.2
0.17.1
0.17.0
0.16.4
0.16.3
0.16.2
0.16.1
0.16.0
0.15.5
0.15.4
0.15.3
0.15.2
0.15.1
0.15.0
0.14.7
0.14.6
0.14.5
0.14.4
0.14.3
0.14.2
0.14.1
0.14.0
0.14.0-rc.1
0.14.0-rc.0
0.13.3
0.13.2
0.13.1
0.13.0
0.12.1
0.12.0
0.11.4
0.11.3
0.11.2
0.11.1
0.11.0
0.10.0
0.9.3
0.9.2
0.9.1
0.9.0
0.8.2
0.8.1
0.8.0
0.7.2
0.7.1
0.7.0
0.6.3
0.6.2
0.6.1
0.6.0
0.5.2
0.5.1
0.5.0
0.4.1
0.4.0
0.3.2
0.3.1
0.3.0
0.2.3
0.2.2
0.2.1
0.2.0
0.1.2
0.1.1
0.1.0
Automate code & data workflows with interactive notebooks
Current section
Files
Jump to
Current section
Files
lib/livebook_web/live/user_helpers.ex
defmodule LivebookWeb.UserHelpers do
use Phoenix.Component
import LivebookWeb.LiveHelpers
alias Phoenix.LiveView.JS
@doc """
Renders user avatar.
## Examples
<.user_avatar user={@user} class="h-20 w-20" text_class="text-3xl" />
"""
def user_avatar(assigns) do
assigns =
assigns
|> assign_new(:class, fn -> "w-full h-full" end)
|> assign_new(:text_class, fn -> "" end)
~H"""
<div
class={"#{@class} rounded-full flex items-center justify-center"}
style={"background-color: #{@user.hex_color}"}
aria-hidden="true"
>
<div class={"#{@text_class} text-gray-100 font-semibold"}>
<%= avatar_text(@user.name) %>
</div>
</div>
"""
end
defp avatar_text(nil), do: "?"
defp avatar_text(name) do
name
|> String.split()
|> Enum.map(&String.at(&1, 0))
|> Enum.map(&String.upcase/1)
|> case do
[initial] -> initial
initials -> List.first(initials) <> List.last(initials)
end
end
@doc """
Renders the current user edit form in a modal.
## Examples
<.current_user_modal current_user={@current_user} />
"""
def current_user_modal(assigns) do
~H"""
<.modal id="user-modal" class="w-full max-w-sm">
<.live_component
module={LivebookWeb.UserComponent}
id="user"
user={@current_user}
on_save={hide_current_user_modal()}
/>
</.modal>
"""
end
def show_current_user_modal(js \\ %JS{}), do: show_modal(js, "user-modal")
def hide_current_user_modal(js \\ %JS{}), do: hide_modal(js, "user-modal")
end