node-karin
Version:
Lightweight, efficient, concise, and stable robot framework.
2 lines (1 loc) • 993 B
JavaScript
import{r as f,bw as l,bb as $,bx as i,by as g}from"./index-CrmOvtfz.js";function v(o){let{isDisabled:n,onFocus:t,onBlur:a,onFocusChange:r}=o;const u=f.useCallback(e=>{if(e.target===e.currentTarget)return a&&a(e),r&&r(!1),!0},[a,r]),c=l(u),p=f.useCallback(e=>{const s=$(e.target),b=s?i(s):i();e.target===e.currentTarget&&b===g(e.nativeEvent)&&(t&&t(e),r&&r(!0),c(e))},[r,t,c]);return{focusProps:{onFocus:!n&&(t||r||a)?p:void 0,onBlur:!n&&(a||r)?u:void 0}}}function d(o){if(!o)return;let n=!0;return t=>{let a={...t,preventDefault(){t.preventDefault()},isDefaultPrevented(){return t.isDefaultPrevented()},stopPropagation(){n?console.error("stopPropagation is now the default behavior for events in React Spectrum. You can use continuePropagation() to revert this behavior."):n=!0},continuePropagation(){n=!1},isPropagationStopped(){return n}};o(a),n&&t.stopPropagation()}}function x(o){return{keyboardProps:o.isDisabled?{}:{onKeyDown:d(o.onKeyDown),onKeyUp:d(o.onKeyUp)}}}export{x as $,v as a};