Created
April 21, 2020 18:47
-
-
Save robbeman/9617a4ab406d7eb98d94823296deed21 to your computer and use it in GitHub Desktop.
Headway react component
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* global Headway */ | |
import React, { memo } from 'react'; | |
const HW_CONFIG_ACCOUNT = 'your-id-here'; // get this from env-variables | |
const ELEMENT_ID = 'headway-updates-widget'; | |
function HeadwayWidget() { | |
// No need to render if no account is configured | |
if (!HW_CONFIG_ACCOUNT) { | |
return null; | |
} | |
// Use a function ref to determine if the DOM is ready for init | |
const initWidget = element => { | |
if (element) { | |
Headway.init({ | |
selector: `#${ELEMENT_ID}`, | |
account: HW_CONFIG_ACCOUNT, | |
}); | |
} | |
}; | |
return <div id={ELEMENT_ID} ref={initWidget} />; | |
} | |
// prevent too much re-rendering with memo | |
export default memo(HeadwayWidget); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!-- Put this somewhere in your document to load the widget script, make sure it is loade before react kicks in. --> | |
<script src="//cdn.headwayapp.co/widget.js" /> |
paulkulesha
commented
Jan 29, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment