From bc4fa6b198557a7f3989eb0865e2c77ac7451d29 Mon Sep 17 00:00:00 2001 From: kibigo! Date: Sun, 3 Dec 2017 23:26:40 -0800 Subject: Rename themes -> flavours ? ? --- .../themes/glitch/components/dropdown_menu.js | 211 --------------------- 1 file changed, 211 deletions(-) delete mode 100644 app/javascript/themes/glitch/components/dropdown_menu.js (limited to 'app/javascript/themes/glitch/components/dropdown_menu.js') diff --git a/app/javascript/themes/glitch/components/dropdown_menu.js b/app/javascript/themes/glitch/components/dropdown_menu.js deleted file mode 100644 index d30dc2aaf..000000000 --- a/app/javascript/themes/glitch/components/dropdown_menu.js +++ /dev/null @@ -1,211 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; -import ImmutablePropTypes from 'react-immutable-proptypes'; -import IconButton from './icon_button'; -import Overlay from 'react-overlays/lib/Overlay'; -import Motion from 'themes/glitch/util/optional_motion'; -import spring from 'react-motion/lib/spring'; -import detectPassiveEvents from 'detect-passive-events'; - -const listenerOptions = detectPassiveEvents.hasSupport ? { passive: true } : false; - -class DropdownMenu extends React.PureComponent { - - static contextTypes = { - router: PropTypes.object, - }; - - static propTypes = { - items: PropTypes.array.isRequired, - onClose: PropTypes.func.isRequired, - style: PropTypes.object, - placement: PropTypes.string, - arrowOffsetLeft: PropTypes.string, - arrowOffsetTop: PropTypes.string, - }; - - static defaultProps = { - style: {}, - placement: 'bottom', - }; - - handleDocumentClick = e => { - if (this.node && !this.node.contains(e.target)) { - this.props.onClose(); - } - } - - componentDidMount () { - document.addEventListener('click', this.handleDocumentClick, false); - document.addEventListener('touchend', this.handleDocumentClick, listenerOptions); - } - - componentWillUnmount () { - document.removeEventListener('click', this.handleDocumentClick, false); - document.removeEventListener('touchend', this.handleDocumentClick, listenerOptions); - } - - setRef = c => { - this.node = c; - } - - handleClick = e => { - const i = Number(e.currentTarget.getAttribute('data-index')); - const { action, to } = this.props.items[i]; - - this.props.onClose(); - - if (typeof action === 'function') { - e.preventDefault(); - action(); - } else if (to) { - e.preventDefault(); - this.context.router.history.push(to); - } - } - - renderItem (option, i) { - if (option === null) { - return
  • ; - } - - const { text, href = '#' } = option; - - return ( -
  • - - {text} - -
  • - ); - } - - render () { - const { items, style, placement, arrowOffsetLeft, arrowOffsetTop } = this.props; - - return ( - - {({ opacity, scaleX, scaleY }) => ( -
    -
    - -
      - {items.map((option, i) => this.renderItem(option, i))} -
    -
    - )} - - ); - } - -} - -export default class Dropdown extends React.PureComponent { - - static contextTypes = { - router: PropTypes.object, - }; - - static propTypes = { - icon: PropTypes.string.isRequired, - items: PropTypes.array.isRequired, - size: PropTypes.number.isRequired, - ariaLabel: PropTypes.string, - disabled: PropTypes.bool, - status: ImmutablePropTypes.map, - isUserTouching: PropTypes.func, - isModalOpen: PropTypes.bool.isRequired, - onModalOpen: PropTypes.func, - onModalClose: PropTypes.func, - }; - - static defaultProps = { - ariaLabel: 'Menu', - }; - - state = { - expanded: false, - }; - - handleClick = () => { - if (!this.state.expanded && this.props.isUserTouching() && this.props.onModalOpen) { - const { status, items } = this.props; - - this.props.onModalOpen({ - status, - actions: items, - onClick: this.handleItemClick, - }); - - return; - } - - this.setState({ expanded: !this.state.expanded }); - } - - handleClose = () => { - if (this.props.onModalClose) { - this.props.onModalClose(); - } - - this.setState({ expanded: false }); - } - - handleKeyDown = e => { - switch(e.key) { - case 'Enter': - this.handleClick(); - break; - case 'Escape': - this.handleClose(); - break; - } - } - - handleItemClick = e => { - const i = Number(e.currentTarget.getAttribute('data-index')); - const { action, to } = this.props.items[i]; - - this.handleClose(); - - if (typeof action === 'function') { - e.preventDefault(); - action(); - } else if (to) { - e.preventDefault(); - this.context.router.history.push(to); - } - } - - setTargetRef = c => { - this.target = c; - } - - findTarget = () => { - return this.target; - } - - render () { - const { icon, items, size, ariaLabel, disabled } = this.props; - const { expanded } = this.state; - - return ( -
    - - - - - -
    - ); - } - -} -- cgit