UNPKG

1.71 kBJavaScriptView Raw
1"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("react"),n=(e=t)&&"object"==typeof e&&"default"in e?e.default:e;function r(){return(r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}exports.default=function(e,u){void 0===u&&(u={});var o=u.volume,a=void 0===o?1:o,c=u.playbackRate,i=void 0===c?1:c,l=u.soundEnabled,f=void 0===l||l,s=u.interrupt,d=void 0!==s&&s,p=function(e,t){if(null==e)return{};var n,r,u={},o=Object.keys(e);for(r=0;r<o.length;r++)t.indexOf(n=o[r])>=0||(u[n]=e[n]);return u}(u,["volume","playbackRate","soundEnabled","interrupt"]),v=n.useRef(null),b=n.useState(!1),y=b[0],O=b[1],j=n.useState(null),k=j[0],g=j[1];t.useEffect((function(){new Promise((function(e){e(function(e){if(e&&e.__esModule)return e;var t={};return e&&Object.keys(e).forEach((function(n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})})),t.default=e,t}(require("howler")))})).then((function(t){v.current=t.Howl;var n=new v.current(r({src:[e],volume:a},p));g(n)}))}),[]),n.useEffect((function(){v.current&&k&&g(new v.current(r({src:[e],volume:a},p)))}),[e]),n.useEffect((function(){k&&(k.volume(a),k.rate(i))}),[a,i]);var h=n.useCallback((function(e){void 0===e&&(e={}),k&&(f||e.forceSoundEnabled)&&(d&&k.stop(),e.playbackRate&&k.rate(e.playbackRate),k.play(e.id),k.once("end",(function(){return O(!1)})),O(!0))}),[k,f,d]),m=n.useCallback((function(){k&&(k.stop(),O(!1))}),[k]);return[h,{sound:k,stop:m,isPlaying:y}]};
2//# sourceMappingURL=use-sound.cjs.production.min.js.map