2024-12-20 11:37:26 -05:00
|
|
|
<%# locals: (category:, categories:) %>
|
|
|
|
|
2024-08-27 17:06:41 -04:00
|
|
|
<div data-controller="color-avatar">
|
2024-10-24 11:02:27 -04:00
|
|
|
<%= styled_form_with model: category, class: "space-y-4", data: { turbo_frame: :_top } do |f| %>
|
2024-08-27 17:06:41 -04:00
|
|
|
<section class="space-y-4">
|
|
|
|
<div class="w-fit m-auto">
|
|
|
|
<%= render partial: "shared/color_avatar", locals: { name: category.name, color: category.color } %>
|
|
|
|
</div>
|
2024-12-20 11:37:26 -05:00
|
|
|
|
2024-08-27 17:06:41 -04:00
|
|
|
<div class="flex gap-2 items-center justify-center">
|
2024-06-20 08:15:09 -04:00
|
|
|
<% Category::COLORS.each do |color| %>
|
2024-08-27 17:06:41 -04:00
|
|
|
<label class="relative">
|
|
|
|
<%= f.radio_button :color, color, class: "sr-only peer", data: { action: "change->color-avatar#handleColorChange" } %>
|
|
|
|
<div class="w-6 h-6 rounded-full cursor-pointer peer-checked:ring-2 peer-checked:ring-offset-2 peer-checked:ring-blue-500" style="background-color: <%= color %>"></div>
|
|
|
|
</label>
|
2024-05-02 07:24:31 -06:00
|
|
|
<% end %>
|
2024-08-27 17:06:41 -04:00
|
|
|
</div>
|
2024-12-20 11:37:26 -05:00
|
|
|
|
|
|
|
<% if category.errors.any? %>
|
|
|
|
<%= render "shared/form_errors", model: category %>
|
|
|
|
<% end %>
|
|
|
|
|
|
|
|
<div class="space-y-2">
|
|
|
|
<%= f.text_field :name, placeholder: t(".placeholder"), required: true, autofocus: true, label: "Name", data: { color_avatar_target: "name" } %>
|
|
|
|
<%= f.select :parent_id, categories.pluck(:name, :id), { include_blank: "(unassigned)", label: "Parent category (optional)" } %>
|
2024-08-27 17:06:41 -04:00
|
|
|
</div>
|
|
|
|
</section>
|
2024-05-02 07:24:31 -06:00
|
|
|
|
|
|
|
<section>
|
|
|
|
<%= hidden_field_tag :transaction_id, params[:transaction_id] %>
|
2024-08-27 17:06:41 -04:00
|
|
|
<%= f.submit %>
|
2024-05-02 07:24:31 -06:00
|
|
|
</section>
|
2024-08-27 17:06:41 -04:00
|
|
|
<% end %>
|
|
|
|
</div>
|