@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.
- package/dist/cjs.js +29 -0
- package/dist/es.js +29 -1
- 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.
|
|
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": "
|
|
52
|
+
"gitHead": "82992826efc61cfa8c435412cb4f6388b2cb2c84",
|
|
53
53
|
"dependencies": {
|
|
54
54
|
"@folklore/events": "^0.0.10",
|
|
55
55
|
"@folklore/services": "^0.1.44",
|