diff --git a/src/components/Token.js b/src/components/Token.js index 9dc3dcf..4c2a191 100644 --- a/src/components/Token.js +++ b/src/components/Token.js @@ -1,11 +1,13 @@ import React from "react"; import { Image } from "theme-ui"; +import { fromEntries } from "../helpers/shared"; + // The data prop is used to pass data into the dom element // this can be used to pass state to the ProxyToken function Token({ image, className, data, sx }) { // Map the keys in data to have the `data-` prefix - const dataProps = Object.fromEntries( + const dataProps = fromEntries( Object.entries(data).map(([key, value]) => [`data-${key}`, value]) ); return ( diff --git a/src/helpers/shared.js b/src/helpers/shared.js index 1e641cb..dd8ac46 100644 --- a/src/helpers/shared.js +++ b/src/helpers/shared.js @@ -8,3 +8,13 @@ export function omit(obj, keys) { } return tmp; } + +export function fromEntries(iterable) { + if (Object.fromEntries) { + return Object.fromEntries(iterable); + } + return [...iterable].reduce((obj, [key, val]) => { + obj[key] = val; + return obj; + }, {}); +}