Current section

Files

Jump to
ash_admin lib ash_admin components resource sensitive_attribute.ex
Raw

lib/ash_admin/components/resource/sensitive_attribute.ex

defmodule AshAdmin.Components.Resource.SensitiveAttribute do
@moduledoc false
use Phoenix.LiveComponent
import AshAdmin.CoreComponents
def mount(socket) do
{:ok, assign(socket, viewed: false)}
end
def render(assigns) do
assigns = assign(assigns, present?: assigns.value not in [nil, ""])
~H"""
<div>
<span :if={@present? && !@viewed} class="italic">
--redacted--
<span class="cursor-pointer" phx-click="toggle_sensitive_attribute" phx-target={@myself}>
<.icon name="hero-eye-solid" class="w-5 h-5 text-gray-500" />
</span>
</span>
<span :if={@present? && @viewed}>
<%= render_slot(@inner_block) %>
<span class="cursor-pointer" phx-click="toggle_sensitive_attribute" phx-target={@myself}>
<.icon name="hero-eye-slash-solid" class="w-5 h-5 text-gray-500" />
</span>
</span>
</div>
"""
end
def handle_event("toggle_sensitive_attribute", _params, socket) do
{:noreply, assign(socket, viewed: !socket.assigns.viewed)}
end
end