|
1 | 1 | <h3 class="text-center">New Snippet</h3> |
2 | 2 |
|
3 | | -<div data-controller="tabs"> |
4 | | - <div class="flex justify-end"> |
5 | | - <div class="tabs--headers-wrapper"> |
6 | | - <div data-tabs-target="tab" data-action="click->tabs#change" class="tabs--header tabs--header-active"> |
7 | | - <span>Write</span> |
8 | | - </div> |
9 | | - <div data-tabs-target="tab" data-action="click->tabs#change" class="tabs--header"> |
10 | | - <span>Preview</span> |
11 | | - </div> |
| 3 | +<div data-controller="codemirror snippets" class="mt-4"> |
| 4 | + <div data-snippets-target="errors"></div> |
| 5 | + <%= form_for @snippet, remote: true, html: { data: { type: "html", action: "ajax:success->snippets#onCreateSuccess ajax:error->snippets#onCreateError" } } do |f| %> |
| 6 | + <div> |
| 7 | + <%= f.text_field :description, { data: { controller: "focus", focus_target: "focus" }, placeholder: "Snippet title", class: "block w-full mb-4 shadow-sm focus:ring-indigo-500 focus:border-indigo-500 block w-full sm:text-sm border-gray-300 rounded-md" } %> |
| 8 | + <%= f.text_area :body, { data: { codemirror_target: 'mirror' }, class: "font-mono h-80 block w-full shadow-sm focus:ring-indigo-500 focus:border-indigo-500 block w-full sm:text-sm border-gray-300 rounded-md" } %> |
12 | 9 | </div> |
13 | | - </div> |
14 | | - |
15 | | - <div data-controller="highlight snippets" class="mt-4"> |
16 | | - <div data-snippets-target="errors"></div> |
17 | | - <%= form_for @snippet, remote: true, html: { data: { type: "html", action: "ajax:success->snippets#onCreateSuccess ajax:error->snippets#onCreateError" } } do |f| %> |
18 | | - <div class="tabs-details"> |
19 | | - <div data-tabs-target="panel"> |
20 | | - <%= f.text_field :description, { data: { controller: "focus", focus_target: "focus", action: "input->highlight#updateDescription" }, placeholder: "Snippet title", class: "block w-full mb-4 shadow-sm focus:ring-indigo-500 focus:border-indigo-500 block w-full sm:text-sm border-gray-300 rounded-md" } %> |
21 | | - <%= f.text_area :body, { data: { action: "input->highlight#highlight" }, placeholder: "Your world beating code goes here", class: "font-mono h-80 block w-full shadow-sm focus:ring-indigo-500 focus:border-indigo-500 block w-full sm:text-sm border-gray-300 rounded-md" } %> |
22 | | - <%= f.text_area :highlighted_body, { data: { target: "highlight.highlightedBody" }, class: "hidden" } %> |
23 | | - </div> |
24 | 10 |
|
25 | | - <div data-tabs-target="panel" class="hidden"> |
26 | | - <div class="new-snippet--preview"> |
27 | | - <h5 data-highlight-target="description" class="mt-4 mb-4"></h5> |
28 | | - <div class="code-highlight" data-highlight-target="code"></div> |
29 | | - </div> |
30 | | - </div> |
| 11 | + <div class="create-snippet--options-wrapper"> |
| 12 | + <div class="flex v-center" style="cursor: pointer;" |
| 13 | + data-controller="checkbox" |
| 14 | + data-action="click->checkbox#toggle" |
| 15 | + data-checkbox-checked-text-value="Public" |
| 16 | + data-checkbox-checked-icon-value="/icons/lock-open.svg" |
| 17 | + data-checkbox-unchecked-text-value="Private" |
| 18 | + data-checkbox-unchecked-icon-value="/icons/lock-closed.svg" |
| 19 | + > |
| 20 | + <span data-checkbox-target="text">Public</span> |
| 21 | + <img data-checkbox-target="icon" src="/icons/lock-open.svg" width="20"> |
| 22 | + <%= f.hidden_field :public, value: true, data: { checkbox_target: 'value' } %> |
31 | 23 | </div> |
32 | | - |
33 | | - <div class="create-snippet--options-wrapper"> |
34 | | - <div class="flex v-center" style="cursor: pointer;" |
35 | | - data-controller="checkbox" |
36 | | - data-action="click->checkbox#toggle" |
37 | | - data-checkbox-checked-text-value="Public" |
38 | | - data-checkbox-checked-icon-value="/icons/lock-open.svg" |
39 | | - data-checkbox-unchecked-text-value="Private" |
40 | | - data-checkbox-unchecked-icon-value="/icons/lock-closed.svg" |
41 | | - > |
42 | | - <span data-checkbox-target="text">Public</span> |
43 | | - <img data-checkbox-target="icon" src="/icons/lock-open.svg" width="20"> |
44 | | - <%= f.hidden_field :public, value: true, data: { checkbox_target: 'value' } %> |
45 | | - </div> |
46 | | - <div class="flex"> |
47 | | - <%= f.select :folder_id, options_from_collection_for_select(@folders, :id, :name, params[:folder_id]), prompt: 'Select folder...' %> |
48 | | - <%= f.submit 'CREATE', class: "button--cta-primary ml-4" %> |
49 | | - </div> |
| 24 | + <div class="flex"> |
| 25 | + <%= f.select :folder_id, options_from_collection_for_select(@folders, :id, :name, params[:folder_id]), prompt: 'Select folder...' %> |
| 26 | + <%= f.submit 'CREATE', class: "button--cta-primary ml-4" %> |
50 | 27 | </div> |
51 | | - <% end %> |
52 | | - |
53 | | - </div> |
| 28 | + </div> |
| 29 | + <% end %> |
54 | 30 | </div> |
0 commit comments