HTML
Babel
Result
Skip Results Iframe
EDIT ON
Live
Live
This Pen is owned by
Marc L.
on
CodePen
.
See more by @MarcL01 on CodePen
External CSS
https://cdnjs.cloudflare.com/ajax/libs/bootstrap/4.6.2/css/bootstrap.min.css
https://cdnjs.cloudflare.com/ajax/libs/tailwindcss/2.2.19/tailwind.min.css
External JavaScript
https://cdnjs.cloudflare.com/ajax/libs/react/18.2.0/umd/react.production.min.js
https://cdnjs.cloudflare.com/ajax/libs/react-dom/18.2.0/umd/react-dom.production.min.js
https://cdnjs.cloudflare.com/ajax/libs/react-bootstrap/1.6.6/react-bootstrap.js
https://cdn.usecanopy.com/v2/canopy-connect.js
{"__browser":{"country":"US","device":"unknown_device","mobile":false,"name":"unknown browser","platform":"unknown_platform","version":"0"},"__constants":{},"__CPDATA":{"domain_iframe":"https://cdpn.io","environment":"production","host":"codepen.io","iframe_allow":"accelerometer; ambient-light-sensor; camera; display-capture; encrypted-media; geolocation; gyroscope; microphone; midi; payment; vr; web-share","iframe_sandbox":"allow-forms allow-modals allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-top-navigation-by-user-activation allow-downloads allow-presentation"},"__graphql":{"data":{"data":null,"errors":[{"message":"Cannot return null for non-nullable field Query.sessionUser"}]},"url":"https://codepen.io/graphql","api":"cprails"},"__pay_stripe_public_key":"pk_live_2GndomDfiklqpSNQn8FrGuwZSMIMzha7DkLJqlYe7IR0ihKAlKdiHg68JJc5eVPt68rzAjzAAVXcUwjySHRCsgjQQ00gtRBUFNH","__pay_braintree_env":"production","__boomboom":{"serve_url":"https://cdpn.io/cpe/boomboom","store_url":"https://codepen.io/cpe/boomboom/store"},"__pageType":"embed","__item":"{\"editor_settings\":{\"auto_run\":true,\"autocomplete\":false,\"code_folding\":true,\"css_pre_processor\":\"none\",\"css_prefix\":\"neither\",\"css_starter\":\"neither\",\"emmet_active\":true,\"font_size\":14,\"font_type\":\"system\",\"format_on_save\":false,\"html_pre_processor\":\"none\",\"indent_with\":\"spaces\",\"js_pre_processor\":\"none\",\"key_bindings\":\"normal\",\"line_numbers\":true,\"line_wrapping\":true,\"match_brackets\":true,\"snippets\":{\"markupSnippets\":{},\"stylesheetSnippets\":{}},\"tab_size\":2,\"theme\":\"twilight\",\"id\":\"YzJWrRm\",\"auto_save\":true},\"hashid\":\"YzJWrRm\",\"itemType\":\"pen\",\"resources\":[{\"url\":\"https://cdn.usecanopy.com/v2/canopy-connect.js\",\"order\":3,\"resource_type\":\"js\",\"par_content\":\"\"},{\"url\":\"https://cdnjs.cloudflare.com/ajax/libs/react/18.2.0/umd/react.production.min.js\",\"order\":0,\"resource_type\":\"js\",\"par_content\":\"\"},{\"url\":\"https://cdnjs.cloudflare.com/ajax/libs/react-dom/18.2.0/umd/react-dom.production.min.js\",\"order\":1,\"resource_type\":\"js\",\"par_content\":\"\"},{\"url\":\"https://cdnjs.cloudflare.com/ajax/libs/react-bootstrap/1.6.6/react-bootstrap.js\",\"order\":2,\"resource_type\":\"js\",\"par_content\":\"\"},{\"url\":\"https://cdnjs.cloudflare.com/ajax/libs/bootstrap/4.6.2/css/bootstrap.min.css\",\"order\":0,\"resource_type\":\"css\",\"par_content\":\"\"},{\"url\":\"https://cdnjs.cloudflare.com/ajax/libs/tailwindcss/2.2.19/tailwind.min.css\",\"order\":1,\"resource_type\":\"css\",\"par_content\":\"\"}],\"tags\":[],\"id\":67866248,\"user_id\":10040477,\"html\":\"<div id=\\\"root\\\"></div>\",\"css\":\"\",\"js\":\"const {\\n Button,\\n Col,\\n Container,\\n Grid,\\n Jumbotron,\\n Nav,\\n Navbar,\\n Row,\\n Spinner\\n} = window.ReactBootstrap;\\n\\nconst CanopyConnectBtn = ({ publicAlias, consentToken, metaData }) => {\\n const [handler, setHandler] = React.useState(null);\\n React.useEffect(() => {\\n if (!publicAlias) {\\n return; // Don't do anything - will keep showing the loading spinner until a publicAlias is set\\n }\\n const canopyHandler = window.CanopyConnect.create({\\n publicAlias,\\n consentToken,\\n pullMetaData: metaData\\n });\\n setHandler(canopyHandler);\\n return () => {\\n setHandler(null);\\n canopyHandler.destroy();\\n };\\n }, [publicAlias, consentToken, metaData]); // Reload SDK when props change\\n\\n if (!handler) {\\n // Loading\\n return (\\n <Button disabled size=\\\"lg\\\" as=\\\"a\\\">\\n <Spinner\\n as=\\\"span\\\"\\n animation=\\\"border\\\"\\n size=\\\"sm\\\"\\n role=\\\"status\\\"\\n aria-hidden=\\\"true\\\"\\n />\\n </Button>\\n );\\n }\\n\\n return (\\n <Button as=\\\"a\\\" size=\\\"lg\\\" onClick={() => handler.open()}>\\n Import My Insurance\\n </Button>\\n );\\n};\\n\\nconst DemoPage = () => {\\n return (\\n <div>\\n <Navbar bg=\\\"dark\\\" variant=\\\"dark\\\">\\n <Nav className=\\\"mr-auto\\\">\\n <Nav.Link href=\\\"#home\\\" active>\\n Home\\n </Nav.Link>\\n </Nav>\\n </Navbar>\\n <Jumbotron className=\\\"text-center p-3 p-md-5\\\">\\n <Container fluid>\\n <Row>\\n <Col md=\\\"7\\\" className=\\\"mx-auto my-5\\\">\\n <h1 className=\\\"h2 font-weight-normal mb-3\\\">\\n Import My Insurance\\n </h1>\\n <p className=\\\"lead font-weight-normal mb-4\\\">\\n Easily use the Canopy Connect SDK to collect insurance\\n information.\\n </p>\\n {/* Canopy Connect Button */}\\n <CanopyConnectBtn publicAlias={\\\"demo\\\"} />\\n {/* End Canopy Connect Button */}\\n </Col>\\n </Row>\\n </Container>\\n </Jumbotron>\\n <Container fluid>\\n <Row className=\\\"my-md-3 pl-md-3\\\">\\n <Col\\n md=\\\"6\\\"\\n xs=\\\"12\\\"\\n className=\\\"mx-auto text-center bg-dark text-white p-3 px-md-5\\\"\\n >\\n <div className=\\\"my-3 py-3\\\">\\n <h2 className=\\\"h2\\\">Another headline</h2>\\n <p className=\\\"lead\\\">Another subheading.</p>\\n </div>\\n </Col>\\n <Col\\n md=\\\"6\\\"\\n xs=\\\"12\\\"\\n className=\\\"mx-auto text-center bg-light p-3 px-md-5\\\"\\n >\\n <div className=\\\"my-3 py-3\\\">\\n <h2 className=\\\"h2\\\">Another headline</h2>\\n <p className=\\\"lead\\\">Another subheading.</p>\\n </div>\\n </Col>\\n </Row>\\n </Container>\\n </div>\\n );\\n};\\n\\nconst el = document.querySelector(\\\"#root\\\");\\nReactDOM.render(<DemoPage />, el);\\n\",\"html_pre_processor\":\"none\",\"css_pre_processor\":\"none\",\"js_pre_processor\":\"babel\",\"html_classes\":\"\",\"css_starter\":\"neither\",\"js_library\":null,\"created_at\":\"2023-04-17T15:47:25.870Z\",\"updated_at\":\"2023-04-17T22:47:51.161Z\",\"title\":\"Canopy Connect SDK React\",\"description\":\"\",\"slug_hash\":\"YzJWrRm\",\"head\":\"\",\"private\":false,\"has_animation\":false,\"team_id\":0,\"css_prefix\":\"neither\",\"template\":false,\"parent_id\":0,\"comments_count\":0,\"custom_screenshot_filename\":null,\"loves_count\":0,\"pick\":false,\"popularity_score\":0,\"views_count\":0,\"pick_visible_at\":null,\"cpid\":\"01878fe6-462e-7aa0-a58e-dbfd2ed7ab0c\",\"is_new_editor_pen\":false,\"pen_hash\":null}","__processorsMap":{"autoprefixer":"autoprefixer-10","babel":"babel-7","coffeescript":"coffeescript-2","format-1":"format-1","flutter":"flutter-1","haml":"haml-4","less":"less-3","lint-1":"lint-1","livescript":"livescript-1","markdown":"markdown-11","postcss":"postcss-7","pug":"pug-2","sass":"sass-1","scss":"sass-1","sass-ruby-3":"sass-ruby-3","sass-ruby-compass-3":"sass-ruby-compass-3","slim":"slim-3","stylus":"stylus-0","typescript":"typescript-4","vue":"vue-2","vue3":"vue-3"},"__favicon_mask_icon":"https://cpwebassets.codepen.io/assets/favicon/logo-pin-b4b4269c16397ad2f0f7a01bcdf513a1994f4c94b8af2f191c09eb0d601762b1.svg","__favicon_shortcut_icon":"https://cpwebassets.codepen.io/assets/favicon/favicon-aec34940fbc1a6e787974dcd360f2c6b63348d4b1f4e06c77743096d55480f33.ico","__path_to_iframe_console_runner":"https://cpwebassets.codepen.io/assets/editor/iframe/iframeConsoleRunner-6d8bf8b4b479137260842506acbb12717dace0823c023e08b96360e60b0840d9.js","__path_to_iframe_refresh_css":"https://cpwebassets.codepen.io/assets/editor/iframe/iframeRefreshCSS-44fe83e49b63affec96918c9af88c0d80b209a862cf87ac46bc933074b8c557d.js","__path_to_iframe_runtime_errors":"https://cpwebassets.codepen.io/assets/editor/iframe/iframeRuntimeErrors-4f205f2c14e769b448bcf477de2938c681660d5038bc464e3700256713ebe261.js","__path_to_processor_worker":"https://cpwebassets.codepen.io/assets/packs/router.js","__path_to_stop_execution_on_timeout":"https://cpwebassets.codepen.io/assets/common/stopExecutionOnTimeout-2c7831bb44f98c1391d6a4ffda0e1fd302503391ca806e7fcc7b9b87197aec26.js","__pen_normalize_css_url":"https://cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.min.css","__pen_prefix_free_url":"https://cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js","__pen_reset_css_url":"https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.css","__path_to_infinite_loop_detection":"https://cpwebassets.codepen.io/assets/packs/js/infiniteLoopDetection-f0d5935eb4c2121dfc41.js"}