UNPKG

sp-image-editor

Version:

React component version of filerobot image editor (FIE).

1 lines 1.76 kB
import _defineProperty from"@babel/runtime/helpers/defineProperty";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import React,{useEffect,useRef,useState}from"react";import{useStore}from"../../../hooks";import{SET_LATEST_COLOR}from"../../../actions";import ColorPickerModal from"../ColorPickerModal";import{StyledPickerTrigger}from"./ColorInput.styled";var pinnedColorsKey="FIE_pinnedColors",ColorInput=function(a){var b,c=a.onChange,d=a.color,e=a.colorFor,f=useStore(),g=f.selectionsIds,h=void 0===g?[]:g,i=f.config.annotationsCommon,j=void 0===i?{}:i,k=f.dispatch,l=f.latestColors,m=void 0===l?{}:l,n=m[e],o=useState(),p=_slicedToArray(o,2),q=p[0],r=p[1],s=useState(function(){return n||d||j.fill}),t=_slicedToArray(s,2),u=t[0],v=t[1],w=useState(null!==(b=window)&&void 0!==b&&b.localStorage?JSON.parse(localStorage.getItem(pinnedColorsKey)||"[]"):[]),x=_slicedToArray(w,2),y=x[0],z=x[1],A=useRef(u),B=function(a){var b;if(null!==(b=window)&&void 0!==b&&b.localStorage){var c=window.localStorage.getItem(pinnedColorsKey);if(JSON.stringify(a)!==c){var d=a.slice(-9);window.localStorage.setItem(pinnedColorsKey,JSON.stringify(d)),z(d)}}},C=function(a){r(q?null:a.currentTarget)};return useEffect(function(){var a=0===h.length&&n||d;v(a),c(a)},[d,h]),React.createElement(React.Fragment,null,React.createElement(StyledPickerTrigger,{className:"FIE_color-picker-triggerer",onClick:C,$color:u,onChange:c}),React.createElement(ColorPickerModal,{hideModalTitle:!0,onChange:function(a,b,d){v(b),c(b),B(d),n!==b&&k({type:SET_LATEST_COLOR,payload:{latestColors:_defineProperty({},e,b)}})},defaultColor:u,pinnedColors:y,open:!!q,onClose:function(a){c(A.current||u),C(a)},onApply:C}))};ColorInput.defaultProps={color:void 0};export default ColorInput;