Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use pattern :sessionkey.tap do |session_key| #53

Merged
merged 1 commit into from
Dec 18, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
91 changes: 47 additions & 44 deletions test/dummy/app/views/frames/increment/button_in_frame.html.erb
Original file line number Diff line number Diff line change
@@ -1,65 +1,68 @@
<%= turbo_frame_tag demo_frame_id(@template_path) do %>
<%= cache session[:button_in_frame_count].to_i do %>
<%= render "frames/frame" do %>
<%= render "stats/stats" do %>
<%= render "stats/stat", label: "Counter", role: "counter", value: session[:button_in_frame_count].to_i, class: "!bg-indigo-600 dark:!bg-indigo-900",
value_class: ["!text-indigo-200 dark:!text-indigo-300"], label_class: ["!text-indigo-400 dark:!text-indigo-500"] %>
<% end %>
<% :button_in_frame_count.tap do |session_key| %>
<%= turbo_frame_tag demo_frame_id(@template_path) do %>
<%= cache session[session_key].to_i do %>
<%= render "frames/frame" do %>
<%= render "stats/stats" do %>
<%= render "stats/stat", label: "Counter", role: "counter", value: session[session_key].to_i, class: "!bg-indigo-600 dark:!bg-indigo-900",
value_class: ["!text-indigo-200 dark:!text-indigo-300"], label_class: ["!text-indigo-400 dark:!text-indigo-500"] %>
<% end %>

<p class="my-8">
The buttons below will invoke a reflex before Rails/Hotwire replaces the frame's content.
</p>
<p class="my-8">
The buttons below will invoke a reflex before Rails/Hotwire replaces the frame's content.
</p>

<%= button_tag class: css("flowbite.button.cyan_to_blue", "block mb-8 ml-0 relative"),
data: { turbo_reflex: "CounterReflex#increment", session_key: :button_in_frame_count } do %>
Basic Button
<%= render flowbite(:notification_badge), value: session[:button_in_frame_count].to_i if session[:button_in_frame_count].to_i > 0 %>
<% end %>
<%= button_tag class: css("flowbite.button.cyan_to_blue", "block mb-8 ml-0 relative"),
data: { turbo_reflex: "CounterReflex#increment", session_key: session_key } do %>
Basic Button
<%= render flowbite(:notification_badge), value: session[session_key].to_i if session[session_key].to_i > 0 %>
<% end %>

<%= render component(:code), language: :ruby, class: "text-sm",
path: "app/reflexes/counter_reflex.rb", source_path: "app/views/codes/increment/reflex.rb" %>
<%= render component(:code), language: :ruby, class: "text-sm",
path: "app/reflexes/counter_reflex.rb", source_path: "app/views/codes/increment/reflex.rb" %>

<div class="my-8"></div>
<div class="my-8"></div>

<%= render component(:code), language: :ruby, class: "text-sm",
path: "app/controllers/demos_controller.rb", source_path: "app/views/codes/increment/controller.rb" %>
<%= render component(:code), language: :ruby, class: "text-sm",
path: "app/controllers/demos_controller.rb", source_path: "app/views/codes/increment/controller.rb" %>

<div class="my-8"></div>
<div class="my-8"></div>

<%= render component(:code), language: :erb, class: "text-sm",
path: "app/views/demos/show.html.erb", source_path: "app/views/codes/increment/button_in_frame/show.erb" %>
<%= render component(:code), language: :erb, class: "text-sm",
path: "app/views/demos/show.html.erb", source_path: "app/views/codes/increment/button_in_frame/show.erb" %>

<div class="my-8"></div>
<div class="my-8"></div>

<%= render component(:code), language: :html, class: "text-sm",
path: "Rendered HTML for: /demos/2", source_path: "app/views/codes/increment/button_in_frame/show.html", erb: true %>
<%= render component(:code), language: :html, class: "text-sm",
path: "Rendered HTML for: /demos/2", source_path: "app/views/codes/increment/button_in_frame/show.html", erb: true %>

<%= render component(:divider), class: "my-12" %>
<%= render component(:divider), class: "my-12" %>
<%= Time.current %>

