From a905ce378b0d925d7538f6a0fda53c57b2d84980 Mon Sep 17 00:00:00 2001 From: Mitchell McCaffrey Date: Tue, 7 Apr 2020 12:48:10 +1000 Subject: [PATCH] Fixed site loading in older versions of safari --- src/components/Token.js | 4 +++- src/helpers/shared.js | 10 ++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) 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; + }, {}); +}