User:Admin

From ElixirBlocks
Revision as of 18:31, 16 June 2023 by Admin (talk | contribs)
Jump to: navigation, search

Create two working minimalistic LiveViews.

One is named SendView and the other is ReceiveView .

The SendView consist of a single form field to send data to RecieveView. ReceiveView contains code to renders SendView data to its page.

To understand web socket configuration we will:

1. Create a one way data connection between the two LiveViews and explain clearly the relationship between

2. Edit the code to create a two-way connection between both live views.

3. Combine both LiveViews into one live view to send and receive.

4. Write code to store realtime chat content to a database.






  • How to Create Database Seed Data.
  • How to Use Generators in a Real World Project
  • How to Work with Database Data via Basic Commands and Custom Change sets.
  • How to Render Database Data to LiveView (via Context Commands).
  • How to Create a Chat using PubSub.
  • How to Create Event Handlers in LiveView
  • How to Create a Dynamic Route from Scratch.
  • How to Use Elixirs Template language
  • How to Work with Modal
  • How to Use CSS From Scratch (Without bundler)
  • How to use JS hooks

_________________________________________________

https://elixirschool.com/blog/live-view-live-component



Note:

mix phx.gen.html Alerts Alert alerts title:string content:text enabled:boolean


defmodule AppWeb.PageLive do
   use AppWeb, :live_view  
   alias App.Alerts
   def mount(_params, _session, socket)  do
	 {:ok, assign(socket, alerts: Alerts.list_alerts())}  
   end

   def render(assigns) do
     ~H"""
        <%= for alert <- @alerts do %>
        	<%= if alert.enabled  do %>
              <div><%= alert.content%></div>
              <% end %>

        <% end %>

	 """ 
   end

end

#_____________________________

  def check_for_single_selection(data) do 

      list = App.Alerts.list_alerts()

      IO.inspect list

      result = Enum.filter(list, fn x -> x.enabled == true end)
      IO.inspect "WORK_____________________________"  
      IO.inspect result 
      IO.inspect "WORK_____________________________"

      data

  end

__________________________________________________

Complex pattern matching https://www.youtube.com/watch?v=gCVWrM5BNVE

Genservers (and related, agent,task etc)


__________________________________________________

ECTO

query = from "artists", select:[:name]

Verbose:

Ecto.Query.from("artists", select[:name])


Repo.all(query)

  1. => [%{name: "Miles Davis"}, %{name: "Bill Evans"}]



Repo.to_sql(:all, query)