vas3k / vas3k.club

No bullshit IT community with private membership
https://vas3k.club
MIT License
813 stars 241 forks source link

Добавляет кнопку «загрузить картинку» #1221

Closed nlopin closed 3 months ago

nlopin commented 4 months ago

Что

Кнопка загрузки картинок для тех, кто не может перетаскивать картинки на форму 🥳

Demo

Как

  1. дописал дополнительный обработчик в код загрузки картинок (frontend/static/js/inline-attachment.js)
  2. к каждому редактору создаётся контрол выбора файла (<input type="file" />)
  3. изменена верстка всех ответов. Кнопка «отправить» теперь визуально часть поля, в котором пишется ответ

До и после

Поле До После
Комментарий CleanShot 2024-06-28 at 23 32 12@2x CleanShot 2024-06-28 at 23 34 44@2x
Ответ CleanShot 2024-06-28 at 23 35 12@2x CleanShot 2024-06-28 at 23 35 28@2x
Ответ (узкий экран) CleanShot 2024-06-28 at 23 36 32@2x CleanShot 2024-06-28 at 23 36 09@2x
Баттл CleanShot 2024-06-28 at 23 38 46@2x CleanShot 2024-06-28 at 23 37 14@2x
Интро CleanShot 2024-06-28 at 23 39 16@2x CleanShot 2024-06-28 at 23 39 36@2x
trin4ik commented 4 months ago

Кайф! Я бы сделал следующее:

image

<div class="reply-form-footer">
    <label class="reply-form-attach-image">
        <i class="fa fa-paperclip"></i>
        <input type="file" alt="Добавить картинку" />
    </label>
</div>
.reply-form-attach-image {
  ...
  cursor: pointer;
}
.reply-form-attach-image input[type=file] {
  ...
  display: none;
}
TiraelSedai commented 4 months ago

на мой взгляд камера ещё хуже скрепки image вот эту иконку бы экспроприировать, но тогда "старую" надо или убирать или заменять

у гитхаба это тоже синонимичные кнопки image

nlopin commented 4 months ago
  • сделать display: none для инпута и обернуть его в label, которому сделать cursor: pointer т.е. типа того

в чем будет отличие от того, что сейчас?

trin4ik commented 4 months ago
  • сделать display: none для инпута и обернуть его в label, которому сделать cursor: pointer т.е. типа того

в чем будет отличие от того, что сейчас?

было стало
before2 after2
nlopin commented 4 months ago

класс, у меня такого нет. Поправлю верстку 🤝 Что это за браузер, чтобы я мог проверить?

trin4ik commented 4 months ago

класс, у меня такого нет. Поправлю верстку 🤝 Что это за браузер, чтобы я мог проверить?

хром в убунте, современный. посмотрю в других браузерах линя, отпишу

trin4ik commented 4 months ago

класс, у меня такого нет. Поправлю верстку 🤝 Что это за браузер, чтобы я мог проверить?

ubuntu 22.04 в 127 фаерфоксе всё ок, как и должно быть в 126 хроме тот баг, что я описал, т.е. иконка курсора работает неверно.

vas3k commented 4 months ago

Скажите когда можно будет тестить :) У нас по понеделькам деплоить нельзя, так что у вас еще есть время

nlopin commented 4 months ago

класс, у меня такого нет. Поправлю верстку 🤝 Что это за браузер, чтобы я мог проверить?

ubuntu 22.04 в 127 фаерфоксе всё ок, как и должно быть в 126 хроме тот баг, что я описал, т.е. иконка курсора работает неверно.

Попробуй новую версию, у меня в хроме заработало. Это микс твоего предложения с предыдущей версией. Мы не можем сделать display:none потому что перестанет работать фокус через Tab.

nlopin commented 4 months ago

Скажите когда можно будет тестить :) У нас по понеделькам деплоить нельзя, так что у вас еще есть время

можно

trin4ik commented 4 months ago

класс, у меня такого нет. Поправлю верстку 🤝 Что это за браузер, чтобы я мог проверить?

ubuntu 22.04 в 127 фаерфоксе всё ок, как и должно быть в 126 хроме тот баг, что я описал, т.е. иконка курсора работает неверно.

Попробуй новую версию, у меня в хроме заработало. Это микс твоего предложения с предыдущей версией. Мы не можем сделать display:none потому что перестанет работать фокус через Tab.

ага, всё норм

nlopin commented 4 months ago

@vas3k что скажешь?

nlopin commented 3 months ago

@vas3k давай снова тестировать.

Изменения:

Пришлось вытащить часть логики из inline-attachment, чтобы не дублировать. Чуть позже хорошо бы этот файл переписать на более современный код, чтобы уйти от IIFE в нем. Это было явно сделано для того, чтобы подключать файл напрямую в браузер и для нас неактуально, мы его бандлим