@wix/design-system
Version:
@wix/design-system
76 lines (75 loc) • 3.34 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.EyeDropper = void 0;
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _react = _interopRequireWildcard(require("react"));
var _utils = require("./utils");
var _ToggleButton = _interopRequireDefault(require("../ToggleButton"));
var _wixUiIconsCommon = require("@wix/wix-ui-icons-common");
var _constants = require("./constants");
var _WixDesignSystemIconThemeProvider = require("../WixDesignSystemIconThemeProvider");
var _jsxFileName = "/home/builduser/work/57e038ea7326c1ec/packages/wix-design-system/dist/cjs/ColorPicker/ColorPickerEyeDropper.tsx";
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
var EyeDropper = _ref => {
var {
eyeDropperLabel,
allowEmpty,
onChange
} = _ref;
var [eyeDropperActive, setEyeDropperActive] = (0, _react.useState)(false);
var icons = (0, _WixDesignSystemIconThemeProvider.useIcons)('ColorPickerEyeDropper', {
Pipette: _wixUiIconsCommon.Pipette
});
var supportsEyeDropper = typeof window !== 'undefined' && 'EyeDropper' in window;
if (!supportsEyeDropper) {
return null;
}
var handleEyeDropper = (0, _react.useCallback)(/*#__PURE__*/(0, _asyncToGenerator2.default)(function* () {
try {
setEyeDropperActive(true);
var eyeDropper = new window.EyeDropper();
var result = yield eyeDropper.open();
if (result && result.sRGBHex) {
var _color = (0, _utils.safeColor)(result.sRGBHex, allowEmpty);
if (_color) {
onChange(_color);
}
}
} catch (error) {
if (error instanceof DOMException) {
if (error.name === 'AbortError') {
// User cancelled - this is expected behavior, no action needed
return;
}
console.error('EyeDropper error:', error.name, error.message);
} else {
console.error('Unexpected error:', error);
}
} finally {
setEyeDropperActive(false);
}
}), [allowEmpty, onChange, setEyeDropperActive]);
return /*#__PURE__*/_react.default.createElement(_ToggleButton.default, {
size: "medium",
onClick: handleEyeDropper,
dataHook: _constants.DataHooks.eyeDropper,
labelValue: eyeDropperLabel,
selected: eyeDropperActive,
__self: void 0,
__source: {
fileName: _jsxFileName,
lineNumber: 57,
columnNumber: 5
}
}, /*#__PURE__*/_react.default.createElement(icons.Pipette, {
__self: void 0,
__source: {
fileName: _jsxFileName,
lineNumber: 64,
columnNumber: 7
}
}));
};
exports.EyeDropper = EyeDropper;
//# sourceMappingURL=ColorPickerEyeDropper.js.map