layout-react.pug 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. //- This is used for pages that are migrated to Bootstrap 5 but don't use Bootstrap's own JS, instead using
  2. //- react-bootstrap for all Bootstrap components
  3. extends ./layout-base
  4. include ./_mixins/formMessages
  5. include ./_mixins/bootstrap_js
  6. block entrypointVar
  7. - entrypoint = 'marketing'
  8. block isApplicationPageVar
  9. - isApplicationPage = true
  10. block append meta
  11. - const canDisplayAdminMenu = hasAdminAccess()
  12. - const canDisplayAdminRedirect = canRedirectToAdminDomain()
  13. - const sessionUser = getSessionUser()
  14. - const staffAccess = sessionUser?.staffAccess
  15. - const canDisplaySplitTestMenu = hasFeature('saas') && (canDisplayAdminMenu || staffAccess?.splitTestMetrics || staffAccess?.splitTestManagement)
  16. - const canDisplaySurveyMenu = hasFeature('saas') && canDisplayAdminMenu
  17. - const canDisplayScriptLogMenu = hasFeature('saas') && canDisplayAdminMenu
  18. - const enableUpgradeButton = projectDashboardReact && usersBestSubscription && (usersBestSubscription.type === 'free' || usersBestSubscription.type === 'standalone-ai-add-on')
  19. - const showSignUpLink = hasFeature('registration-page')
  20. meta(
  21. name='ol-navbar'
  22. data-type='json'
  23. content={
  24. customLogo: settings.nav.custom_logo,
  25. title: nav.title,
  26. canDisplayAdminMenu,
  27. canDisplayAdminRedirect,
  28. canDisplaySplitTestMenu,
  29. canDisplaySurveyMenu,
  30. canDisplayScriptLogMenu,
  31. enableUpgradeButton,
  32. suppressNavbarRight: !!suppressNavbarRight,
  33. suppressNavContentLinks: !!suppressNavContentLinks,
  34. showSubscriptionLink: nav.showSubscriptionLink,
  35. showSignUpLink: showSignUpLink,
  36. currentUrl: currentUrl,
  37. sessionUser: sessionUser ? {email: sessionUser.email} : undefined,
  38. adminUrl: settings.adminUrl,
  39. items: cloneAndTranslateText(nav.header_extras),
  40. }
  41. )
  42. meta(
  43. name='ol-footer'
  44. data-type='json'
  45. content={
  46. showThinFooter: showThinFooter,
  47. showPoweredBy: !hasFeature('saas') && !settings.nav.hide_powered_by,
  48. subdomainLang: settings.i18n.subdomainLang,
  49. translatedLanguages: settings.translatedLanguages,
  50. leftItems: cloneAndTranslateText(settings.nav.left_footer),
  51. rightItems: settings.nav.right_footer,
  52. }
  53. )
  54. block body
  55. if typeof suppressNavbar === 'undefined'
  56. include layout/navbar-marketing-react-bootstrap-5
  57. block content
  58. if typeof suppressFooter === 'undefined'
  59. if showThinFooter
  60. include layout/thin-footer-bootstrap-5
  61. else
  62. include layout/fat-footer-react-bootstrap-5
  63. if typeof suppressPugCookieBanner === 'undefined'
  64. include _cookie_banner