Skip to content

Commit 2eab4be

Browse files
committed
feature/Use toggle component on snippet edit form
1 parent 79171ed commit 2eab4be

File tree

2 files changed

+14
-18
lines changed

2 files changed

+14
-18
lines changed

app/views/modals/snippets/edit.html.erb

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,9 @@
1818
</div>
1919

2020
<div class="create-snippet--options-wrapper">
21-
<div class="flex v-center" style="cursor: pointer;"
22-
data-controller="checkbox"
23-
data-action="click->checkbox#toggle"
24-
data-checkbox-checked-text-value="Public"
25-
data-checkbox-checked-icon-value="/icons/lock-open.svg"
26-
data-checkbox-unchecked-text-value="Private"
27-
data-checkbox-unchecked-icon-value="/icons/lock-closed.svg"
28-
>
29-
<span data-checkbox-target="text">Public</span>
30-
<img data-checkbox-target="icon" src="/icons/lock-open.svg" width="20">
31-
<%= f.hidden_field :public, value: true, data: { checkbox_target: 'value' } %>
32-
</div>
21+
22+
<%= render partial: 'shared/form/toggle', locals: { form: f, field: :public, enabled_text: 'Private', disabled_text: 'Public', enabled: !@snippet.public, flip: true } %>
23+
3324
<div class="flex">
3425
<%= f.select :language_id, options_from_collection_for_select(@languages, :id, :name, @snippet.language_id), { prompt: 'Select language...' }, class: "block w-full pl-3 pr-10 py-1 text-base border-gray-300 focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm rounded-md", data: { action: 'change->codemirror#updateMode' } %>
3526
<%= f.select :folder_id, options_from_collection_for_select(@folders, :id, :name, @folder.id), { prompt: 'Select folder...' }, { class: "ml-1 block w-full pl-3 pr-10 py-1 text-base border-gray-300 focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm rounded-md" } %>

app/views/shared/form/_toggle.html.erb

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
1+
<% enabled_color = 'bg-cyan' %>
2+
<% disabled_color = 'bg-gray-200' %>
3+
<% enabled_translate = 'translate-x-6' %>
4+
<% disabled_translate = 'translate-x-0' %>
5+
16
<div
27
class="flex items-center"
38
data-controller="toggle"
4-
data-toggle-enabled-color-class="bg-cyan"
5-
data-toggle-disabled-color-class="bg-gray-200"
6-
data-toggle-enabled-translate-class="translate-x-6"
7-
data-toggle-disabled-translate-class="translate-x-0"
9+
data-toggle-enabled-color-class="<%= enabled_color %>"
10+
data-toggle-disabled-color-class="<%= disabled_color %>"
11+
data-toggle-enabled-translate-class="<%= enabled_translate %>"
12+
data-toggle-disabled-translate-class="<%= disabled_translate %>"
813
data-toggle-enabled-text-value="<%= enabled_text %>"
914
data-toggle-disabled-text-value="<%= disabled_text %>"
1015
data-toggle-enabled-value="<%= enabled %>"
@@ -13,12 +18,12 @@
1318

1419
<button
1520
type="button"
16-
class="bg-gray-200 relative inline-flex flex-shrink-0 h-5 w-11 border-2 border-transparent rounded-full cursor-pointer transition-colors ease-in-out duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500"
21+
class="<%= enabled ? enabled_color : disabled_color %> relative inline-flex flex-shrink-0 h-5 w-11 border-2 border-transparent rounded-full cursor-pointer transition-colors ease-in-out duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500"
1722
aria-pressed="false"
1823
data-action="click->toggle#toggle"
1924
data-toggle-target="background"
2025
>
21-
<span aria-hidden="true" data-toggle-target="toggle" class="translate-x-0 pointer-events-none inline-block h-4 w-4 rounded-full bg-white shadow transform ring-0 transition ease-in-out duration-200"></span>
26+
<span aria-hidden="true" data-toggle-target="toggle" class="<%= enabled ? enabled_translate : disabled_translate %> pointer-events-none inline-block h-4 w-4 rounded-full bg-white shadow transform ring-0 transition ease-in-out duration-200"></span>
2227
</button>
2328

2429
<span class="ml-3" id="annual-billing-label">

0 commit comments

Comments
 (0)