defmodule Snowhite.Modules.Suntime do use Snowhite.Builder.Module import Snowhite.Builder.Module alias __MODULE__ def mount(socket) do socket = socket |> assign(:days, []) send(self(), :updated) {:ok, socket} end def module_options do %{ timezone: {:optional, "UTC"}, locale: {:optional, "en"}, longitude: :required, latitude: :required } end # Icon by Yelena Polyakov https://thenounproject.com/Yelena @sunset_icon """ """ # Icon by Yelena Polyakov https://thenounproject.com/Yelena @sunrise_icon """ """ def render(assigns) do sunrise_icon = @sunrise_icon sunset_icon = @sunset_icon ~L"""
""" end defp format_date(date, assigns) do locale = get_option(assigns, :locale) Timex.lformat!(date, "{WDfull} {D} {Mshort}", locale) end def handle_info(:updated, socket) do {:noreply, update(socket)} end def update(socket) do days = Suntime.Server.days() assign(socket, :days, days) end def applications(options) do [ {Suntime.Server, options} ] end end