<%= button_to frame_path(params[:id]), method: :patch,
class: css("flowbite.button.cyan_to_blue", "block mb-8 ml-0 relative"),
form: { data: { turbo_reflex: "CounterReflex#increment", session_key: :button_in_frame_count } } do %>
Form Button <small class="ml-2 font-mono opacity-50">button_to</small>
<%= render flowbite(:notification_badge), value: session[:button_in_frame_count].to_i if session[:button_in_frame_count].to_i > 0 %>
<% end %>
<%= button_to frame_path(params[:id]), method: :patch,
class: css("flowbite.button.cyan_to_blue", "block mb-8 ml-0 relative"),
form: { data: { turbo_reflex: "CounterReflex#increment", session_key: session_key } } do %>
Form Button <small class="ml-2 font-mono opacity-50">button_to</small>
<%= render flowbite(:notification_badge), value: session[session_key].to_i if session[session_key].to_i > 0 %>
<% end %>

<%= render component(:code), language: :ruby, class: "text-sm",
path: "app/reflexes/counter_reflex.rb", source_path: "app/views/codes/increment/reflex.rb" %>
<%= render component(:code), language: :ruby, class: "text-sm",
path: "app/reflexes/counter_reflex.rb", source_path: "app/views/codes/increment/reflex.rb" %>

<div class="my-8"></div>
<div class="my-8"></div>

<%= render component(:code), language: :ruby, class: "text-sm",
path: "app/controllers/demos_controller.rb", source_path: "app/views/codes/increment/controller.rb" %>
<%= render component(:code), language: :ruby, class: "text-sm",
path: "app/controllers/demos_controller.rb", source_path: "app/views/codes/increment/controller.rb" %>

<div class="my-8"></div>
<div class="my-8"></div>

<%= render component(:code), language: :erb, class: "text-sm",
path: "app/views/demos/show.html.erb", source_path: "app/views/codes/increment/button_in_frame/show_form.erb" %>
<%= render component(:code), language: :erb, class: "text-sm",
path: "app/views/demos/show.html.erb", source_path: "app/views/codes/increment/button_in_frame/show_form.erb" %>

<div class="my-8"></div>
<div class="my-8"></div>

<%= render component(:code), language: :html, class: "text-sm",
path: "Rendered HTML for: /demos/2", source_path: "app/views/codes/increment/button_in_frame/show_form.html", erb: true %>
<%= render component(:code), language: :html, class: "text-sm",
path: "Rendered HTML for: /demos/2", source_path: "app/views/codes/increment/button_in_frame/show_form.html", erb: true %>
<% end %>
<% end %>
<% end %>
<% end %>
72 changes: 37 additions & 35 deletions test/dummy/app/views/frames/increment/elements_in_frame.html.erb
Original file line number Diff line number Diff line change
@@ -1,51 +1,53 @@
<%= turbo_frame_tag demo_frame_id(@template_path) do %>
<%= cache session[:elements_in_frame_count].to_i do %>
<%= render "frames/frame" do %>
<%= render "stats/stats" do %>
<%= render "stats/stat", label: "Counter", value: session[:elements_in_frame_count].to_i, class: "!bg-indigo-600 dark:!bg-indigo-900",
value_class: ["!text-indigo-200 dark:!text-indigo-300"], label_class: ["!text-indigo-400 dark:!text-indigo-500"] %>
<% end %>
<% :elements_in_frame_count.tap do |session_key| %>
<%= turbo_frame_tag demo_frame_id(@template_path) do %>
<%= cache session[session_key].to_i do %>
<%= render "frames/frame" do %>
<%= render "stats/stats" do %>
<%= render "stats/stat", label: "Counter", value: session[session_key].to_i, class: "!bg-indigo-600 dark:!bg-indigo-900",
value_class: ["!text-indigo-200 dark:!text-indigo-300"], label_class: ["!text-indigo-400 dark:!text-indigo-500"] %>
<% end %>

