@financial-times/custom-code-component
v1.10.1
Published
## Usage:
Downloads
2,657
Maintainers
Keywords
Readme
custom-code-component (<custom-code-component>
)
Web component custom element for instantiating Visual & Data Journalism team projects
Usage:
Instantiate the web component and pass it a URL to a bundled component you wish to render into the component root.
example.jsx
import React from 'react';
import ReactDOM from 'react-dom';
import css from './Component.css?inline';
const App = (props) => <div>{JSON.stringify(props)}</div>;
export default (shadowRoot, props, ...children) => {
const style = document.createElement("style");
const mountPoint = document.createElement("div");
style.innerHTML = css;
mountPoint.id = "component-root";
shadowRoot.appendChild(style);
shadowRoot.appendChild(mountPoint);
ReactDOM.createRoot(mountPoint).render(
<React.StrictMode>
<App {...props}>{children}</App>
</React.StrictMode>
);
};
index.html
<script src="custom-code-component.js" type="module"></script>
<custom-code-component path="ft-interactive/test-project/test-component" version="^1" data-component-props="{}" data-asset-type="custom-code-component">
<img alt="test component" src="https://ig.ft.com/components/ft-interactive/test-project/test-component@^1.png">
</custom-code-component>
Attributes
path
(string)- Component name in the format
[org]/[repo]/[component]
.- If
[org]
isccc-sdk
or ommitted, component will be loaded from Vite local dev server (127.0.0.1:5173). - Otherwise, it will be loaded from the CCCCDN
- If
- Component name in the format
version
(string)- Semantic Versioning range for the component.
data-component-props
(string)- Pass stringified JSON to make it available to children as the
data
prop.
- Pass stringified JSON to make it available to children as the
iframe
(boolean)- Render inside an iframe using
srcdoc
for extra sandboxing (default: false)
- Render inside an iframe using
shadow-open
(boolean)- Sets the shadow root to either open or closed (default: false)
data-asset-type="custom-code-component"
- Part of spec.