wagtail/client/src/components/Icon/Icon.js
Thibaud Colas 61b6de2e4e Tidy up new React + API explorer for mobile (fixes #3607) (#3635)
* Remove useless CSS declaration

* Remove commented out styles

* Merge duplicate declarations

* Remove even more commented out code

* Move footer mq to footer declaration

* Remove more useless code

* Stop vendor prefixing for IE below 11

* Remove useless vendor prefixing

* Merge identical declarations

* Fix 1px overflow in content wrapper

* Fix explorer scrolling when open on mobile

* Remove unused import

* Add Redux performance measurements to explorer menu

* Rewrite explorer reducer to avoid unnecessary operations

* Stop changing reducer state on every action regardless of type

* Remove redundant children.isFetching property in nodes reducer

* Remove redundant children.isLoaded property in nodes reducer

* Remove redundant children.isError property in nodes reducer

* Refactor nodes explorer reducer with sub-reducer

* Fix linting issue

* Remove unused class name

* Change default icon className from empty string to null

* Remove old TODO comment

* Hoist icons in ExplorerItem component for better performance

* Add comment

* Add tooling for performance measurement of React components

* Clean up explorer panel component definition

* Make performance measurements opt-in

* Improve alignment of page explorer menu on mobile

* Close explorer on touchend rather than touchstart

* Comment out performance measurement code

* Remove fade transition completely
2017-06-09 00:08:04 +03:00

30 lines
680 B
JavaScript

import PropTypes from 'prop-types';
import React from 'react';
/**
* Abstracts away the actual icon implementation (font icons, SVG icons, CSS sprite).
* Provide a `title` as an accessible label intended for screen readers.
*/
const Icon = ({ name, className, title }) => (
<span>
<span className={`icon icon-${name} ${className || ''}`} aria-hidden></span>
{title ? (
<span className="visuallyhidden">
{title}
</span>
) : null}
</span>
);
Icon.propTypes = {
name: PropTypes.string.isRequired,
className: PropTypes.string,
title: PropTypes.string,
};
Icon.defaultProps = {
className: null,
title: null,
};
export default Icon;