• Зачем мне обновлять refreshToken каждый месяц?

    @dron112 Автор вопроса
    tantumus21, спасибо большое, что разжевали для меня эту тему ))))))) Теперь стало яснее )
  • Зачем мне обновлять refreshToken каждый месяц?

    @dron112 Автор вопроса
    tantumus21, а почему пользователя не выкидывает из системы каждые 15 минут, если и refresh и access токен приходят новые. Как отсчитывается время жизни refresh token, с какого момента ?

    refresh token по логике тоже должен жить 15 минут, если он каждые 15 минут новый, нет ?
  • Как сделать, чтобы regExp пропускал тире?

    @dron112 Автор вопроса
    Stalker_RED, пока хочу что бы проходили слова (Анна-Мария, Ян Иванов). Да, ёжик не пройдёт
  • Почему action изменяет не те поля в state redux?

    @dron112 Автор вопроса
    black1277, а нужен ли оператор break если есть return ?
  • Почему код работает так?

    @dron112 Автор вопроса
    Strannyk, а как в таком случае сделать ключ объекта не строкой
    нужно так:
    {
      article: 'article.js'',
      blog: 'blog.js'
    }

    Через функцию eval() ?
  • Почему присвоение переменной происходит раньше времени?

    @dron112 Автор вопроса
    Михаил, добавление события происходит асинхронно ? Почему ?
  • Как сделать realtime чат на Vue.js?

    @dron112 Автор вопроса
    хммм.... а ты хорош )
  • Почему устаревает Token GitHub после push?

    @dron112 Автор вопроса
    Daria Motorina, Спасибо, большое )
  • Почему устаревает Token GitHub после push?

    @dron112 Автор вопроса
    Daria Motorina, а если мне нужно поделиться своим проектом через GitHub, и что бы он после git clone работал сразу ?

    Я делаю тестовое задание где использую API GitHub, для получения пользователей, дальнейшей сортировки их, детального просмотра и т.д. Делаю SPA на Vue.js

    Что бы показать работу работодателю, мне нужно отправить ему ссылку на гит, но приложение у него не запуститься по причинам описанным выше.
    Дарья, подскажи как в такой ситуации поступают обычно ?

    Работодатель будет использовать свой Token или мне нужно об этом позаботиться и найти другое решение, чтобы API работал без token ?
  • Как превысить лимит запросов к API GitHub?

    @dron112 Автор вопроса
    Алекс К, спасибо за идею. Не сочтите за наглость, просто очень нужно))
    Не могли бы Вы поделиться мыслями где лучше кешировать запросы на клиенте, я пишу приложение на vue.

    Мне в голову приходит только localStore, но насколько это правильно и хватит ли мне в нём места ?
  • На android устройствах не работают свойства media min-width?

    @dron112 Автор вопроса
    Ольга Тюлихова,
    @import '../../../scss/variables.scss';
    @import '../../../scss/mixins.scss';
    
    .items-page-main-wrapper {
      & .mob-menu {
        position: unset;
      }
    }
    
    .items-page {
      position: relative;
      &__cards-wrapper--authors {
        display: flex;
        flex-wrap: wrap;
        & .card__icon-box {
          display: none;
        }
      }
      & .loader {
        width: 100%;
        height: 900px;
        display: flex;
        justify-content: center;
        align-items: center;
    
        & div {
          height: auto !important;
        }
      }
    
      & .form-control {
        outline: none;
      }
    
      &__tab {
        display: block;
        width: 127px;
        min-height: 40px;
        padding: 10px 0 0 17px;
      }
    
      &__tab-list {
        background: no-repeat url('../../../imgs/icon-burger.svg') 10px 8px/20px
          20px;
      }
      &__tab-map {
        background: no-repeat url('../../../imgs/location-icon.svg') 10px 8px/20px
          20px;
      }
    
      .audio-guide-block {
        position: unset;
        margin: 20px 0 0 0;
      }
    
      .number-el-found {
        margin: 35px 0 0 0;
        & span {
          padding-left: 75px;
        }
        &__box {
          min-height: 65px;
          display: flex;
          justify-content: normal;
        }
        &__title_monuments {
          padding-top: 10px;
          padding-left: 73px;
        }
      }
      &__cards-wrapper:not(.items-page__cards-wrapper--authors) {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        /*    &--authors {
    
        } */
        & .card-horizont-new {
          margin: 0;
          &__img-block {
            width: 630px;
            min-height: 426px;
            background: $c-light-grey;
            &__card-horizont__img {
              max-width: unset;
              width: 100%;
              max-height: 426;
            }
          }
          & .img-fluid {
            width: 630px;
            height: 426px;
          }
        }
      }
    
      & .breadcrumb-wrapper {
        margin: 18px 0 27px 0;
      }
      &__button {
        display: block;
        width: 300px;
        min-height: 60px;
        margin: 0 auto 70px auto;
        background: #ff4438;
        &--list {
          margin: 10px 55px 0 848px;
          width: 127px;
          height: 40px;
          padding: 0 0 0 21px;
          width: 127px;
          min-height: 40px;
          background: no-repeat url('../../../imgs/icon-burger.svg') 10px
            center/20px 20px #ff4438;
        }
      }
      &__location-button {
        position: relative;
        display: block;
        cursor: pointer;
        padding: 20px;
    
        &::before {
          content: '';
          position: absolute;
          width: 18px;
          height: 19px;
          background: no-repeat url('../../../imgs/location-icon.svg');
          right: 73px;
          cursor: pointer;
        }
      }
      &__title {
        position: relative;
        z-index: 1;
        width: max-content;
        font-weight: bold;
        font-size: 60px;
        line-height: 56px;
      }
    
      & .group-icon {
        width: 58px;
        height: 60px;
        background-color: unset;
      }
    
      &__card-wrapper {
        display: flex;
        flex-direction: column;
        width: 630px;
        margin: 0 0 70px 0;
        &:nth-child(odd) {
          margin-right: 30px;
        }
        /*    &--person {
          & img {
            width: 400px;
            height: 454px;
          }
        } */
      }
    
      /*  &__card-wrapper-person {
      
      } */
    
      &__filter-advanced-wrapper {
        display: flex;
        flex-wrap: wrap;
        /     max-width: 1100px; /
        margin: 30px 0;
      }
      &__nothing-found-wrapper {
        text-align: center;
        margin-bottom: 70px;
      }
      &__filter-advanced-label {
        position: relative;
        margin: 10px 70px 10px 0;
        cursor: pointer;
        font-weight: bold;
        &::before {
          content: '';
          position: absolute;
          left: 115%;
          top: 6px;
          width: 15px;
          height: 10px;
          background: no-repeat url('../../../imgs/svg/arrow-down.svg');
          cursor: pointer;
        }
      }
    
      .react-tabs__tab-list {
        border: none;
        display: flex;
      }
      .react-tabs__tab {
        border-radius: 5px;
        border: none;
        margin: 0 10px;
      }
      .react-tabs__tab--selected {
        background: $c-red;
        color: $c-white;
      }
    }
    
    .items-page__pre-content-wrapper {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin: 20px 0 30px 0;
      p {
        margin-bottom: 0;
      }
    }
    
    .items-page__pre-content-icon {
      width: 40px;
      height: 40px;
      margin-right: 10px;
    }
    
    .items-page__pre-content-count {
      display: flex;
      align-items: center;
      p {
        font-weight: 500;
        font-size: 16px;
        line-height: 20px;
        margin-bottom: 0;
      }
    }
    
    .items-page__pre-content-cancel {
      font-size: 14px;
      line-height: 20px;
      letter-spacing: 1px;
      color: #131921;
      opacity: 0.56;
    }
    
    @media (max-width: 650px) {
      .items-page {
        & .form-control {
          &::placeholder {
            color: transparent;
          }
        }
        &__tab-list-page {
          position: absolute;
          left: 20px;
          top: 125px;
          width: 300px;
          text-align: center;
        }
        & .react-tabs__tab-panel--selected {
          margin: 100px 0 0 0;
          & .button-large {
            width: unset;
          }
    
          & .search-filter__popup-button-content p {
            display: none;
          }
        }
      }
    }
    
    @media (min-width: 651px) {
      .items-page {
        &__tab-list-page {
          position: absolute;
          right: 23px;
          top: 40px;
          width: 300px;
          text-align: center;
        }
      }
    }
    
    @media (min-width: 768px) {
      .items-page {
        &__add-museum-link {
          display: block;
          margin: 0 0 0 100px;
        }
      }
    }
    
    @media (min-width: 900px) {
      .items-page {
        &__tab-list-page {
          right: 88px;
        }
      }
    }
    
    @media (min-width: 990px) {
      .museums-page {
        &__add-museum-link {
          display: block;
          margin: 0 0 0 100px;
        }
      }
    }
    
    @media (max-width: 1280px) {
      .museums-page {
        &__add-museum-link {
          order: 5;
        }
      }
    }
    
    @media (min-width: 1280px) {
      .items-page {
        .audio-guide-block {
          position: relative;
        }
      }
    }
  • Где здесь замыкание?

    @dron112 Автор вопроса
    Владимир, отличие в том что переменная a объявлена в глобальном scope, функция bar вызывается в этом scope. Поэтому когда функция вызвана она ищет переменную в global scope

    Книга "Вы не знаете js: замыкание и объекты", страница 98.602921e346634406452192.jpeg
  • Где здесь замыкание?

    @dron112 Автор вопроса
    Получается замыкание это когда - переменные в одном scope не уничтожаются сборщиком мусора, потому что функции из этого scope в будущем будут обращаться к этим переменным ?
  • Где здесь замыкание?

    @dron112 Автор вопроса
    Так уже яснее.
    еще вопрос, в этом коде функция видит переменную по замыканию или по правилам поиска по лексической области видимости ?

    let a = 1
    function bar() {
      console.log('a', a)
    }
  • Как сократить множественный v-bind?

    @dron112 Автор вопроса
    no_one_safe, да но у меня же есть v-for, как в таком случае быть ?
  • Что посмотреть для понимания связки Vue&Vuex?

    @dron112 Автор вопроса
    а можешь ещё пояснить где в этом getter'ы для чего они используются и почему кешируют состояние ?
  • В чём отличие события и слушателя в JS?

    @dron112 Автор вопроса
    т.е. в моём случае callback - это и слушатель, и handler, и обработчик события
  • Когда запускаю composer install выходит такая ошибка, что это?

    @dron112 Автор вопроса
    Ок, подскажите как поставить ?
    и для чего они нужны ведь я composer пытаюсь запустить
  • Зачем в Wordpress по-умолчанию вшита библиотека Jquery?

    @dron112 Автор вопроса
    Хороший ответ, спасибо, но у меня появилось ещё пару вопросов.

    Вы написали, что Jquery нужна для того что бы:

    a) Те плагины, которые мы устанавливаем и которые используют в своей работе jquery не тащили за собой по библиотеке и не множили их, а подключались к общей, но почему некоторые разработчики предпочитают снести дефолтную версию Jquery и поставить свою, ведь это может негативно сказаться на работе тех расширений которые используют дефолтную библу.
    Если так делают (в некоторых курсах видел), значит в этом есть какая-то логика и сайты и плагины не падают (вроде))) )

    б) Вы сказали, что Jquery нужна что бы можно было с любого браузера попасть в админку, где можно про это подробнее почитать? Дадите ссылку на документацию где раскрывается эта тема подробнее (я имею ввиду про Jquery и как она помогает WP работать ? ) Может она закрывает еще какие-нибудь дыры ?