diff --git a/components/Settings.js b/components/Settings.js index 46c877f..df6d5c0 100644 --- a/components/Settings.js +++ b/components/Settings.js @@ -1,15 +1,14 @@ import React from 'react' -import enhanceWithClickOutside from 'react-click-outside' import omitBy from 'lodash.omitby' import ThemeSelect from './ThemeSelect' import FontSelect from './FontSelect' import Slider from './Slider' import Toggle from './Toggle' -import WindowPointer from './WindowPointer' +import Popout from './Popout' +import Button from './Button' import { COLORS, DEFAULT_PRESETS } from '../lib/constants' -import { getPresets, savePresets } from '../lib/util' -import { toggle } from '../lib/util' +import { toggle, getPresets, savePresets } from '../lib/util' import SettingsIcon from './svg/Settings' import * as Arrows from './svg/Arrows' import Remove from './svg/Remove' @@ -134,35 +133,25 @@ const TypeSettings = React.memo( } ) +const resetButtonStyle = { borderTop: `1px solid ${COLORS.SECONDARY}` } + const MiscSettings = React.memo(({ format, reset }) => { return (
- - +
@@ -171,37 +160,31 @@ const MiscSettings = React.memo(({ format, reset }) => { const MenuButton = React.memo(({ name, select, selected }) => { return ( - - + + ) +}) + +const removeButtonStyles = { + position: 'absolute', + top: '6px', + right: '6px', + width: '11px', + height: '11px', + borderRadius: '999px' +} + +const Preset = React.memo(({ remove, apply, selected, preset }) => { + const isSelected = preset.id === selected + + return ( +
+ + )} + +
) }) -const Preset = React.memo(({ remove, apply, selected, preset }) => ( -
- - ) : null} - -
-)) +const arrowButtonStyle = { + position: 'absolute', + top: 0, + right: '16px', + height: '100%' +} const Presets = React.memo( ({ show, create, toggle, undo, presets, selected, remove, apply, applied, contentRef }) => { @@ -286,15 +268,22 @@ const Presets = React.memo(
Presets {show && ( - + +
- {show ? ( + {show && (
{presets .filter(p => p.custom) @@ -314,32 +303,31 @@ const Presets = React.memo( ))}
- ) : null} - {show && applied ? ( + )} + {show && applied && (
Preset applied! - +
- ) : null} + )} @@ -419,6 +375,11 @@ const Presets = React.memo( } ) +const settingButtonStyle = { + width: '40px', + height: '100%' +} + class Settings extends React.PureComponent { state = { presets: DEFAULT_PRESETS, @@ -440,17 +401,18 @@ class Settings extends React.PureComponent { })) } - toggleVisible = () => this.setState(toggle('isVisible')) + toggleVisible = e => { + e.stopPropagation() + this.setState(toggle('isVisible')) + } togglePresets = () => this.setState(toggle('showPresets')) - handleClickOutside = () => this.setState({ isVisible: false }) - selectMenu = selectedMenu => () => this.setState({ selectedMenu }) handleWidthChanging = () => { const rect = this.settingsRef.current.getBoundingClientRect() - this.settingPosition = { top: rect.bottom + 12, left: rect.left } + this.settingPosition = { top: rect.bottom, left: rect.left } this.setState({ widthChanging: true }) } @@ -575,14 +537,26 @@ class Settings extends React.PureComponent { return (
-
-
-
- + +
-
+