All files / owid-grapher/site runDataTokens.tsx

50% Statements 14/28
100% Branches 0/0
0% Functions 0/1
50% Lines 14/28

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 331x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x                                      
import React from "react"
import ReactDOM from "react-dom"
import { DataToken_name } from "../site/DataToken"
import { LastUpdated } from "./covid/LastUpdated"
 
interface ComponentDictionary {
    [key: string]: any
}
 
const dictionary: ComponentDictionary = {
    LastUpdated,
}
 
export const runDataTokens = () => {
    const dataTokens = document.querySelectorAll(
        `[data-type=${DataToken_name}]`
    )
    dataTokens.forEach((dataToken) => {
        const token = dataToken.getAttribute("data-token")
        if (!token) return

        const componentProps = JSON.parse(dataToken.innerHTML)

        const Component = dictionary[token]
        if (!Component) return

        ReactDOM.render(
            <Component {...componentProps} />,
            dataToken.parentElement
        )
    })
}