# leadin/11.3.75/scripts/iframe/renderIframeApp.tsx

HubSpot All-In-One Marketing – Forms, Popups, Live Chat, version 11.3.75. 65 lines.

- Page: https://pluginprobe.com/plugins/leadin/11.3.75/code/scripts/iframe/renderIframeApp.tsx
- Raw: https://pluginprobe.com/plugins/leadin/11.3.75/raw/scripts/iframe/renderIframeApp.tsx
- Modified: 2026-09-16T15:19:50+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/leadin/11.3.75/code/scripts/iframe/renderIframeApp.tsx#L10-L20`.

```tsx
import React, { Fragment } from 'react';
import ReactDOM from 'react-dom';
import { domElements } from '../constants/selectors';
import useAppEmbedder from './useAppEmbedder';
import { App } from './constants';
import { IframeErrorPage } from './IframeErrorPage';

interface PortalProps extends React.PropsWithChildren {
  app: App;
  createRoute: boolean;
}

const IntegratedIframePortal = (props: PortalProps) => {
  const container = document.getElementById(domElements.leadinIframeContainer);
  const iframeNotRendered = useAppEmbedder(
    props.app,
    props.createRoute,
    container
  );

  if (container && !iframeNotRendered) {
    return ReactDOM.createPortal(props.children, container);
  }

  return (
    <Fragment>
      {(!container || iframeNotRendered) && <IframeErrorPage />}
    </Fragment>
  );
};

const renderIframeApp = () => {
  const iframeFallbackContainer = document.getElementById(
    domElements.leadinIframeContainer
  );

  let app: App;
  const queryParams = new URLSearchParams(location.search);
  const page = queryParams.get('page');
  const createRoute = queryParams.get('leadin_route[0]') === 'create';

  switch (page) {
    case 'leadin_forms':
      app = App.Forms;
      break;
    case 'leadin_chatflows':
      app = App.LiveChat;
      break;
    case 'leadin_settings':
      app = App.PluginSettings;
      break;
    case 'leadin_user_guide':
    default:
      app = App.Plugin;
      break;
  }

  ReactDOM.render(
    <IntegratedIframePortal app={app} createRoute={createRoute} />,
    iframeFallbackContainer
  );
};

export default renderIframeApp;

```
