welcome-message.tsx 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import { useState } from 'react'
  2. import { useTranslation } from 'react-i18next'
  3. import NewProjectButtonModal from './new-project-button/new-project-button-modal'
  4. import type { NewProjectButtonModalVariant } from './new-project-button/new-project-button-modal'
  5. import type { Nullable } from '../../../../../types/utils'
  6. import WelcomeMessageLink from './welcome-message-new/welcome-message-link'
  7. import WelcomeMessageCreateNewProjectDropdown from './welcome-message-new/welcome-message-create-new-project-dropdown'
  8. import learnLatexImage from '../images/learn-latex.svg'
  9. import browseTemplatesImage from '../images/browse-templates.svg'
  10. import getMeta from '@/utils/meta'
  11. import OLPageContentCard from '@/shared/components/ol/ol-page-content-card'
  12. export default function WelcomeMessage() {
  13. const { t } = useTranslation()
  14. const [activeModal, setActiveModal] =
  15. useState<Nullable<NewProjectButtonModalVariant>>(null)
  16. const { wikiEnabled, templatesEnabled } = getMeta('ol-ExposedSettings')
  17. return (
  18. <>
  19. <OLPageContentCard>
  20. <div className="welcome-new-wrapper">
  21. <div className="welcome text-center">
  22. <h2 className="welcome-title">{t('welcome_to_sl')}</h2>
  23. <div className="welcome-message-cards-wrapper">
  24. <WelcomeMessageCreateNewProjectDropdown
  25. setActiveModal={modal => setActiveModal(modal)}
  26. />
  27. {wikiEnabled && (
  28. <WelcomeMessageLink
  29. imgSrc={learnLatexImage}
  30. title="Learn LaTeX with a tutorial"
  31. href="/learn/latex/Learn_LaTeX_in_30_minutes"
  32. target="_blank"
  33. />
  34. )}
  35. {templatesEnabled && (
  36. <WelcomeMessageLink
  37. imgSrc={browseTemplatesImage}
  38. title="Browse templates"
  39. href="/templates"
  40. />
  41. )}
  42. </div>
  43. </div>
  44. </div>
  45. </OLPageContentCard>
  46. <NewProjectButtonModal
  47. modal={activeModal}
  48. onHide={() => setActiveModal(null)}
  49. />
  50. </>
  51. )
  52. }