PrimerLive.Theme (PrimerLive v0.1.13)
Link to this section Summary
Functions
Adds theme_state and default_theme_state to the socket.assigns.
Configures menu options from supplied params
Creates HTML (data) attributes from the supplied theme state.
Compares the supplied state with the supplied default state.
Reset link identifier to distinguish in update.
Generic key used for
Route for session api calls.
Theme data stored in the session.
Returns an updated theme state by putting the supplied data in the theme state. If key is the reset key, returns the default theme state.
Link to this section Functions
add_to_socket(socket, session)
add_to_socket(socket, session, default_theme_state)
Adds theme_state and default_theme_state to the socket.assigns.
default_theme_state()
html_attributes(theme_state)
html_attributes(theme_state, default_theme_state)
Creates HTML (data) attributes from the supplied theme state.
examples
Examples
iex> PrimerLive.Theme.html_attributes(
...> %{
...> color_mode: "light",
...> light_theme: "light_high_contrast",
...> dark_theme: "dark_high_contrast"
...> }
...> )
[data_color_mode: "light", data_light_theme: "light_high_contrast", data_dark_theme: "dark_high_contrast"]
iex> PrimerLive.Theme.html_attributes(
...> %{
...> },
...> %{
...> color_mode: "auto",
...> light_theme: "light",
...> dark_theme: "dark"
...> }
...> )
[data_color_mode: "auto", data_light_theme: "light", data_dark_theme: "dark"]
iex> PrimerLive.Theme.html_attributes(
...> %{
...> light_theme: "light_high_contrast",
...> },
...> %{
...> color_mode: "auto",
...> light_theme: "light",
...> dark_theme: "dark"
...> }
...> )
[data_color_mode: "auto", data_light_theme: "light_high_contrast", data_dark_theme: "dark"]
iex> PrimerLive.Theme.html_attributes(
...> %{
...> },
...> %{
...> color_mode: "auto",
...> }
...> )
[data_color_mode: "auto"]
is_default_theme(theme, default_theme_state)
Compares the supplied state with the supplied default state.
examples
Examples
iex> PrimerLive.Theme.is_default_theme(
...> %{
...> color_mode: "auto",
...> light_theme: "light",
...> dark_theme: "dark"
...> },
...> PrimerLive.Theme.default_theme_state()
...> )
true
iex> PrimerLive.Theme.is_default_theme(
...> %{
...> color_mode: "light",
...> light_theme: "light_high_contrast",
...> dark_theme: "dark_high_contrast"
...> },
...> PrimerLive.Theme.default_theme_state()
...> )
false
reset_key()
Reset link identifier to distinguish in update.
session_key()
Generic key used for:
- session route
- JS event name ("phx:" prefix is assigned automatically)
session_route()
Route for session api calls.
For example:
scope "/api", MyAppWeb do
pipe_through :api
post PrimerLive.Theme.session_route(), SessionController, :set
end
session_theme_key()
Theme data stored in the session.
update(theme_state, map, default_theme_state)
Returns an updated theme state by putting the supplied data in the theme state. If key is the reset key, returns the default theme state.