<p class="my-8">
You can attach reflexes to any element.
</p>
<p class="my-8">
You can attach reflexes to any element.
</p>

<div class="inline-block relative mb-4">
<%= tag.p "P Tag", class: "cursor-pointer", data: { turbo_reflex: "CounterReflex#increment", session_key: :elements_in_frame_count } %>
<%= render flowbite(:notification_badge), value: session[:elements_in_frame_count].to_i, class: "!-right-4" if session[:elements_in_frame_count].to_i > 0 %>
</div>
<div class="inline-block relative mb-4">
<%= tag.p "P Tag", class: "cursor-pointer", data: { turbo_reflex: "CounterReflex#increment", session_key: session_key } %>
<%= render flowbite(:notification_badge), value: session[session_key].to_i, class: "!-right-4" if session[session_key].to_i > 0 %>
</div>

<br>
<br>

<%= tag.div class: "cursor-pointer mb-4 relative inline-block", data: { turbo_reflex: "CounterReflex#increment", session_key: :elements_in_frame_count } do %>
DIV Tag
<%= render flowbite(:notification_badge), value: session[:elements_in_frame_count].to_i, class: "!-right-4" if session[:elements_in_frame_count].to_i > 0 %>
<% end %>
<%= tag.div class: "cursor-pointer mb-4 relative inline-block", data: { turbo_reflex: "CounterReflex#increment", session_key: session_key } do %>
DIV Tag
<%= render flowbite(:notification_badge), value: session[session_key].to_i, class: "!-right-4" if session[session_key].to_i > 0 %>
<% end %>

<br>
<br>

<%= tag.span class: "cursor-pointer mb-12 inline-block relative", data: { turbo_reflex: "CounterReflex#increment", session_key: :elements_in_frame_count } do %>
SPAN Tag
<%= render flowbite(:notification_badge), value: session[:elements_in_frame_count].to_i, class: "!-right-4" if session[:elements_in_frame_count].to_i > 0 %>
<% end %>
<%= tag.span class: "cursor-pointer mb-12 inline-block relative", data: { turbo_reflex: "CounterReflex#increment", session_key: session_key } do %>
SPAN Tag
<%= render flowbite(:notification_badge), value: session[session_key].to_i, class: "!-right-4" if session[session_key].to_i > 0 %>
<% end %>

<%= render component(:code), language: :ruby, class: "text-sm",
path: "app/reflexes/counter_reflex.rb", source_path: "app/views/codes/increment/reflex.rb" %>
<%= render component(:code), language: :ruby, class: "text-sm",
path: "app/reflexes/counter_reflex.rb", source_path: "app/views/codes/increment/reflex.rb" %>

<div class="my-8"></div>
<div class="my-8"></div>

<%= render component(:code), language: :ruby, class: "text-sm",
path: "app/controllers/demos_controller.rb", source_path: "app/views/codes/increment/controller.rb" %>
<%= render component(:code), language: :ruby, class: "text-sm",
path: "app/controllers/demos_controller.rb", source_path: "app/views/codes/increment/controller.rb" %>

<div class="my-8"></div>
<div class="my-8"></div>

<%= render component(:code), language: :erb, class: "text-sm",
path: "app/views/demos/show.html.erb", source_path: "app/views/codes/increment/elements_in_frame/show.erb" %>
<%= render component(:code), language: :erb, class: "text-sm",
path: "app/views/demos/show.html.erb", source_path: "app/views/codes/increment/elements_in_frame/show.erb" %>

<div class="my-8"></div>
<div class="my-8"></div>

