* store background image, not background selection in presets
* move localStorage into save utils
* curry omit util fn
* clean up manual image upload by URL
* refactor image changes
* separate uploadImage from selectImage
* upgrade visual regression testing tests
* add TODOs
* dawnlabs -> carbon-app
* update READMEs
* remove logo from translated readmes
* change project link
* update license
* remove case study link from translated READMEs
* fix url encoding to support direct pastes to medium
* move check for object keys length to getQueryStringState
* remove url parse from GistContainer
* use useMemo instead of memo
* remove decode()
* add copy URL button to export menu
* prevent index page from updating
* implement shouldComponentUpdate for ExportMenu
* replace componentDidUpdate with updateState in Editor
* replace shallowCompare with React.memo
* add flex-basis to prevent jank
* Add preset feature without create
* fix lint errors
* Add presets to Editor state
* add remove, update -> apply, omit presets
* replace name with index, add undo functionality
* fix reduce function
* Tweaks:
- Make remove filter setState atomic
- Remove broken sCU in BackgroundSelect
- Touch up style of arrow functions a little
- Remove titleBar from default settings
- Don't expose SETTINGS_KEYS
- Use hasOwnProperty instead of includes()
* refactor preset state into Settings
* move format code into editor and make it work again
* omit custom in applyPreset
* move presets array state into Settings
* keep custom sCU in BackgroundSelect
* pull out inline objects
* revert pages/index
* increase Presets font-size, remove margin-top
* Add ability to create presets
* also enable passing exportSize as prop
* move selectedPreset back into Settings (my bad Sean)
* replace splice with filter, getSavedX -> getX
* Revert "move selectedPreset back into Settings (my bad Sean)"
This reverts commit ae5da4700ea36ad7c31e697e83a2724be4b448f4.
* make sure background updates remove selected preset
* selectedPreset -> preset
* use onChange instead of selectPreset
* use preset id's instead of indexes
* bug fixes
* use disabled instead of pointer-events
* make .settings-presets-applied flex 💪
* make .settings-presets-arrow flex 💪
* move getPresets outside of `setState`
* move inline styles to style tag
* refactor using omitBy and isFunction
* remove lodash.isfunction
* fix applyPreset to disclude preset field
* move omit to getSettingsFromProps
* replace lodash.omit with omitBy solution
* .includes -> .indexOf
* add default preset and presetApplied state
* fix lint error
* remove presetApplied
* add more default presets
* fix default preset functionality
* tweaks
* preserve preset list scrollLeft b/w updates with a hack
* Use ref for preset content
* remove forwardRef