• Добавление нескольких валют?

    @formasters777 Автор вопроса
    сделал просто, у товара есть базовая стоимость по базовой валюте,
    если покупатель выбирает на сайте другую валюту,
    то в товаре есть объект с курсом валют на текущий день (хотя правильней наверно использовать какой-либо глобальный объект window или т.п.),
    страница перезагружается и клиент пересчитывает стоимость,
    всё как string,
    если нужна конвертация или калькуляция, то в js это не проблема, для преобразования в цифры.
    но есть нюанс в кол-ве знаков после запятой и округлении, при подсчёте некоторые значения давали на 1 копейку меньше,
    тут нужно делать тесты.
    также новая валюта и пересчёт добавляется в новый объект корзины и отправляется в базу данных.
  • Соединить несколько div линией?

    @formasters777 Автор вопроса
    Сергей delphinpro,
    думал о чём-то подобном, но пока нашёл только один пример, который можно использовать,
    люблю css и html,
    но, после экспорта через плагин в фигме, получил тот же сss, но в позиции абсолют,
    и теоретически, если сделать слушатель ширины окна, можно попробовать сдвигать элементы хотя вправо, и это также может быть альтернативным решением,
    хотя сделать это в canvas скорей всего также можно.
  • Соединить несколько div линией?

    @formasters777 Автор вопроса
    Ankhena,
    спасибо,
    я построил круг, и выполнил его настройку,
    в библиотеках типа leader-line или leader-line-new, react-xarrows можно ли соединить линией элементы из разных позиций position: absolute и relative, то есть кнопки находятся в грид флекс контейнере, а круг в позиции абсолют,
    их можно таким образом соединять?, или и кнопки и круг должны быть в одном контейнере,
    пока я пробовал только react-xarrows:
    <Xwrapper>
          <Xarrow start={"comp1"} end={"comp2"}  />
     </Xwrapper>

    или тут нужно создавать глобальный контекст, оборачивать провайдером всё.
    6448d47094842725316524.jpeg
  • Вертикальный padding между контейнерами?

    @formasters777 Автор вопроса
    Я смотрел базовый вариант с rowSpacing, в devtools ничего такого не видел, но до этого прочёл, что до gap использовали отрицательный margin.
    Или Вы имели ввиду node_modules?
    .flex-container {
    display: flex;
    flex-wrap;
    margin: -40px -20px;
    }
    .flex-item {
    margin: 40px 20px;
    }

    6446f3da8024f190148843.jpeg
  • Вертикальный padding между контейнерами?

    @formasters777 Автор вопроса
    Да, я прочитал, что это свойство появилось в 2021.
    Я пока остановился на таком варианте.
    Наверно, в его основе лежит отрицательный margin, но в MUI и др. библиотеках всё по своему сделано.
    <Box sx={{ width: '100%' }}>
          <Grid container rowSpacing={{ xs: 10, sm: 20, md: 30 }} >
            <Grid item xs={6} >
              <Item sx={{border:"1px solid black"}}>1</Item>
            </Grid>
            <Grid item xs={6}>
              <Item sx={{border:"1px solid black"}}>2</Item>
            </Grid>
            <Grid item xs={6}>
              <Item sx={{border:"1px solid black"}}>3</Item>
            </Grid>
            <Grid item xs={6}>
              <Item sx={{border:"1px solid black"}}>4</Item>
            </Grid>
          </Grid>
        </Box>


    Хотя у них есть вариант gap и на гридах:
    <Box sx={{ width: 1 }}>
          <Box display="grid" gridTemplateColumns="repeat(12, 1fr)" gap={10}>
            <Box gridColumn="span 8">
              <Item>xs=8</Item>
            </Box>
            <Box gridColumn="span 4">
              <Item>xs=4</Item>
            </Box>
            <Box gridColumn="span 4">
              <Item>xs=4</Item>
            </Box>
            <Box gridColumn="span 8">
              <Item>xs=8</Item>
            </Box>
          </Box>
        </Box>
  • Доступ к камере webview react?

    @formasters777 Автор вопроса
    Но, обновлять его не очень хочется каждый раз, а если это приложение в каком-нибудь play market, они что на все свои apk ставят скрипт обновления, очень сомнительно это выглядит,
    я пробовал в преакте джаваскрипт код по вызову функции Доступа к камере,
    но пока только на ПК, и да уведомление появляется,
    но, тут как понимаю проблема будет не в самом показе разрешения и прав для использования камеры устройства, даже если с http я покажу уведомление принудительно,
    камера скорей всего не запустится или будут ошибки.
    Хорошо буду пробовать.
  • Добавление нескольких валют?

    @formasters777 Автор вопроса
    Например, если есть три валюты,
    при выборе валюты на клиенте, происходит перезагрузка и отправляется запрос с значением типа валюты, сервер видит значение,
    и для этого значения отправляет число мультипликатор для умножения,
    сервер создаёт мультипликатор раз в сутки,
    но в данном случае данные должны быть в body или кукис?
    или мне добавлять объект в ответ с уже действительными цифрами валют, и умножать всё на единицу,
    и в корзине фактическая цена, которая есть изначально в документе продукта, она уже не учитывается при расчёте в этом случае?
  • Добавление нескольких валют?

    @formasters777 Автор вопроса
    GNUBack,
    но, в данном случае имея схему:
    - прайс лист в csv формате, где наверно курс и указан и берётся где-то.
    - или прайс-лист генерируется от базы в сsv формат, и изменения прайса уже синхронизируются с базой.
    Сервер один раз в день получает курс, и дальше отдаёт мультипликатор число на клиент?
  • Цепочка запроса с пустым значением?

    @formasters777 Автор вопроса
    Интересный ответ,
    Вы формируете запрос прямо вначале инициализации переменной, и в нужном формате;
    удобно смотреть какой req.query приходит, и как выглядит запрос к нему.
    Значит, всё таки нужно использовать пустой объект для выполнения метода find, об этом не подумал вначале,
    вижу очень много вариаций реализации таких запросов,
    например, нашёл такой вариант, который подошёл также:
    let cat = req.query.cat;
      let subcat = req.query.subcat;
    
    let filters = {};
      if (cat) {
        filters = {
          ...filters,
          category: cat,
        };
      }
    
      if (subcat) {
        filters = {
          ...filters,
           subcategory: subcat.split(",")
        };
      }
    
     const movies = await Movie.find(filters);


    или такой:
    if (cat) {
             const movies = await Movie.find({  some text   });
    }
    
    if (subcat) {
             const movies = await Movie.find({  some text   });
    }
  • Совмещение параметров запроса?

    @formasters777 Автор вопроса
    Также думал об aggregate, но насколько понимаю, он применяется для построения более сложных конвейерных операций поиска или расчёта значений, например, обход выборки в 300.000 записей для поиска конкретных значений, поиска среднего числа продаж и т.п., В описании он запускается один раз, а find, используется для множественных запросов.
    Но всё нужно проверять на практике.
    Также можно составить более сложный запрос через find,
    const search = req.query.search || "";
    	let sort = req.query.sort || "weight";
    	let genre = req.query.car|| "All";
    const somedata= await Product.find({ name: { $regex: search, $options: "i" } })
    			.where("car")
    			.in([...car]) 
    			.sort(sortBy)
    			.skip(page * limit)
    			.limit(limit);

    Но, скорей всего всё зависит от типа построения самого поиска, ведь можно в switch вставлять await Product.find({ name: { $regex: search, $options: "i" } })
  • Задержка и дёргание при переключении страниц?

    @formasters777 Автор вопроса
    А как тогда быть с веб вёркером, или отдельный поток UI для респонзив мобильной версии сайта не применяется? Это лишнее звено в данном случае.
    Например, в телеграмме, при клике на гамбургер всё плавно, но там и перехода нет с загрузкой фото на следующей странице и меню. И они используют наверно нативный мобильный gpu рендер, весь UI в отдельном потоке.
    Вначале думал поставить событие по типу DOMContentLoaded или подобное, но Ваше решение немного лучше.
    Попробую ещё установить пару тоаст библиотек, и глянуть, может у них там анимация напрямую через requestanimationframe сделана, и может переход будет плавней.
    Фильтры и тени для меню не использовал, только прозрачность 0.75.
    Да, для лучшей отдачи фпс лучше,иногда использовать может даже бокс шедов, возможно,он не так грузит как background-color, но у меня на телефоне, максимум 44фпс, не 60.
  • Актуальна ли адаптивная верстка на Bootstrap 5 в 2023 году?

    @formasters777
    Дмитрий Орлов, когда Вы получите задание, проект, или заказ,
    Вы можете встретить в нём кучу ошибок, странных стилей, недоработок, Вы может будете 10-й человек, которому что-то дали изменить в проекте.
    Если речь идёт только о фронт-енд'е, Вам желательно знать естественно и bootstrap, tailwind, antdesign, сетки, резиновую адаптивную вёрстку, flexbox, css grid, как блоки работают.
    Но, по факту в нормальных проектах их не используют.
    Здесь уже вопрос, что Вы уже пытаетесь работать с тем, что есть.
    Стили добавить, поправить то, что создано до Вас,
    может проект писали 5 лет назад, и захотели стиль поменять.

    Но, также стоит учесть, что ради денег и заказа, естественно некоторые нахваливают эту технологию. Т.к. им бабосы нужны, и побыстрей закрыть проект.
    Это как прийти строителем в дом, в котором есть много косяков, в этом случае строителю нужно получить деньги, а не рассказывать владельцу, как тут всё плохо.
  • Получение и обработка ip address?

    @formasters777 Автор вопроса
    Думаю, что большинство юзеров использует максимум прокси плагин в браузере,
    речь больше идёт об отсеивании реальных юзеров от ботов и защиты от атак,
    есть конечно системы на базе Device Fingerprinting, IP Reputation и др., но это более глубокий подход, для этого нужна сеть разных сайтов,
    пока остановился на cookies, заголовках, WebSockets, ip check, клиент, сервер, списках
  • Актуальна ли адаптивная верстка на Bootstrap 5 в 2023 году?

    @formasters777
    Дмитрий Орлов, Вы можете подключить bootstrap-grid.css или написать под себя похожий,
    можно подключать из библиотеки bootstrap только 1 компонент, например только button, в import там нужно ссылаться на node-modules, если речь о статике и html,
    то в файлике bootstrap.min должны быть стили на button, их нужно искать,
    но это только если Вы хотите по максимуму сократить 30кБ
  • Общение express с внешней средой?

    @formasters777 Автор вопроса
    насколько понимаю, если код, написан уже на express,
    то это или библиотека (или скомпилированный код под js), который делает "prevent default" для req res, и отправляет данные своим способом,
    но на сайт уже они попасть не смогут т.к. протокол другой уже,
    а если это не сайт, а приложение и сервер, то в приложение возможно вставить какой либо модуль, который будет мимо http передавать данные, и их в dev tools уже увидеть нельзя будет?
  • Как усложнить копирование текста с сайта на Google sites?

    @formasters777
    romvup, разрешить кому-либо доступ к файлу, сделать ссылку для общего доступа.
    Вы можете отправить другим людям ссылку на свой файл, чтобы любой пользователь в Интернете, у которого есть ссылка, мог ее использовать.
    Если скрипт на js, то js можно отключить для сайта через браузер,
    или зайти в Просмотреть код и скопировать html,
    возможно модуль pdf viewer на google sites, но в бесплатной версии...
  • Написание кода коротко плохо?

    @formasters777
    Да, это правда, но очень похож синтаксис.
    недавно столкнулся с какой-то ошибкой и стал применять такую запись.
  • Добавление и изменение объекта в массиве?

    @formasters777 Автор вопроса
    Для полного отделения получаемых данных от context,
    изменения производятся только в контексте, а не в входящих данных,
    но тут всё зависит от логики выполнения, получения универсальности.
  • Как посчитать сокращённое выражение?

    @formasters777
    в языке javascript есть правила приоритета операторов (их около 20),
    * - + = += -= , -это всё операторы,
    дальше всё, как в математике обычной,
    если у Вас много одинаковых плюс минус плюс, они имеют одинаковый приоритет и вычисляются слева направо,
    Вы можете написать простую чистую функцию,
    например:
    const myfunction = (a,b,c) => {
    return a*(b-c);
    };
    const answer = myfunction(3,8,6);
    console.log(answer);
  • Возможно ли поменять состояние одного компонента, для изменения другого?

    @formasters777 Автор вопроса
    в этом случае перебрал свой context, и уже в нём стал менять что мне нужно,
    с useEffect можно добиться нужного результата также в этом случае,
    но в нём нужно делать поиск элемента, поменялось ли то значение, что нужно,
    возможно нужно использовать memo также,
    ловить события, которые не нужно контролировать, проверять.