welcome-message.tsx 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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 getMeta from '@/utils/meta'
  9. import { ExposedSettings } from '../../../../../types/exposed-settings'
  10. export default function WelcomeMessage() {
  11. const { t } = useTranslation()
  12. const [activeModal, setActiveModal] =
  13. useState<Nullable<NewProjectButtonModalVariant>>(null)
  14. const { wikiEnabled, templatesEnabled } = getMeta(
  15. 'ol-ExposedSettings'
  16. ) as ExposedSettings
  17. return (
  18. <>
  19. <div className="card welcome-new-wrapper">
  20. <div className="welcome text-centered">
  21. <h2 className="welcome-title">{t('welcome_to_sl')}</h2>
  22. <div className="welcome-message-cards-wrapper">
  23. <WelcomeMessageCreateNewProjectDropdown
  24. setActiveModal={modal => setActiveModal(modal)}
  25. />
  26. {wikiEnabled && (
  27. <WelcomeMessageLink
  28. imgSrc="/img/welcome-page/learn-latex.svg"
  29. title="Learn LaTeX with a tutorial"
  30. href="/learn/latex/Learn_LaTeX_in_30_minutes"
  31. target="_blank"
  32. />
  33. )}
  34. {templatesEnabled && (
  35. <WelcomeMessageLink
  36. imgSrc="/img/welcome-page/browse-templates.svg"
  37. title="Browse templates"
  38. href="/templates"
  39. />
  40. )}
  41. </div>
  42. </div>
  43. </div>
  44. <NewProjectButtonModal
  45. modal={activeModal}
  46. onHide={() => setActiveModal(null)}
  47. />
  48. </>
  49. )
  50. }