export function AppWrapper()

in aws-core-ui/src/App/App.tsx [51:92]


export function AppWrapper({ config }: { config: Config }) {
  const resetContainer = useJspContainer(
    'div.popupSaveButtonsBlock, div.modalDialogBody > table.runnerFormTable'
  );
  const doClose = React.useCallback(() => {
    redirectToDefaultPage(config.projectId);
  }, [config.projectId]);

  const doReset = React.useCallback(
    (ind: number, label: string) => {
      resetContainer();
      // @ts-ignore
      $('typeSelector').selectedIndex = ind;
      // @ts-ignore
      $('-ufd-teamcity-ui-typeSelector').value = label;
      // @ts-ignore
      BS.OAuthConnectionDialog.providerChanged($('typeSelector'));
    },
    [resetContainer]
  );

  const closeLink = document.querySelector(
    'div.OAuthConnectionDialog a.closeWindowLink'
  ) as HTMLLinkElement;

  if (closeLink !== null) {
    const oldOnClick = closeLink.onclick;
    closeLink.onclick = (e) => {
      resetContainer();
      oldOnClick?.call(closeLink, e);
    };
  }

  const newConf = { ...config, onClose: doClose };
  return (
    <ApplicationContextProvider config={newConf}>
      <ReadOnlyContextProvider value={config.readOnly}>
        <App doReset={doReset} />
      </ReadOnlyContextProvider>
    </ApplicationContextProvider>
  );
}