#cursor
нужно еще вешать pointer-events: none
// функции "строительные кирпичи":
// у нас есть каррированая функция суммирования
const add = a => b => a + b;
// и есть функция композици
const compose = (f, g) => v => f(g(v));
// бизнес логика:
// ее просто вычислим из "кирпичей"
const f = compose(add(5), add(3));
// грязные хелперы из рантайма языка, но я их напишу, чтоб пример работал:
function getInput() { return Math.floor(Math.random() * 10); }
function print(s) { console.log(s); }
// точка входа
function main() {
const v = getInput();
const r = f(v);
print(r);
}
const add = a => b => a + b;
const f = v => add(5)(add(3)(v));
const f = v => (b => 5 + b)((b => 3 + b)(v));
const f = v => 5 + 3 + v;
const f = v => 5 + 3 + v;
// грязные хелперы из рантайма языка:
function getInput() { return Math.floor(Math.random() * 10); }
function print(s) { console.log(s); }
// точка входа
function main() {
const v = getInput();
const r = f(v);
print(r);
}
// грязные хелперы из рантайма языка:
function getInput() { return Math.floor(Math.random() * 10); }
function print(s) { console.log(s); }
// точка входа
function main() {
const v = getInput();
const r = 8 + v;
print(r);
}
async function get_user_name() {
try {
let user_data = await AsyncStorage.getItem('user_data') || 'none';
let parse = JSON.parse(user_data);
return parse.user_id;
} catch (error) {
// Error retrieving data
console.log(error.message);
}
}
(async () => {
const user_id = await get_user_name();
// здесь user_id уже "дождались", его можно в другую функцию отдать, в том числе в синхронную
console.log(user_id);
})()
async function test() {}
console.log(test()); // Promise
// f чистая
function f(params) {
// не смотря на то, что возвращаемая функция содержит сайд эффект
// но мы ее просто возвращаем как результат, а не запускаем
return () => doEffectWith(params);
}
1. Вот тут очень просится цикл, а вот тут миксин или хотя бы переменные.
2. Вендорный код - код который Вы взяли у других людей, я в частности про этот файл, зачем он тут, а не просто описан в зависимостях в package.json?
Заодно и артефакты сборки стоит убрать под .gitignore
3. Нужно .eslintrc положить в корень проекта (для начала хватит просто подключить его рекомендации в extends секции) и поставить сам eslint, так же в последних версиях плагин не включается по умолчанию, нажмите его на панели состояния снизу справа и разрешите везде.
4. Я рассматривал этот проект с точки зрения "HR мне скинул github как портфолио кандидата, и спрашивает звать ли на собеседование", отсутствие нормальной истории в коммитах - это один их поводов сказать "не звать", делайте более атомарные коммиты, вроде "configure gulp", "add digits buttons" и так далее, можно еще и тут стилистики ангуляр придерживаться, хотя это и опционально.
5. Список разрешенных символов всегда будет меньше списка запрещенных, удаляйте все что не разрешено, что то вроде
/[^\d.]/