Ответы пользователя по тегу JavaScript
  • Заменить все совпадения в тексте на ссылку?

    Legendarniy
    @Legendarniy Автор вопроса
    В общем, поступил так, взял готовое решение для Mardown React.

    Код для вставки:
    import React, { PureComponent } from 'react';
    import PropTypes from 'prop-types';
    import { Link } from 'react-router-dom';
    import Markdown from 'react-markdown';
    import { getPaymentURLByType } from 'utils/URLsCollections';
    
    function RouterLink(text) {
      return (
        text.href.match(/^(https?:)?\/\//)
          ? <a href={text.href}>{text.children}</a>
          : <Link to={getPaymentURLByType(text.href)}>{text.children}</Link>
      );
    }
    
    class ParagraphComponent extends PureComponent {
      static propTypes = {
        caption: PropTypes.string,
        text: PropTypes.string,
      };
    
      static defaultProps = {
        caption: '',
        text: '',
      };
    
      render() {
        const { caption, text } = this.props;
        return (
          <div data-block>
            <h3>{caption}</h3>
            <Markdown
              source={text}
              renderers={{ link: RouterLink }}
            />
          </div>
        );
      }
    }
    
    export default ParagraphComponent;


    Решение взято на время, т.к. не пойму, как используя такое решение
    text.replace(/\[(.*?)\]\((.*?)\)/gi, `${<Link to={getPaymentURLByType('$2')}>{'$1'}</Link>}`)

    Заменить в тексте [object Object] из-за того что использую template literal.
    Ответ написан
    Комментировать
  • Слияние двух массивов объектов с определенным условием, что делаю не так?

    Legendarniy
    @Legendarniy Автор вопроса
    Задачу решил. Вот ответ.
    Смотреть тут
    Ответ написан
    Комментировать
  • Почему после автозаполнения input регулярка выдает неверное значение?

    Legendarniy
    @Legendarniy Автор вопроса
    Решил проблему. При автозаполнении хром например ставит вовсе не пробелы, а символ с нулевой шириной. Сделал вот так .replace(/[\u2060]/g, '')
    и всё стало работать как надо. Трим и замену пробельных символов естественно убрал.
    Ответ написан
    Комментировать
  • Ошибка в подгрузке чанков, что не так?

    Legendarniy
    @Legendarniy Автор вопроса
    Максим, Проверил на каких браузерах это возникает, приходит даже с не старых браузеров
    Headers: Cache-Control: no-cache; Connection: close; Pragma: no-cache; Content-Type: application/json; Accept: application/json, text/plain, */*; Accept-Encoding: gzip, deflate, br; Accept-Language: ru,en;q=0.8; Cookie: ym_uid=149837534368628556; ga=GA1.2.1338437862.1512111490; _gid=GA1.2.386643296.1513581524; Host: returns; Referer: http://< url >/personal/orders/; User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.137 YaBrowser/17.4.1.1026 Yowser/2.5 Safari/537.36; Origin: http://< url >; Content-Length: 162; Authorization-Domain: http://< url >; Authorization-Session: < сессия >.
    {
      "message": "Loading chunk 0 failed.",
      "stack": "Error: Loading chunk 0 failed.\n    at HTMLScriptElement.n (http://< url >/widget/media/index.js?:2:500)"
    }


    Если честно в тупике... Может кто знает?
    Ответ написан
  • Скачивание PDF файла из response. Почему файл PDF пустой?

    Legendarniy
    @Legendarniy Автор вопроса
    В общем, нашлось решение. Ходил вокруг него много раз, но благодаря Александру Таратину, который еще раз о нем сказал и удалось решить проблему.

    Проблема крылась в том, что у меня есть отдельный файл, который создает в запросе свои header и httpConfig'и и надо было лишь добавить туда responseType: 'blob'

    Вот так

    export const getPdfConfig = axios.create({
        ...httpConfig,
        responseType: 'blob',
        headers: {
            ...customHeaders,
            'Content-Type': 'application/pdf',
        },
    }).get;


    Ну а затем использовать fileSaver.
    Ответ написан
    Комментировать