mirror of
https://github.com/Stremio/stremio-web.git
synced 2026-04-06 13:40:22 +00:00
20 lines
724 B
JavaScript
20 lines
724 B
JavaScript
const React = require('react');
|
|
|
|
const toCamelCase = (value) => {
|
|
return value.replace(/-([a-z])/gi, (_, letter) => letter.toUpperCase());
|
|
};
|
|
|
|
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) => {
|
|
const datasetPropName = toCamelCase(dataPropName.slice(5));
|
|
dataset[datasetPropName] = String(props[dataPropName]);
|
|
return dataset;
|
|
}, {});
|
|
}, [dataPropNames.join('')]);
|
|
return dataset;
|
|
};
|
|
|
|
module.exports = useDataset;
|