AppWelcomeScreen.tsx 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. import { loginIcon } from "@excalidraw/excalidraw/components/icons";
  2. import { POINTER_EVENTS } from "@excalidraw/common";
  3. import { useI18n } from "@excalidraw/excalidraw/i18n";
  4. import { WelcomeScreen } from "@excalidraw/excalidraw/index";
  5. import React from "react";
  6. import { isExcalidrawPlusSignedUser } from "../app_constants";
  7. export const AppWelcomeScreen: React.FC<{
  8. onCollabDialogOpen: () => any;
  9. isCollabEnabled: boolean;
  10. }> = React.memo((props) => {
  11. const { t } = useI18n();
  12. let headingContent;
  13. if (isExcalidrawPlusSignedUser) {
  14. headingContent = t("welcomeScreen.app.center_heading_plus")
  15. .split(/(Excalidraw\+)/)
  16. .map((bit, idx) => {
  17. if (bit === "Excalidraw+") {
  18. return (
  19. <a
  20. style={{ pointerEvents: POINTER_EVENTS.inheritFromUI }}
  21. href={`${
  22. import.meta.env.VITE_APP_PLUS_APP
  23. }?utm_source=excalidraw&utm_medium=app&utm_content=welcomeScreenSignedInUser`}
  24. key={idx}
  25. >
  26. Excalidraw+
  27. </a>
  28. );
  29. }
  30. return bit;
  31. });
  32. } else {
  33. headingContent = (
  34. <>
  35. {t("welcomeScreen.app.center_heading")}
  36. <br />
  37. {t("welcomeScreen.app.center_heading_line2")}
  38. <br />
  39. {t("welcomeScreen.app.center_heading_line3")}
  40. </>
  41. );
  42. }
  43. return (
  44. <WelcomeScreen>
  45. <WelcomeScreen.Hints.MenuHint>
  46. {t("welcomeScreen.app.menuHint")}
  47. </WelcomeScreen.Hints.MenuHint>
  48. <WelcomeScreen.Hints.ToolbarHint />
  49. <WelcomeScreen.Hints.HelpHint />
  50. <WelcomeScreen.Center>
  51. <WelcomeScreen.Center.Logo />
  52. <WelcomeScreen.Center.Heading>
  53. {headingContent}
  54. </WelcomeScreen.Center.Heading>
  55. <WelcomeScreen.Center.Menu>
  56. <WelcomeScreen.Center.MenuItemLoadScene />
  57. <WelcomeScreen.Center.MenuItemHelp />
  58. {props.isCollabEnabled && (
  59. <WelcomeScreen.Center.MenuItemLiveCollaborationTrigger
  60. onSelect={() => props.onCollabDialogOpen()}
  61. />
  62. )}
  63. {!isExcalidrawPlusSignedUser && (
  64. <WelcomeScreen.Center.MenuItemLink
  65. href={`${
  66. import.meta.env.VITE_APP_PLUS_LP
  67. }/plus?utm_source=excalidraw&utm_medium=app&utm_content=welcomeScreenGuest`}
  68. shortcut={null}
  69. icon={loginIcon}
  70. >
  71. Sign up
  72. </WelcomeScreen.Center.MenuItemLink>
  73. )}
  74. </WelcomeScreen.Center.Menu>
  75. </WelcomeScreen.Center>
  76. </WelcomeScreen>
  77. );
  78. });