mirror of
https://github.com/Stremio/stremio-web.git
synced 2026-04-19 22:12:13 +00:00
useDataset custom hook implemented
This commit is contained in:
parent
ed534b22b8
commit
c5b2ee48cf
2 changed files with 17 additions and 0 deletions
|
|
@ -16,6 +16,7 @@ const TextInput = require('./TextInput');
|
|||
const routesRegexp = require('./routesRegexp');
|
||||
const useAnimationFrame = require('./useAnimationFrame');
|
||||
const useBinaryState = require('./useBinaryState');
|
||||
const useDataset = require('./useDataset');
|
||||
const useFullscreen = require('./useFullscreen');
|
||||
const useLiveRef = require('./useLiveRef');
|
||||
const useLocationHash = require('./useLocationHash');
|
||||
|
|
@ -41,6 +42,7 @@ module.exports = {
|
|||
routesRegexp,
|
||||
useAnimationFrame,
|
||||
useBinaryState,
|
||||
useDataset,
|
||||
useFullscreen,
|
||||
useLiveRef,
|
||||
useLocationHash,
|
||||
|
|
|
|||
15
src/common/useDataset.js
Normal file
15
src/common/useDataset.js
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
const React = require('react');
|
||||
|
||||
const useDataset = (props) => {
|
||||
props = typeof props === 'object' && props !== null ? props : {};
|
||||
const dataPropNames = Object.keys(props).filter(propsName => propsName.startsWith('data-'));
|
||||
const dataset = React.useMemo(() => {
|
||||
return dataPropNames.reduce((dataset, dataPropName) => {
|
||||
dataset[dataPropName.slice(5)] = String(props[dataPropName]);
|
||||
return dataset;
|
||||
}, {});
|
||||
}, [dataPropNames.join('')]);
|
||||
return dataset;
|
||||
};
|
||||
|
||||
module.exports = useDataset;
|
||||
Loading…
Reference in a new issue