Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
import autobind from 'core-decorators/lib/autobind';
import React from 'react';
import Type from 'prop-types';
import Modernizr from 'modernizr';
import { getMatchMedia, releaseMatchMedia } from '../lib/match-media';
const IS_BROWSER = typeof window !== 'undefined';
const SUPPORTS_TOUCH = IS_BROWSER && (Modernizr.pointerevents || Modernizr.touchevents);
/**
* Компонент, имплементирующий поддержку медиа запросов в шаблонах.
* Рендерит внутренние компоненты/разметку исходя из соответствия условиям запроса.
* Для `query` используется window.matchMedia с полифиллом для IE9.
* Можно использовать кастомные запросы из `src/mq/mq.json`, например `--small`.
* Пока браузеры не поддерживают CSS4 Media Queries, поддержка тач-событий определяется через `touch`.
*/
class Mq extends React.Component {
static propTypes = {
/** Медиа запрос */
query: Type.string,
/** Запрос на поддержку тач-событий */
touch: Type.bool,
/** Дочерние элементы `Mq` */
children: Type.node,
ref={input => !Modernizr.touchevents && input && input.focus()}
className={Styles.newTodoInput}