| 1 |
import { welcomePageAssets } from "../data/settings-menu-data"; |
| 2 |
|
| 3 |
/** |
| 4 |
* Store asset provider. |
| 5 |
* |
| 6 |
* Component child should be a function that will be called with the asset object. |
| 7 |
* |
| 8 |
* @param {Object} props component properties |
| 9 |
* @param {Function} props.children children function, this function will be called with the asset object |
| 10 |
* @param {Array} props.assetIds array of asset ids to be fetched from data store |
| 11 |
* @class |
| 12 |
*/ |
| 13 |
function AssetProvider({ children, assetIds = [] }) { |
| 14 |
const getAsset = assetId => { |
| 15 |
return welcomePageAssets?.[assetId]; |
| 16 |
}; |
| 17 |
const assetObj = assetIds.reduce((acc, assetId) => { |
| 18 |
acc[assetId] = getAsset(assetId); |
| 19 |
return acc; |
| 20 |
}, {}); |
| 21 |
|
| 22 |
return children(assetObj); |
| 23 |
} |
| 24 |
|
| 25 |
/** |
| 26 |
* @module AssetProvider |
| 27 |
*/ |
| 28 |
export default AssetProvider; |
| 29 |
|