@zendeskgarden/container-schedule
Advanced tools
Comparing version 1.3.0 to 1.3.1
@@ -6,2 +6,13 @@ # Change Log | ||
## [1.3.1](https://github.com/zendeskgarden/react-containers/compare/@zendeskgarden/container-schedule@1.3.0...@zendeskgarden/container-schedule@1.3.1) (2020-02-14) | ||
### Bug Fixes | ||
* **build:** apply babel to all bundles ([#160](https://github.com/zendeskgarden/react-containers/issues/160)) ([826735b](https://github.com/zendeskgarden/react-containers/commit/826735bba881d5247b423ffb61cf9643c6599d16)) | ||
# [1.3.0](https://github.com/zendeskgarden/react-containers/compare/@zendeskgarden/container-schedule@1.2.1...@zendeskgarden/container-schedule@1.3.0) (2020-02-12) | ||
@@ -8,0 +19,0 @@ |
@@ -17,50 +17,144 @@ /** | ||
const useSchedule = ({ duration = 1250, delayMS = 750, loop = true } = {}) => { | ||
const [elapsed, setTime] = react.useState(0); | ||
const [delayComplete, setDelayComplete] = react.useState(false); | ||
react.useLayoutEffect(() => { | ||
let raf; | ||
let start; | ||
let loopTimeout; | ||
const tick = () => { | ||
raf = requestAnimationFrame(performAnimationFrame); | ||
}; | ||
const performAnimationFrame = () => { | ||
setTime(Date.now() - start); | ||
tick(); | ||
}; | ||
const onStart = () => { | ||
loopTimeout = setTimeout(() => { | ||
cancelAnimationFrame(raf); | ||
setTime(Date.now() - start); | ||
if (loop) | ||
onStart(); | ||
}, duration); | ||
start = Date.now(); | ||
setDelayComplete(true); | ||
tick(); | ||
}; | ||
const renderingDelayTimeout = setTimeout(onStart, delayMS); | ||
return () => { | ||
clearTimeout(renderingDelayTimeout); | ||
clearTimeout(loopTimeout); | ||
cancelAnimationFrame(raf); | ||
}; | ||
}, [duration, delayMS, loop]); | ||
return { | ||
elapsed: Math.min(1, elapsed / duration), | ||
delayMS, | ||
delayComplete | ||
function _objectWithoutPropertiesLoose(source, excluded) { | ||
if (source == null) return {}; | ||
var target = {}; | ||
var sourceKeys = Object.keys(source); | ||
var key, i; | ||
for (i = 0; i < sourceKeys.length; i++) { | ||
key = sourceKeys[i]; | ||
if (excluded.indexOf(key) >= 0) continue; | ||
target[key] = source[key]; | ||
} | ||
return target; | ||
} | ||
function _objectWithoutProperties(source, excluded) { | ||
if (source == null) return {}; | ||
var target = _objectWithoutPropertiesLoose(source, excluded); | ||
var key, i; | ||
if (Object.getOwnPropertySymbols) { | ||
var sourceSymbolKeys = Object.getOwnPropertySymbols(source); | ||
for (i = 0; i < sourceSymbolKeys.length; i++) { | ||
key = sourceSymbolKeys[i]; | ||
if (excluded.indexOf(key) >= 0) continue; | ||
if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; | ||
target[key] = source[key]; | ||
} | ||
} | ||
return target; | ||
} | ||
function _slicedToArray(arr, i) { | ||
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); | ||
} | ||
function _arrayWithHoles(arr) { | ||
if (Array.isArray(arr)) return arr; | ||
} | ||
function _iterableToArrayLimit(arr, i) { | ||
if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { | ||
return; | ||
} | ||
var _arr = []; | ||
var _n = true; | ||
var _d = false; | ||
var _e = undefined; | ||
try { | ||
for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { | ||
_arr.push(_s.value); | ||
if (i && _arr.length === i) break; | ||
} | ||
} catch (err) { | ||
_d = true; | ||
_e = err; | ||
} finally { | ||
try { | ||
if (!_n && _i["return"] != null) _i["return"](); | ||
} finally { | ||
if (_d) throw _e; | ||
} | ||
} | ||
return _arr; | ||
} | ||
function _nonIterableRest() { | ||
throw new TypeError("Invalid attempt to destructure non-iterable instance"); | ||
} | ||
var useSchedule = function useSchedule() { | ||
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, | ||
_ref$duration = _ref.duration, | ||
duration = _ref$duration === void 0 ? 1250 : _ref$duration, | ||
_ref$delayMS = _ref.delayMS, | ||
delayMS = _ref$delayMS === void 0 ? 750 : _ref$delayMS, | ||
_ref$loop = _ref.loop, | ||
loop = _ref$loop === void 0 ? true : _ref$loop; | ||
var _useState = react.useState(0), | ||
_useState2 = _slicedToArray(_useState, 2), | ||
elapsed = _useState2[0], | ||
setTime = _useState2[1]; | ||
var _useState3 = react.useState(false), | ||
_useState4 = _slicedToArray(_useState3, 2), | ||
delayComplete = _useState4[0], | ||
setDelayComplete = _useState4[1]; | ||
react.useLayoutEffect(function () { | ||
var raf; | ||
var start; | ||
var loopTimeout; | ||
var tick = function tick() { | ||
raf = requestAnimationFrame(performAnimationFrame); | ||
}; | ||
var performAnimationFrame = function performAnimationFrame() { | ||
setTime(Date.now() - start); | ||
tick(); | ||
}; | ||
var onStart = function onStart() { | ||
loopTimeout = setTimeout(function () { | ||
cancelAnimationFrame(raf); | ||
setTime(Date.now() - start); | ||
if (loop) onStart(); | ||
}, duration); | ||
start = Date.now(); | ||
setDelayComplete(true); | ||
tick(); | ||
}; | ||
var renderingDelayTimeout = setTimeout(onStart, delayMS); | ||
return function () { | ||
clearTimeout(renderingDelayTimeout); | ||
clearTimeout(loopTimeout); | ||
cancelAnimationFrame(raf); | ||
}; | ||
}, [duration, delayMS, loop]); | ||
return { | ||
elapsed: Math.min(1, elapsed / duration), | ||
delayMS: delayMS, | ||
delayComplete: delayComplete | ||
}; | ||
}; | ||
const ScheduleContainer = ({ children, render = children, ...props }) => { | ||
return render(useSchedule(props)); | ||
var ScheduleContainer = function ScheduleContainer(_ref) { | ||
var children = _ref.children, | ||
_ref$render = _ref.render, | ||
render = _ref$render === void 0 ? children : _ref$render, | ||
props = _objectWithoutProperties(_ref, ["children", "render"]); | ||
return render(useSchedule(props)); | ||
}; | ||
ScheduleContainer.propTypes = { | ||
duration: PropTypes.number, | ||
loop: PropTypes.bool, | ||
delayMS: PropTypes.number, | ||
children: PropTypes.func, | ||
render: PropTypes.func | ||
duration: PropTypes.number, | ||
loop: PropTypes.bool, | ||
delayMS: PropTypes.number, | ||
children: PropTypes.func, | ||
render: PropTypes.func | ||
}; | ||
@@ -67,0 +161,0 @@ |
@@ -11,52 +11,146 @@ /** | ||
const useSchedule = ({ duration = 1250, delayMS = 750, loop = true } = {}) => { | ||
const [elapsed, setTime] = useState(0); | ||
const [delayComplete, setDelayComplete] = useState(false); | ||
useLayoutEffect(() => { | ||
let raf; | ||
let start; | ||
let loopTimeout; | ||
const tick = () => { | ||
raf = requestAnimationFrame(performAnimationFrame); | ||
}; | ||
const performAnimationFrame = () => { | ||
setTime(Date.now() - start); | ||
tick(); | ||
}; | ||
const onStart = () => { | ||
loopTimeout = setTimeout(() => { | ||
cancelAnimationFrame(raf); | ||
setTime(Date.now() - start); | ||
if (loop) | ||
onStart(); | ||
}, duration); | ||
start = Date.now(); | ||
setDelayComplete(true); | ||
tick(); | ||
}; | ||
const renderingDelayTimeout = setTimeout(onStart, delayMS); | ||
return () => { | ||
clearTimeout(renderingDelayTimeout); | ||
clearTimeout(loopTimeout); | ||
cancelAnimationFrame(raf); | ||
}; | ||
}, [duration, delayMS, loop]); | ||
return { | ||
elapsed: Math.min(1, elapsed / duration), | ||
delayMS, | ||
delayComplete | ||
function _objectWithoutPropertiesLoose(source, excluded) { | ||
if (source == null) return {}; | ||
var target = {}; | ||
var sourceKeys = Object.keys(source); | ||
var key, i; | ||
for (i = 0; i < sourceKeys.length; i++) { | ||
key = sourceKeys[i]; | ||
if (excluded.indexOf(key) >= 0) continue; | ||
target[key] = source[key]; | ||
} | ||
return target; | ||
} | ||
function _objectWithoutProperties(source, excluded) { | ||
if (source == null) return {}; | ||
var target = _objectWithoutPropertiesLoose(source, excluded); | ||
var key, i; | ||
if (Object.getOwnPropertySymbols) { | ||
var sourceSymbolKeys = Object.getOwnPropertySymbols(source); | ||
for (i = 0; i < sourceSymbolKeys.length; i++) { | ||
key = sourceSymbolKeys[i]; | ||
if (excluded.indexOf(key) >= 0) continue; | ||
if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; | ||
target[key] = source[key]; | ||
} | ||
} | ||
return target; | ||
} | ||
function _slicedToArray(arr, i) { | ||
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); | ||
} | ||
function _arrayWithHoles(arr) { | ||
if (Array.isArray(arr)) return arr; | ||
} | ||
function _iterableToArrayLimit(arr, i) { | ||
if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { | ||
return; | ||
} | ||
var _arr = []; | ||
var _n = true; | ||
var _d = false; | ||
var _e = undefined; | ||
try { | ||
for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { | ||
_arr.push(_s.value); | ||
if (i && _arr.length === i) break; | ||
} | ||
} catch (err) { | ||
_d = true; | ||
_e = err; | ||
} finally { | ||
try { | ||
if (!_n && _i["return"] != null) _i["return"](); | ||
} finally { | ||
if (_d) throw _e; | ||
} | ||
} | ||
return _arr; | ||
} | ||
function _nonIterableRest() { | ||
throw new TypeError("Invalid attempt to destructure non-iterable instance"); | ||
} | ||
var useSchedule = function useSchedule() { | ||
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, | ||
_ref$duration = _ref.duration, | ||
duration = _ref$duration === void 0 ? 1250 : _ref$duration, | ||
_ref$delayMS = _ref.delayMS, | ||
delayMS = _ref$delayMS === void 0 ? 750 : _ref$delayMS, | ||
_ref$loop = _ref.loop, | ||
loop = _ref$loop === void 0 ? true : _ref$loop; | ||
var _useState = useState(0), | ||
_useState2 = _slicedToArray(_useState, 2), | ||
elapsed = _useState2[0], | ||
setTime = _useState2[1]; | ||
var _useState3 = useState(false), | ||
_useState4 = _slicedToArray(_useState3, 2), | ||
delayComplete = _useState4[0], | ||
setDelayComplete = _useState4[1]; | ||
useLayoutEffect(function () { | ||
var raf; | ||
var start; | ||
var loopTimeout; | ||
var tick = function tick() { | ||
raf = requestAnimationFrame(performAnimationFrame); | ||
}; | ||
var performAnimationFrame = function performAnimationFrame() { | ||
setTime(Date.now() - start); | ||
tick(); | ||
}; | ||
var onStart = function onStart() { | ||
loopTimeout = setTimeout(function () { | ||
cancelAnimationFrame(raf); | ||
setTime(Date.now() - start); | ||
if (loop) onStart(); | ||
}, duration); | ||
start = Date.now(); | ||
setDelayComplete(true); | ||
tick(); | ||
}; | ||
var renderingDelayTimeout = setTimeout(onStart, delayMS); | ||
return function () { | ||
clearTimeout(renderingDelayTimeout); | ||
clearTimeout(loopTimeout); | ||
cancelAnimationFrame(raf); | ||
}; | ||
}, [duration, delayMS, loop]); | ||
return { | ||
elapsed: Math.min(1, elapsed / duration), | ||
delayMS: delayMS, | ||
delayComplete: delayComplete | ||
}; | ||
}; | ||
const ScheduleContainer = ({ children, render = children, ...props }) => { | ||
return render(useSchedule(props)); | ||
var ScheduleContainer = function ScheduleContainer(_ref) { | ||
var children = _ref.children, | ||
_ref$render = _ref.render, | ||
render = _ref$render === void 0 ? children : _ref$render, | ||
props = _objectWithoutProperties(_ref, ["children", "render"]); | ||
return render(useSchedule(props)); | ||
}; | ||
ScheduleContainer.propTypes = { | ||
duration: PropTypes.number, | ||
loop: PropTypes.bool, | ||
delayMS: PropTypes.number, | ||
children: PropTypes.func, | ||
render: PropTypes.func | ||
duration: PropTypes.number, | ||
loop: PropTypes.bool, | ||
delayMS: PropTypes.number, | ||
children: PropTypes.func, | ||
render: PropTypes.func | ||
}; | ||
export { ScheduleContainer, useSchedule }; |
@@ -11,3 +11,3 @@ { | ||
}, | ||
"version": "1.3.0", | ||
"version": "1.3.1", | ||
"main": "dist/index.cjs.js", | ||
@@ -41,3 +41,3 @@ "module": "dist/index.esm.js", | ||
"zendeskgarden:src": "src/index.ts", | ||
"gitHead": "54aeb7846e6b34c5003229fedf8f4c5132babfa9" | ||
"gitHead": "81501ce8b32df63d3ffaa086c9a359a9fcf42d9a" | ||
} |
26706
310