<%= render component(:code), language: :html, class: "text-sm",
path: "Rendered HTML for: /demos/4", source_path: "app/views/codes/increment/elements_in_frame/show.html", erb: true %>
<%= render component(:code), language: :html, class: "text-sm",
path: "Rendered HTML for: /demos/4", source_path: "app/views/codes/increment/elements_in_frame/show.html", erb: true %>
<% end %>
<% end %>
<% end %>
<% end %>
62 changes: 32 additions & 30 deletions test/dummy/app/views/frames/increment/form_in_frame.html.erb
Original file line number Diff line number Diff line change
@@ -1,41 +1,43 @@
<%= turbo_frame_tag demo_frame_id(@template_path) do %>
<%= cache session[:form_in_frame_count].to_i do %>
<%= render "frames/frame" do %>
<%= render "stats/stats" do %>
<%= render "stats/stat", label: "Counter", value: session[:form_in_frame_count].to_i, class: "!bg-indigo-600 dark:!bg-indigo-900",
value_class: ["!text-indigo-200 dark:!text-indigo-300"], label_class: ["!text-indigo-400 dark:!text-indigo-500"] %>
<% end %>
<% :form_in_frame_count.tap do |session_key| %>
<%= turbo_frame_tag demo_frame_id(@template_path) do %>
<%= cache session[:form_in_frame_count].to_i do %>
<%= render "frames/frame" do %>
<%= render "stats/stats" do %>
<%= render "stats/stat", label: "Counter", value: session[session_key].to_i, class: "!bg-indigo-600 dark:!bg-indigo-900",
value_class: ["!text-indigo-200 dark:!text-indigo-300"], label_class: ["!text-indigo-400 dark:!text-indigo-500"] %>
<% end %>

<p class="my-8">
You can attach reflexes to any element.
</p>

<%= form_with url: frame_path(params[:id]), method: :patch,
class: "mb-8",
data: { turbo_reflex: "CounterReflex#increment", session_key: :form_in_frame_count } do |form| %>
<div class="inline-block relative">
<%= form.submit "Submit Form", class: css("flowbite.button.cyan_to_blue", "cursor-pointer") %>
<%= render flowbite(:notification_badge), value: session[:form_in_frame_count].to_i, class: "!-right-0" if session[:form_in_frame_count].to_i > 0 %>
</div>
<% end %>
<p class="my-8">
You can attach reflexes to any element.
</p>

<%= render component(:code), language: :ruby, class: "text-sm",
path: "app/reflexes/counter_reflex.rb", source_path: "app/views/codes/increment/reflex.rb" %>
<%= form_with url: frame_path(params[:id]), method: :patch,
class: "mb-8",
data: { turbo_reflex: "CounterReflex#increment", session_key: session_key } do |form| %>
<div class="inline-block relative">
<%= form.submit "Submit Form", class: css("flowbite.button.cyan_to_blue", "cursor-pointer") %>
<%= render flowbite(:notification_badge), value: session[session_key].to_i, class: "!-right-0" if session[:form_in_frame_count].to_i > 0 %>
</div>
<% end %>

<div class="my-8"></div>
<%= render component(:code), language: :ruby, class: "text-sm",
path: "app/reflexes/counter_reflex.rb", source_path: "app/views/codes/increment/reflex.rb" %>

<%= render component(:code), language: :ruby, class: "text-sm",
path: "app/controllers/demos_controller.rb", source_path: "app/views/codes/increment/controller.rb" %>
<div class="my-8"></div>

<div class="my-8"></div>
<%= render component(:code), language: :ruby, class: "text-sm",
path: "app/controllers/demos_controller.rb", source_path: "app/views/codes/increment/controller.rb" %>

<%= render component(:code), language: :erb, class: "text-sm",
path: "app/views/demo/show.html.erb", source_path: "app/views/codes/increment/form_in_frame/show.erb" %>
<div class="my-8"></div>

<div class="my-8"></div>
<%= render component(:code), language: :erb, class: "text-sm",
path: "app/views/demo/show.html.erb", source_path: "app/views/codes/increment/form_in_frame/show.erb" %>

<%= render component(:code), language: :html, class: "text-sm",
path: "Rendered HTML for: /demos/3", source_path: "app/views/codes/increment/form_in_frame/show.html", erb: true %>
<div class="my-8"></div>

