We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Post 17
Game Site Journal - 08 Toggle Helper
Published on: 2025-04-18
Tags:
elixir, Blog, LiveView, Game Site, Html/CSS, Buttons
So for this one I wanted to go over the implementation of a toggle switch. I wanted to add this incase there is someone that wants some help doing the Mathematics for a given problem in my MathGame. First off I need to add in a toggle and then deal with the event within Phoenix LiveView. <form phx-change="toggle"> <label class="toggle-switch"> <input class="toggle-switch-check" type="checkbox" name="toggle-switch-check" checked={@toggle} /> <span aria-hidden="true" class="toggle-switch-bar"> <span class="toggle-switch-handle"></span> </span> </label> </form> As you can see some important information here: phx-change="toggle" #will call the event "toggle" on any change to the field. name="toggle-switch-check" #will set the target for better debugging checked={@toggle} #will help to maintain the value of the toggle Once that was done I need to define a couple events that will help us maintain the different states. def handle_event("toggle", %{"toggle-switch-check" => "on"}, socket) do {:noreply, assign(socket, toggle: true)} end def handle_event("toggle", _params, socket) do {:noreply, assign(socket, toggle: false)} end Basically this will toggle the value for the checkbox as needed. Now that we have the check box and a way to change the values we need to set the html to output the vales or nothing. <%= if @toggle do %> <div style="white-space: pre; font-family: monospace;"> ... Put your values for what happens when its toggled true ... </div> <% else %> <div style="white-space: pre; font-family: monospace;"> ... Put your values for what happens when its not toggled true ... </div> <% end %> In this case Ill go over a few things about the style= white-space: pre #preserve white space font-family: monospace #make the font monospace (very letter and space same width That is about it for the toggle and dependent information.
