@folklore/hooks 0.0.80 → 0.0.81

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/dist/cjs.js +29 -0
  2. package/dist/es.js +29 -1
  3. package/package.json +2 -2
package/dist/cjs.js CHANGED
@@ -1179,6 +1179,34 @@ function useScrollTrigger({
1179
1179
  };
1180
1180
  }
1181
1181
 
1182
+ function checkWebpSupport() {
1183
+ return new Promise(resolve => {
1184
+ const img = document.createElement('img');
1185
+ img.onload = () => {
1186
+ resolve(img.width > 0 && img.height > 0);
1187
+ };
1188
+ img.onerror = () => {
1189
+ resolve(false);
1190
+ };
1191
+ img.src = 'data:image/webp;base64,UklGRiQAAABXRUJQVlA4IBgAAAAwAQCdASoCAAEAAQAcJaQAA3AA/v3AgAA=';
1192
+ });
1193
+ }
1194
+ function useSupportsWebp(defaultValue = true) {
1195
+ const [supportsWebp, setSupportsWebp] = react.useState(defaultValue);
1196
+ react.useEffect(() => {
1197
+ let canceled = false;
1198
+ checkWebpSupport().then(newSupport => {
1199
+ if (!canceled && newSupport !== supportsWebp) {
1200
+ setSupportsWebp(newSupport);
1201
+ }
1202
+ });
1203
+ return () => {
1204
+ canceled = true;
1205
+ };
1206
+ }, []);
1207
+ return supportsWebp;
1208
+ }
1209
+
1182
1210
  const NO_PLAYER_ERROR$1 = new Error('No player');
1183
1211
  function useVimeoPlayer(id, {
1184
1212
  width = 0,
@@ -1901,6 +1929,7 @@ exports.useObserver = useObserver;
1901
1929
  exports.usePlayerCurrentTime = usePlayerCurrentTime;
1902
1930
  exports.useResizeObserver = useResizeObserver;
1903
1931
  exports.useScrollTrigger = useScrollTrigger;
1932
+ exports.useSupportsWebp = useSupportsWebp;
1904
1933
  exports.useVideoPlayer = useVideoPlayer;
1905
1934
  exports.useVimeoPlayer = useVimeoPlayer;
1906
1935
  exports.useVisualViewport = useVisualViewport;
package/dist/es.js CHANGED
@@ -1177,6 +1177,34 @@ function useScrollTrigger({
1177
1177
  };
1178
1178
  }
1179
1179
 
1180
+ function checkWebpSupport() {
1181
+ return new Promise(resolve => {
1182
+ const img = document.createElement('img');
1183
+ img.onload = () => {
1184
+ resolve(img.width > 0 && img.height > 0);
1185
+ };
1186
+ img.onerror = () => {
1187
+ resolve(false);
1188
+ };
1189
+ img.src = 'data:image/webp;base64,UklGRiQAAABXRUJQVlA4IBgAAAAwAQCdASoCAAEAAQAcJaQAA3AA/v3AgAA=';
1190
+ });
1191
+ }
1192
+ function useSupportsWebp(defaultValue = true) {
1193
+ const [supportsWebp, setSupportsWebp] = useState(defaultValue);
1194
+ useEffect(() => {
1195
+ let canceled = false;
1196
+ checkWebpSupport().then(newSupport => {
1197
+ if (!canceled && newSupport !== supportsWebp) {
1198
+ setSupportsWebp(newSupport);
1199
+ }
1200
+ });
1201
+ return () => {
1202
+ canceled = true;
1203
+ };
1204
+ }, []);
1205
+ return supportsWebp;
1206
+ }
1207
+
1180
1208
  const NO_PLAYER_ERROR$1 = new Error('No player');
1181
1209
  function useVimeoPlayer(id, {
1182
1210
  width = 0,
@@ -1885,4 +1913,4 @@ function useWindowScroll(opts = {}) {
1885
1913
  return scroll;
1886
1914
  }
1887
1915
 
1888
- export { eventsManager$1 as documentEventsManager, getObserver, useCounter, useDailymotionPlayer, useDocumentEvent, useIntersectionObserver, useIsVisible, useItemsPaginated, useKeyboard, useNativeVideoPlayer, useObserver, usePlayerCurrentTime, useResizeObserver, useScrollTrigger, useVideoPlayer, useVimeoPlayer, useVisualViewport, useVisualViewport as useVisualViewportSize, useWindowEvent, useWindowScroll, useWindowSize, useYouTubePlayer, eventsManager as windowEventsManager };
1916
+ export { eventsManager$1 as documentEventsManager, getObserver, useCounter, useDailymotionPlayer, useDocumentEvent, useIntersectionObserver, useIsVisible, useItemsPaginated, useKeyboard, useNativeVideoPlayer, useObserver, usePlayerCurrentTime, useResizeObserver, useScrollTrigger, useSupportsWebp, useVideoPlayer, useVimeoPlayer, useVisualViewport, useVisualViewport as useVisualViewportSize, useWindowEvent, useWindowScroll, useWindowSize, useYouTubePlayer, eventsManager as windowEventsManager };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@folklore/hooks",
3
- "version": "0.0.80",
3
+ "version": "0.0.81",
4
4
  "description": "React hooks",
5
5
  "keywords": [
6
6
  "javascript",
@@ -49,7 +49,7 @@
49
49
  "publishConfig": {
50
50
  "access": "public"
51
51
  },
52
- "gitHead": "6d9d9e7770eaabf06aff6864a4d33d0b6ad99eb2",
52
+ "gitHead": "82992826efc61cfa8c435412cb4f6388b2cb2c84",
53
53
  "dependencies": {
54
54
  "@folklore/events": "^0.0.10",
55
55
  "@folklore/services": "^0.1.44",