function addPanoramaMenuItem(widget) {
  const widgetProps = widget.RenderWidget.props || {};
  const menuKey = Array.isArray(widgetProps.mainMenu) ? 'mainMenu' : 'menu';
  const existingMenu = widgetProps[menuKey] || [];
  const panoramaHref = getConfig().PANORAMA_URL;
  const isAuthenticated = Boolean(widgetProps.authenticatedUser);

  if (
    !isAuthenticated
    || !panoramaHref
    || existingMenu.some((item) => item.href === panoramaHref)
  ) {
    return widget;
  }

  widget.content[menuKey] = [
    ...existingMenu,
    {
      type: 'item',
      href: panoramaHref,
      content: 'Panorama',
    },
  ];

  return widget;
}
