<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://elixirblocks.com/index.php?action=history&amp;feed=atom&amp;title=Liveview_Text_Search_and_Highlight_Example_App</id>
	<title>Liveview Text Search and Highlight Example App - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://elixirblocks.com/index.php?action=history&amp;feed=atom&amp;title=Liveview_Text_Search_and_Highlight_Example_App"/>
	<link rel="alternate" type="text/html" href="http://elixirblocks.com/index.php?title=Liveview_Text_Search_and_Highlight_Example_App&amp;action=history"/>
	<updated>2026-06-02T06:21:35Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.1</generator>
	<entry>
		<id>http://elixirblocks.com/index.php?title=Liveview_Text_Search_and_Highlight_Example_App&amp;diff=1910&amp;oldid=prev</id>
		<title>Admin: Created page with &quot;&lt;source&gt; # lib/my_app_web/live/json_search_live.ex defmodule AppWeb.SandboxLive do   use AppWeb, :live_view    def mount(_params, _session, socket) do     {:ok, assign(socket, text: &quot;Hello world! This is a test. Hello again!&quot;, search: &quot;&quot;)}   end    def handle_event(&quot;search_change&quot;, %{&quot;value&quot; =&gt; search}, socket) do     {:noreply, assign(socket, search: search)}   end    def handle_event(&quot;text_change&quot;, %{&quot;value&quot; =&gt; text}, socket) do     {:noreply, assign(socket, text: text...&quot;</title>
		<link rel="alternate" type="text/html" href="http://elixirblocks.com/index.php?title=Liveview_Text_Search_and_Highlight_Example_App&amp;diff=1910&amp;oldid=prev"/>
		<updated>2025-07-31T14:58:30Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;lt;source&amp;gt; # lib/my_app_web/live/json_search_live.ex defmodule AppWeb.SandboxLive do   use AppWeb, :live_view    def mount(_params, _session, socket) do     {:ok, assign(socket, text: &amp;quot;Hello world! This is a test. Hello again!&amp;quot;, search: &amp;quot;&amp;quot;)}   end    def handle_event(&amp;quot;search_change&amp;quot;, %{&amp;quot;value&amp;quot; =&amp;gt; search}, socket) do     {:noreply, assign(socket, search: search)}   end    def handle_event(&amp;quot;text_change&amp;quot;, %{&amp;quot;value&amp;quot; =&amp;gt; text}, socket) do     {:noreply, assign(socket, text: text...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;source&amp;gt;&lt;br /&gt;
# lib/my_app_web/live/json_search_live.ex&lt;br /&gt;
defmodule AppWeb.SandboxLive do&lt;br /&gt;
  use AppWeb, :live_view&lt;br /&gt;
&lt;br /&gt;
  def mount(_params, _session, socket) do&lt;br /&gt;
    {:ok, assign(socket, text: &amp;quot;Hello world! This is a test. Hello again!&amp;quot;, search: &amp;quot;&amp;quot;)}&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def handle_event(&amp;quot;search_change&amp;quot;, %{&amp;quot;value&amp;quot; =&amp;gt; search}, socket) do&lt;br /&gt;
    {:noreply, assign(socket, search: search)}&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def handle_event(&amp;quot;text_change&amp;quot;, %{&amp;quot;value&amp;quot; =&amp;gt; text}, socket) do&lt;br /&gt;
    {:noreply, assign(socket, text: text)}&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  def render(assigns) do&lt;br /&gt;
    ~H&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;p-4&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h1 class=&amp;quot;text-xl mb-4&amp;quot;&amp;gt;Search Test&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;div class=&amp;quot;mb-4&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;input&lt;br /&gt;
          type=&amp;quot;text&amp;quot;&lt;br /&gt;
          value={@search}&lt;br /&gt;
          phx-keyup=&amp;quot;search_change&amp;quot;&lt;br /&gt;
          placeholder=&amp;quot;Search...&amp;quot;&lt;br /&gt;
          class=&amp;quot;w-full p-2 border&amp;quot;&lt;br /&gt;
        /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;div class=&amp;quot;mb-4&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;textarea&lt;br /&gt;
          rows=&amp;quot;4&amp;quot;&lt;br /&gt;
          phx-keyup=&amp;quot;text_change&amp;quot;&lt;br /&gt;
          class=&amp;quot;w-full p-2 border&amp;quot;&lt;br /&gt;
        &amp;gt;&amp;lt;%= @text %&amp;gt;&amp;lt;/textarea&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;div class=&amp;quot;border p-4 bg-gray-100&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;%= if @search != &amp;quot;&amp;quot; do %&amp;gt;&lt;br /&gt;
          &amp;lt;%= raw(String.replace(@text, ~r/#{Regex.escape(@search)}/i, &amp;quot;&amp;lt;span style='background: yellow'&amp;gt;\\0&amp;lt;/span&amp;gt;&amp;quot;)) %&amp;gt;&lt;br /&gt;
        &amp;lt;% else %&amp;gt;&lt;br /&gt;
          &amp;lt;%= @text %&amp;gt;&lt;br /&gt;
        &amp;lt;% end %&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>