From 81ef21a0c802f1d905f37a2a818544a8b400793c Mon Sep 17 00:00:00 2001 From: Renaud Chaput Date: Sat, 25 Feb 2023 14:34:32 +0100 Subject: [Glitch] Rename JSX files with proper `.jsx` extension Port 44a7d87cb1f5df953b6c14c16c59e2e4ead1bcb9 to glitch-soc Signed-off-by: Claire --- .../glitch/features/compose/components/dropdown.js | 243 --------------------- 1 file changed, 243 deletions(-) delete mode 100644 app/javascript/flavours/glitch/features/compose/components/dropdown.js (limited to 'app/javascript/flavours/glitch/features/compose/components/dropdown.js') diff --git a/app/javascript/flavours/glitch/features/compose/components/dropdown.js b/app/javascript/flavours/glitch/features/compose/components/dropdown.js deleted file mode 100644 index fe4ab36f5..000000000 --- a/app/javascript/flavours/glitch/features/compose/components/dropdown.js +++ /dev/null @@ -1,243 +0,0 @@ -// Package imports. -import classNames from 'classnames'; -import PropTypes from 'prop-types'; -import React from 'react'; -import Overlay from 'react-overlays/Overlay'; - -// Components. -import IconButton from 'flavours/glitch/components/icon_button'; -import DropdownMenu from './dropdown_menu'; - -// Utils. -import { assignHandlers } from 'flavours/glitch/utils/react_helpers'; - -// The component. -export default class ComposerOptionsDropdown extends React.PureComponent { - - static propTypes = { - isUserTouching: PropTypes.func, - disabled: PropTypes.bool, - icon: PropTypes.string, - items: PropTypes.arrayOf(PropTypes.shape({ - icon: PropTypes.string, - meta: PropTypes.string, - name: PropTypes.string.isRequired, - text: PropTypes.string, - })).isRequired, - onModalOpen: PropTypes.func, - onModalClose: PropTypes.func, - title: PropTypes.string, - value: PropTypes.string, - onChange: PropTypes.func, - container: PropTypes.func, - renderItemContents: PropTypes.func, - closeOnChange: PropTypes.bool, - }; - - static defaultProps = { - closeOnChange: true, - }; - - state = { - open: false, - openedViaKeyboard: undefined, - placement: 'bottom', - }; - - // Toggles opening and closing the dropdown. - handleToggle = ({ type }) => { - const { onModalOpen } = this.props; - const { open } = this.state; - - if (this.props.isUserTouching && this.props.isUserTouching()) { - if (this.state.open) { - this.props.onModalClose(); - } else { - const modal = this.handleMakeModal(); - if (modal && onModalOpen) { - onModalOpen(modal); - } - } - } else { - if (this.state.open && this.activeElement) { - this.activeElement.focus({ preventScroll: true }); - } - this.setState({ open: !this.state.open, openedViaKeyboard: type !== 'click' }); - } - }; - - handleKeyDown = (e) => { - switch (e.key) { - case 'Escape': - this.handleClose(); - break; - } - }; - - handleMouseDown = () => { - if (!this.state.open) { - this.activeElement = document.activeElement; - } - }; - - handleButtonKeyDown = (e) => { - switch(e.key) { - case ' ': - case 'Enter': - this.handleMouseDown(); - break; - } - }; - - handleKeyPress = (e) => { - switch(e.key) { - case ' ': - case 'Enter': - this.handleToggle(e); - e.stopPropagation(); - e.preventDefault(); - break; - } - }; - - handleClose = () => { - if (this.state.open && this.activeElement) { - this.activeElement.focus({ preventScroll: true }); - } - this.setState({ open: false }); - }; - - handleItemClick = (e) => { - const { - items, - onChange, - onModalClose, - closeOnChange, - } = this.props; - - const i = Number(e.currentTarget.getAttribute('data-index')); - - const { name } = items[i]; - - e.preventDefault(); // Prevents focus from changing - if (closeOnChange) onModalClose(); - onChange(name); - }; - - // Creates an action modal object. - handleMakeModal = () => { - const { - items, - onChange, - onModalOpen, - onModalClose, - value, - } = this.props; - - // Required props. - if (!(onChange && onModalOpen && onModalClose && items)) { - return null; - } - - // The object. - return { - renderItemContents: this.props.renderItemContents, - onClick: this.handleItemClick, - actions: items.map( - ({ - name, - ...rest - }) => ({ - ...rest, - active: value && name === value, - name, - }), - ), - }; - }; - - setTargetRef = c => { - this.target = c; - }; - - findTarget = () => { - return this.target; - }; - - handleOverlayEnter = (state) => { - this.setState({ placement: state.placement }); - }; - - // Rendering. - render () { - const { - disabled, - title, - icon, - items, - onChange, - value, - container, - renderItemContents, - closeOnChange, - } = this.props; - const { open, placement } = this.state; - - const active = value && items.findIndex(({ name }) => name === value) === (placement === 'bottom' ? 0 : (items.length - 1)); - - return ( -
-
- -
- - - {({ props, placement }) => ( -
-
- -
-
- )} -
-
- ); - } - -} -- cgit