import React from 'react'; import { Link } from 'react-router-dom' import Browsers from './browsers' import OperatingSystems from './operating-systems' import FadeIn from '../../fade-in' import numberFormatter from '../../number-formatter' import Bar from '../bar' import MoreLink from '../more-link' import * as api from '../../api' const EXPLANATION = { 'Mobile': 'up to 576px', 'Tablet': '576px to 992px', 'Laptop': '992px to 1440px', 'Desktop': 'above 1440px', } function iconFor(screenSize) { if (screenSize === 'Mobile') { return ( ) } else if (screenSize === 'Tablet') { return ( ) } else if (screenSize === 'Laptop') { return ( ) } else if (screenSize === 'Desktop') { return ( ) } } class ScreenSizes extends React.Component { constructor(props) { super(props) this.state = {loading: true} } componentDidMount() { this.fetchScreenSizes() if (this.props.timer) this.props.timer.onTick(this.fetchScreenSizes.bind(this)) } componentDidUpdate(prevProps) { if (this.props.query !== prevProps.query) { this.setState({loading: true, sizes: null}) this.fetchScreenSizes() } } fetchScreenSizes() { api.get(`/api/stats/${encodeURIComponent(this.props.site.domain)}/screen-sizes`, this.props.query) .then((res) => this.setState({loading: false, sizes: res})) } renderScreenSize(size) { const query = new URLSearchParams(window.location.search) query.set('screen', size.name) return (