# Copyright The OpenTelemetry Authors
# SPDX-License-Identifier: Apache-2.0
defmodule FlagdUiWeb.Dashboard do
use FlagdUiWeb, :live_view
alias FlagdUiWeb.CoreComponents
alias FlagdUiWeb.Components.Navbar
def mount(_, _, socket) do
%{"flags" => flags} = GenServer.call(Storage, :read)
{:ok, socket |> assign(:flags, flags)}
end
def render(assigns) do
~H"""
<.form for={@flags}>
{name}
{data["description"]}
"""
end
def handle_event("flag_changed", payload, socket) do
%{"_target" => [target]} = payload
variant = payload[target]
GenServer.cast(Storage, {:write, target, variant})
new_socket = put_flash(socket, :info, "Saved: #{target}")
{:noreply, new_socket}
end
defp get_variants(%{"variants" => variants}), do: Enum.map(variants, fn {key, _} -> key end)
defp get_variants(_), do: []
end