Files
Verso/services/web/frontend/js/features/ide-react/components/rail/rail-modals.tsx
T
Malik GlossopandCopybot eb9d586bdb Merge pull request #32968 from overleaf/worktree-labs-feature-preview
Add labs preview modal to editor

GitOrigin-RevId: 0df33135febc8e94129bcdfdfb5c4981326dfab0
2026-05-25 08:05:28 +00:00

46 lines
1.2 KiB
TypeScript

import { FC } from 'react'
import {
RailModalKey,
useRailContext,
} from '@/features/ide-react/context/rail-context'
import { RailHelpContactUsModal } from './contact-us'
import { RailHelpShowHotkeysModal } from './keyboard-shortcuts'
import DictionarySettingsModal from '@/features/settings/components/editor-settings/dictionary-settings-modal'
import importOverleafModules from '../../../../../macros/import-overleaf-module.macro'
type RailModalEntry = {
key: RailModalKey
modalComponentFunction: FC<{ show: boolean }>
}
const moduleRailModals = (
importOverleafModules('railModals') as {
import: { default: RailModalEntry }
path: string
}[]
).map(({ import: { default: entry } }) => entry)
const RAIL_MODALS: RailModalEntry[] = [
{
key: 'keyboard-shortcuts',
modalComponentFunction: RailHelpShowHotkeysModal,
},
{
key: 'contact-us',
modalComponentFunction: RailHelpContactUsModal,
},
{
key: 'dictionary',
modalComponentFunction: DictionarySettingsModal,
},
...moduleRailModals,
]
export default function RailModals() {
const { activeModal } = useRailContext()
return RAIL_MODALS.map(({ key, modalComponentFunction: Component }) => (
<Component key={key} show={activeModal === key} />
))
}