rail-modals.tsx 934 B

12345678910111213141516171819202122232425262728293031323334
  1. import { FC } from 'react'
  2. import {
  3. RailModalKey,
  4. useRailContext,
  5. } from '@/features/ide-react/context/rail-context'
  6. import { RailHelpContactUsModal } from './contact-us'
  7. import { RailHelpShowHotkeysModal } from './keyboard-shortcuts'
  8. import DictionarySettingsModal from '@/features/settings/components/editor-settings/dictionary-settings-modal'
  9. const RAIL_MODALS: {
  10. key: RailModalKey
  11. modalComponentFunction: FC<{ show: boolean }>
  12. }[] = [
  13. {
  14. key: 'keyboard-shortcuts',
  15. modalComponentFunction: RailHelpShowHotkeysModal,
  16. },
  17. {
  18. key: 'contact-us',
  19. modalComponentFunction: RailHelpContactUsModal,
  20. },
  21. {
  22. key: 'dictionary',
  23. modalComponentFunction: DictionarySettingsModal,
  24. },
  25. ]
  26. export default function RailModals() {
  27. const { activeModal } = useRailContext()
  28. return RAIL_MODALS.map(({ key, modalComponentFunction: Component }) => (
  29. <Component key={key} show={activeModal === key} />
  30. ))
  31. }