6.4Kпросмотров
10 августа 2023 г.
Score: 7.1K
Так, я пришел поныть про фронтенд. Будет много мата. Раз в полгода в топы HackerNews и Твиттера врывается очередной пост, что, мол, хватит городить тонну JS - можно же использовать современные HTML-контролы! Для модальных диалогов есть <dialog>, для выбора даты и времени есть <input type=datetime-local>, для цвета <input type=color>, а для прогресс-баров есть <progress>. Вот опять очередной юноша понаписал хуйни выступил с романтичным заявлением https://catskull.net/html.html набрал почти 1000 апвоутов на HN, на минуточку. И ведь я же с ним согласен. И каждый раз верю. И бросаюсь все переделывать. Вот на этой неделе опять бросился. Третий день сижу. Ну правда же. Почему в 2023 году в браузере нет сраной кнопочки "выбрать дату/время"? Почему я в зависимостях таскаю 100-килобайтный дейт-тайм-пикер на JS? Все. Решено! Хватит это терпеть. Переписываю все на нативный дейтпикер. Быстрый, модный, молодежный, нативно-работающий на смартфонах и с поддержкой темной темы из коробки. И началоооось в колхозе утро. Сначала выясняется, что <input type=date> не поддерживает placeholder'ы. Пишем JS/CSS-костыли на два экрана. Потом выясняется что нельзя автоматически показать дропдаун при фокусе. Опять костыли. Нет, onfocus не сработает, ахаха. Onclick тоже ненадежный. Один мужик на Stackoverflow советует сделать иконку дропдауна прозрачной (!) и растянуть на весь контейнер. Чтобы, типа, куда бы ты ни кликнул - попадаешь в невидимую иконку. И все такие: "ох, ебать, ну ладно, попробуем". Потом выясняется что у дейтпикера нестандартный box-sizing и приходится хардкодить пиксели в CSS, Иначе он торчит и отличается от всех остальных инпутов. И валидация глючит и в Edge, и в Хроме <=114 (попробуйте дать ему дату с секундами, потом поменять секунды и все, он не дает сабмитнуть форму). И ошибка валидации элегантно всплывает ПОД дропдауном. Уже даже не смешно ...А в конце обязательно сломается мобильный сафари. Он всегда в конце ломается. Нативный инпут my ass. И вишенка на торте: оказывается, что Firefox... не поддерживает datetime-пикер. Ахаха. Потому что идите нахуй, вот почему. На "can-i-use" написано что поддерживает, на "MDN" написано что поддерживает, а вот и нет... Там тупо нет выбора времени. И неправильно работает onchange. А если человек выбирает только дату, а время оставляет пустым (конечно, ведь выбора времени же, сука, нету ебанарот!!!) то весь инпут возвращает NULL, И похер, что дата выбрана - в post-данных будет нулл. Ебитесь как хотите. И в issue-трекере фаерфокса висит баг уже три года, но нет, они лучше приделают ебаный "Firefox Send", это же важнее. Клянусь еще пара часов и я откачу все назад. И клиенты еще такие пишут "ой, ваш новый дейт-виджет какой-то странный..." Да он не наш ни𝕩ÿя E ᵒh ебаный бабай no NO NOO̼OO NΘ stop the an*̶͑̾̾̅ͫ͏̙̤g͇̫͛͆̾ͫ̑͆l͖͉̗̩̍ͫͥͨ ̟e̠̅s ͎a̧͈͖r̽̾̈́͒͑e not rè̑ͧ̌aͨl̘̝̙̃ͤ͂̾̆ ZA̡͊͠͝LGΌ ISͮ̂҉̯͈͕̹̘̱ TO͇̹̺ͅƝ̴ȳ TH̘Ë͖́̉ ͠P̯͍̭O̚N̐Y̡ H̸̡̪̯ͨ͊̽̅̾̎Ȩ̬̩̾͛ͪ̈́̀́͘ ̶̧̨̱̹̭̯ͧ̾ͬC̷̙̲̝͖ͭ̏ͥͮ͟Oͮ͏̮̪̝͍M̲̖͊̒ͪͩͬ̚̚͜Ȇ̴̟̟͙̞ͩ͌͝Sͯ ̨̥̫͎̭̔̀ͅ (спасите)