Олег
кто может порекомендовать пакет для masked input? ничего вменяемого не нашел
akasybe
https://github.com/text-mask/text-mask
Олег
а он на native подойдет?
Олег
просто реакт же
Danila
Регулярки обычные
Dmitry
ну это со стороны самой апи уже) тут у меня скорее были опасения что симулятор Xcode работает в какой нибудь виртуальной машине и придется еще какие нибудь прокси прокидывать
Вспомнил, был у меня сервер внутри сети на обычном http и у меня пост запросы не кидались на него, типа либо https делай, либо внутри проекта прописывай хост
akasybe
а он на native подойдет?
блин, я перепутал чат, пардон
Vadim
блин, я перепутал чат, пардон
Проблемы разработки в 2к18
Vadym
нужно сканировать qr коды, какой плагин посоветуете?
Ivan
rn-camera
Ivan
https://github.com/react-native-community/react-native-camera/blob/master/README.md
Vadym
Aynur
нужно сканировать qr коды, какой плагин посоветуете?
на основе rn-camera есть rn-qrcodescanner, работает хорошо и быстро лично у меня
Gena
О, в react-native-firebase 5.0.0 одумались и убрали opencollective, оставили статический баннер в 3 строки, который не делает сетевых запросов на каждый npm i... больше не spyware )))
Demuz
Подскажите, пожалуйста, почему может не собираться релиз?
Maxim 📱 D
REASON 1 : Duplicate of class file name SOLUTION : when your refactoring of some of your class files to a library project. and that time you write name of class file So, double check that you do not have any duplicate names REASON 2 : When you have lot of cache Memory SOLUTION : Sometime if you have lot of cache memory then this error occure so solve it. go to File/Invalidate caches / Restart then select Invalidate and Restart it will clean your cache memory. REASON 3 : When there is internal bug or used beta Version to Switch back to stable version. SOLUTION : Solution is just simple go to Build menu and click Clean Project and after cleaning click Rebuild Project. REASON 4 : When you memory of the system Configuration is low. SOLUTION : open Task Manager and stop the other application which are not most used at that time so it will free the space and solve OutOfMemory. REASON 5 : The problem is your method count has exceed from 65K. SOLUTION : open your Project build.gradle file add defaultConfig { ... multiDexEnabled true } and in dependencies add below line. dependencies { compile 'com.android.support:multidex:1.0.0' }
Maxim 📱 D
5 решение не помогло?
Demuz
нет
Aynur
multidex: true тоже на месте?
Demuz
ппц. это шутка? я просто вебшторм перезапустил и собрался релиз. пффф
Demuz
multidex: true тоже на месте?
Да. Спасибо. Не в нем было дело, а как всегда - в мистике. Уверен сейчас уберу мультидекс и все равно соберется)
Oleg
всем привет
Oleg
можно ли как то у webiview локализовать текст надписей диалога загрузки файлов
Oleg
Gena
можно ли как то у webiview локализовать текст надписей диалога загрузки файлов
А он разве не в локали системы? Попробуйте поставить себе в симулятор русский язык как основной...
Oleg
возможно у меня что то с девайсом
Oleg
проверю на другом
Gena
(это только предположение, если что...)
Demuz
Да вроде 8гб всего занято.
Олег
всем привет, так и не нашел пакет для input mask, может кто подскажет? и как открывать только цифровую клавиатуру?
Cenator 🐈
libphonenumber-js смотрел?
Олег
нет
Олег
сейчас загуглю
Cenator 🐈
форматируй по таймауту или blur
Cenator 🐈
предлагай если есть иное
Cenator 🐈
форматируй по таймауту или blur
таймаут откровенно плохая идея
Олег
можно просто по вводу
Cenator 🐈
не уверен что реакту это понравится
Cenator 🐈
косяки с кареткой могут быть
Maxim 📱 D
Олег
такая задача банальная, а делается через костыли
Cenator 🐈
просто форматирование инпута это уже костыль
Олег
ну маска для ввода номера не такой и костыль
Олег
задача самая обычная
Maxim 📱 D
+, решений в интернете хватает
Олег
я поставил один пакет, что нашел, он ведет себя неадекватно, сам числа при вводе подставляет
Maxim 📱 D
Так самому написать можно же
Олег
можно, но в веб разработке на такое никогда время не тратил
Ivan
всем привет, так и не нашел пакет для input mask, может кто подскажет? и как открывать только цифровую клавиатуру?
а в чем проблема указать тип клавиатуры у инпута? https://facebook.github.io/react-native/docs/0.56/textinput#keyboardtype
Gena
такая задача банальная, а делается через костыли
Это очень не банальная (простая, очевидная) задача! Это банальная задача, когда у вас один поток в приложении. В браузере это кажется простым, потому что там разработчики браузера применили зверские хаки, чтоб обычным веб-разработчиками жилось легко. В нативе iOS это почти банальная задача, потому что UIKit приложение работает в одном потоке и вы свои фильтры ввода пишите синхронно с остальными обработчиками ввода и лэйаутом. В RN в этом смысле плохая архитектура (но другой нет). Поэтому эта задача вообще удивительно, что решаема. В 0.57 это тем не менее должно работать. Для понимания, что это сложно, добавлю ещё, что у вас ввод идет через IM, что означает, что то, что появляется в поле не всегда соответствует тому, что в итоге введет пользователь и он не просто добавляет символы, а у вас IM может заменить уже введенные... А ещё RN хендлит форматирование в TextInput (это тоже косяк архитектуры, верней гипер обобщение в коде, но с этим ничего не поделать), и это значит, что он ещё трекает маркеры атрибутов символов по строке... Но ещё раз, в RN 0.57 вешайте обработчик на onChangeText и меняйте value у компонента и это будет работать нормально (в RN 0.54, 0.55, 0.56 там баг и это не работает).
Vladimir
Как вариант опустить задачу обратно на уровень нейтива и в реакт отправлять только форматированные данные. Тогда все снова становится тривиальным, просто решение становится узкоспециализированным. Зато уходят все хаки. И в самой возможности такого решения кроется вся красота RN. 🙂
Никита
https://github.com/react-native-community/react-native-text-input-mask вот же отличная либа, вроде надстройка над ипутом из rn
Никита
Странно. У меня отлично работает
Олег
там для айфона надо что-то куда-то копировать
Олег
я так и не понял
Никита
Тоже немного тупил, но там как всегда - все по доке Включить Always Embed Swift Standard Libraries’ of Build Settings Добавить в Embeded Binaries
Олег
понял, попробую, спасибо
Anonymous
Всем привет! У нас команда не может найти библиотеку для Push-нотификаций, которая поддерживает Expo и detached приложение в AppStore. Кто-нибудь знает подходящую библиотеку? Заранее спасибо за ответ.
Ivan
понял, попробую, спасибо
ток там еще такая штука есть, у меня без этого фикса не улетало в итюнсконнект https://github.com/react-native-community/react-native-text-input-mask/issues/22
Никита
Точно, забыл. Спасибо за дополнение
Gena
Сейчас провел забавный эксперимент. Попробовал настроить бандлер так, чтоб он поле module использовал в package.json у модулей, если есть... Это уменьшило размер бандла (здесь и далее продакшн ios минификация) примерно на 300 байт. Я удивился и добавил туда ещё процессинг esnext:main, что увеличило размер бандла ))) Озадачившись этим странным поведением, я полез разбираться... и вот, такая картина получается (это только то, что в node_modules лежит): http://vovkasm.skitch.vovkasm.org/bundle-size_2160060C.png Это второй вариант (без esnext:main, там оказалось, что оно moment.js два раза пакует, уж не знаю почему). Получается, что metro вообще чтоль дерево импортов не перетряхивает? Мало того, что весь RN впакован, в это я могу поверить, потому что с haste они не могут понять что кому надо и где используется, но обычные импорты тоже... вот на картинке есть react-native-firebase, у меня в приложении ровно три импорта для него в трех файлах: import { analytics } from 'react-native-firebase' import { messaging } from 'react-native-firebase' import { messaging, notifications } from 'react-native-firebase' А в бандле честно лежит database... очень странно, в общем... сейчас ещё проверю, не тайпскрипт ли там мешает этой оптимизации...
Gena
Нет, не typescript... у него на выходе es2015 должен быть... т.е. все импорты/экспорты сохранены
Dmitry
Сейчас провел забавный эксперимент. Попробовал настроить бандлер так, чтоб он поле module использовал в package.json у модулей, если есть... Это уменьшило размер бандла (здесь и далее продакшн ios минификация) примерно на 300 байт. Я удивился и добавил туда ещё процессинг esnext:main, что увеличило размер бандла ))) Озадачившись этим странным поведением, я полез разбираться... и вот, такая картина получается (это только то, что в node_modules лежит): http://vovkasm.skitch.vovkasm.org/bundle-size_2160060C.png Это второй вариант (без esnext:main, там оказалось, что оно moment.js два раза пакует, уж не знаю почему). Получается, что metro вообще чтоль дерево импортов не перетряхивает? Мало того, что весь RN впакован, в это я могу поверить, потому что с haste они не могут понять что кому надо и где используется, но обычные импорты тоже... вот на картинке есть react-native-firebase, у меня в приложении ровно три импорта для него в трех файлах: import { analytics } from 'react-native-firebase' import { messaging } from 'react-native-firebase' import { messaging, notifications } from 'react-native-firebase' А в бандле честно лежит database... очень странно, в общем... сейчас ещё проверю, не тайпскрипт ли там мешает этой оптимизации...
moment.js вообще загадочная либа) если снять схему зависимостей webpack, то окажется что момент в бандл тянет все локализации, даже если ниодну из них не подключать)
Egor
Добрый день. Кто-нибудь польузется react-native-blur? В моем проекте он работает очень странно, пример с доки на гитхабе тоже не такой, как на картинке
Gena
moment.js вообще загадочная либа) если снять схему зависимостей webpack, то окажется что момент в бандл тянет все локализации, даже если ниодну из них не подключать)
Я знаю ))) Столкнулся с этим, когда RN их перестал подтягивать... они не могут по другому... там надо очень специально вебпаку говорить, какие нужны. Потому что их потом через динамический require же подключают )
Dmitry
собственно с ним изначально и заметили это
The Max
Или его данные или хз что, но когда я чистил место на диске, папка этого плагина была за 600 Ирония 😄
Gena
Эээ плагины к vscode это хорошо, но чтоб продакшн бандл в RN посмотреть, лучше всётаки его просто сгенерить с sourcemaps и воспользоваться source-map-explorer, т.е. я вот так делал: npm i -g source-map-explorer react-native bundle --entry-file index.js --platform ios --dev false --reset-cache --bundle-output main.bundle.js --sourcemap-output main.bundle.js.map source-map-explorer main.bundle.js main.bundle.js.map