mirror of
https://github.com/overleaf/overleaf.git
synced 2025-04-13 15:17:07 +00:00
Merge pull request #20161 from overleaf/td-bs5-contact-modal-wiki-search-visibility
Fix for learn wiki search results not appearing in BS5 nav contact modal GitOrigin-RevId: 9f4476163c509ab6ec7fe119600276c906c44f7e
This commit is contained in:
parent
8219957436
commit
1f6418f48f
5 changed files with 46 additions and 20 deletions
|
@ -1,25 +1,23 @@
|
|||
import NavDropdownLinkItem from '@/features/ui/components/bootstrap-5/navbar/nav-dropdown-link-item'
|
||||
import { sendMB } from '@/infrastructure/event-tracking'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import { useContactUsModal } from '@/shared/hooks/use-contact-us-modal'
|
||||
import { UserProvider } from '@/shared/context/user-context'
|
||||
|
||||
export default function ContactUsItem() {
|
||||
export default function ContactUsItem({
|
||||
showModal,
|
||||
}: {
|
||||
showModal: (event?: Event) => void
|
||||
}) {
|
||||
const { t } = useTranslation()
|
||||
const { modal, showModal } = useContactUsModal({ autofillProjectUrl: false })
|
||||
|
||||
return (
|
||||
<>
|
||||
<NavDropdownLinkItem
|
||||
href="#"
|
||||
onClick={() => {
|
||||
sendMB('menu-clicked-contact')
|
||||
showModal()
|
||||
}}
|
||||
>
|
||||
{t('contact_us')}
|
||||
</NavDropdownLinkItem>
|
||||
<UserProvider>{modal}</UserProvider>
|
||||
</>
|
||||
<NavDropdownLinkItem
|
||||
href="#"
|
||||
onClick={() => {
|
||||
sendMB('menu-clicked-contact')
|
||||
showModal()
|
||||
}}
|
||||
>
|
||||
{t('contact_us')}
|
||||
</NavDropdownLinkItem>
|
||||
)
|
||||
}
|
||||
|
|
|
@ -8,6 +8,8 @@ import NavItemFromData from '@/features/ui/components/bootstrap-5/navbar/nav-ite
|
|||
import LoggedInItems from '@/features/ui/components/bootstrap-5/navbar/logged-in-items'
|
||||
import HeaderLogoOrTitle from '@/features/ui/components/bootstrap-5/navbar/header-logo-or-title'
|
||||
import MaterialIcon from '@/shared/components/material-icon'
|
||||
import { useContactUsModal } from '@/shared/hooks/use-contact-us-modal'
|
||||
import { UserProvider } from '@/shared/context/user-context'
|
||||
|
||||
function LoggedOutItems() {
|
||||
return <span>Logged out</span>
|
||||
|
@ -32,6 +34,13 @@ function DefaultNavbar(props: DefaultNavbarMetadata) {
|
|||
const { t } = useTranslation()
|
||||
const { isReady } = useWaitForI18n()
|
||||
|
||||
// The Contact Us modal is rendered at this level rather than inside the nav
|
||||
// bar because otherwise the help wiki search results dropdown doesn't show up
|
||||
const { modal: contactUsModal, showModal: showContactUsModal } =
|
||||
useContactUsModal({
|
||||
autofillProjectUrl: false,
|
||||
})
|
||||
|
||||
if (!isReady) {
|
||||
return null
|
||||
}
|
||||
|
@ -95,7 +104,11 @@ function DefaultNavbar(props: DefaultNavbarMetadata) {
|
|||
(item.only_content_pages && !suppressNavContentLinks)
|
||||
|
||||
return showNavItem ? (
|
||||
<NavItemFromData item={item} key={index} />
|
||||
<NavItemFromData
|
||||
item={item}
|
||||
key={index}
|
||||
showContactUsModal={showContactUsModal}
|
||||
/>
|
||||
) : null
|
||||
})}
|
||||
{sessionUser ? (
|
||||
|
@ -112,6 +125,7 @@ function DefaultNavbar(props: DefaultNavbarMetadata) {
|
|||
)}
|
||||
</Container>
|
||||
</Navbar>
|
||||
<UserProvider>{contactUsModal}</UserProvider>
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
|
|
@ -9,8 +9,10 @@ import ContactUsItem from '@/features/ui/components/bootstrap-5/navbar/contact-u
|
|||
|
||||
export default function NavDropdownFromData({
|
||||
item,
|
||||
showContactUsModal,
|
||||
}: {
|
||||
item: NavbarDropdownItemData
|
||||
showContactUsModal: (event?: Event) => void
|
||||
}) {
|
||||
return (
|
||||
<NavDropdownMenu title={item.translatedText} className={item.class}>
|
||||
|
@ -18,7 +20,7 @@ export default function NavDropdownFromData({
|
|||
if ('divider' in child) {
|
||||
return <NavDropdownDivider key={index} />
|
||||
} else if ('isContactUs' in child) {
|
||||
return <ContactUsItem key={index} />
|
||||
return <ContactUsItem key={index} showModal={showContactUsModal} />
|
||||
} else if (isDropdownLinkItem(child)) {
|
||||
return (
|
||||
<NavDropdownLinkItem
|
||||
|
|
|
@ -8,9 +8,20 @@ import NavItem from '@/features/ui/components/bootstrap-5/navbar/nav-item'
|
|||
import { sendMB } from '@/infrastructure/event-tracking'
|
||||
import NavLinkItem from '@/features/ui/components/bootstrap-5/navbar/nav-link-item'
|
||||
|
||||
export default function NavItemFromData({ item }: { item: NavbarItemData }) {
|
||||
export default function NavItemFromData({
|
||||
item,
|
||||
showContactUsModal,
|
||||
}: {
|
||||
item: NavbarItemData
|
||||
showContactUsModal: (event?: Event) => void
|
||||
}) {
|
||||
if (isDropdownItem(item)) {
|
||||
return <NavDropdownFromData item={item} />
|
||||
return (
|
||||
<NavDropdownFromData
|
||||
item={item}
|
||||
showContactUsModal={showContactUsModal}
|
||||
/>
|
||||
)
|
||||
} else if (isLinkItem(item)) {
|
||||
return (
|
||||
<NavLinkItem
|
||||
|
|
|
@ -18,6 +18,7 @@ function OLFormSelect(props: OLFormSelectProps) {
|
|||
bsSize: bs5Props.size,
|
||||
name: bs5Props.name,
|
||||
value: bs5Props.value,
|
||||
defaultValue: bs5Props.defaultValue,
|
||||
disabled: bs5Props.disabled,
|
||||
onChange: bs5Props.onChange as BS3FormControlProps['onChange'],
|
||||
required: bs5Props.required,
|
||||
|
|
Loading…
Add table
Reference in a new issue