1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<%= tag.div class: "flex items-center gap", data: { controller: "upload-preview", upload_preview_default_image_value: asset_url("default-avatar.svg") } do %> <label class="flex items-center gap"> <div class="btn btn--icon"> <%= file_field_tag :avatar, class: "sr-only", accept: "image/*", data: { upload_preview_target: "input", action: "upload-preview#previewImage" } %> <%= image_tag "camera.svg", size: 20, aria: { hidden: true } %> <span class="sr-only">Upload avatar</span> </div> <div class="btn avatar" style="--avatar-size: 100px;"> <%= image_tag "cartoon.jpg", size: 48, alt: "Avatar", data: { upload_preview_target: "image" } %> </div> </label> <label class="btn btn--icon btn--negative" data-action="click->upload-preview#clear"> <%= hidden_field_tag "remove_avatar", false, data: { upload_preview_target: "removeInput" } %> <%= image_tag "minus.svg", size: 20, aria: { hidden: true } %> <span class="sr-only">Remove avatar</span> </label><% end %>