<%= render component(:code), language: :html, class: "text-sm",
path: "Rendered HTML for: /demos/3", source_path: "app/views/codes/increment/form_in_frame/show.html", erb: true %>
<% end %>
<% end %>
<% end %>
<% end %>
54 changes: 28 additions & 26 deletions test/dummy/app/views/frames/increment/link_in_frame.html.erb
Original file line number Diff line number Diff line change
@@ -1,38 +1,40 @@
<%= turbo_frame_tag demo_frame_id(@template_path) do %>
<%= cache session[:link_in_frame_count].to_i do %>
<%= render "frames/frame" do %>
<%= render "stats/stats" do %>
<%= render "stats/stat", label: "Counter", role: "counter", value: session[:link_in_frame_count].to_i, class: "!bg-indigo-600 dark:!bg-indigo-900",
value_class: ["!text-indigo-200 dark:!text-indigo-300"], label_class: ["!text-indigo-400 dark:!text-indigo-500"] %>
<% end %>
<% :link_in_frame_count.tap do |session_key| %>
<%= turbo_frame_tag demo_frame_id(@template_path) do %>
<%= cache session[session_key].to_i do %>
<%= render "frames/frame" do %>
<%= render "stats/stats" do %>
<%= render "stats/stat", label: "Counter", role: "counter", value: session[session_key].to_i, class: "!bg-indigo-600 dark:!bg-indigo-900",
value_class: ["!text-indigo-200 dark:!text-indigo-300"], label_class: ["!text-indigo-400 dark:!text-indigo-500"] %>
<% end %>

<p class="my-8">
The link below will invoke a reflex before Rails/Hotwire replaces the frame's content.
</p>
<p class="my-8">
The link below will invoke a reflex before Rails/Hotwire replaces the frame's content.
</p>

<%= link_to nil, id: demo_frame_id(@template_path, :trigger), class: css("flowbite.link.default", "inline-block relative mb-8 ml-0"),
data: { turbo_reflex: "CounterReflex#increment", session_key: :link_in_frame_count } do %>
Basic Link
<%= render flowbite(:notification_badge), value: session[:link_in_frame_count].to_i, class: "!-right-4" if session[:link_in_frame_count].to_i > 0 %>
<% end %>
<%= link_to nil, id: demo_frame_id(@template_path, :trigger), class: css("flowbite.link.default", "inline-block relative mb-8 ml-0"),
data: { turbo_reflex: "CounterReflex#increment", session_key: session_key } do %>
Basic Link
<%= render flowbite(:notification_badge), value: session[session_key].to_i, class: "!-right-4" if session[:link_in_frame_count].to_i > 0 %>
<% end %>

<%= render component(:code), language: :ruby, class: "text-sm",
path: "app/reflexes/counter_reflex.rb", source_path: "app/views/codes/increment/reflex.rb" %>
<%= render component(:code), language: :ruby, class: "text-sm",
path: "app/reflexes/counter_reflex.rb", source_path: "app/views/codes/increment/reflex.rb" %>

<div class="my-8"></div>
<div class="my-8"></div>

<%= render component(:code), language: :ruby, class: "text-sm",
path: "app/controllers/demos_controller.rb", source_path: "app/views/codes/increment/controller.rb" %>
<%= render component(:code), language: :ruby, class: "text-sm",
path: "app/controllers/demos_controller.rb", source_path: "app/views/codes/increment/controller.rb" %>

<div class="my-8"></div>
<div class="my-8"></div>

<%= render component(:code), language: :erb, class: "text-sm",
path: "app/views/demos/show.html.erb", source_path: "app/views/codes/increment/link_in_frame/show.erb" %>
<%= render component(:code), language: :erb, class: "text-sm",
path: "app/views/demos/show.html.erb", source_path: "app/views/codes/increment/link_in_frame/show.erb" %>

<div class="my-8"></div>
<div class="my-8"></div>

<%= render component(:code), language: :html, class: "text-sm",
path: "Rendered HTML for: /demos/#{@demo_index}", source_path: "app/views/codes/increment/link_in_frame/show.html", erb: true %>
<%= render component(:code), language: :html, class: "text-sm",
path: "Rendered HTML for: /demos/#{@demo_index}", source_path: "app/views/codes/increment/link_in_frame/show.html", erb: true %>
<% end %>
<% end %>
<% end %>
<% end %>