summaryrefslogtreecommitdiffstats
path: root/excalidraw-app/components/AppWelcomeScreen.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'excalidraw-app/components/AppWelcomeScreen.tsx')
-rw-r--r--excalidraw-app/components/AppWelcomeScreen.tsx72
1 files changed, 72 insertions, 0 deletions
diff --git a/excalidraw-app/components/AppWelcomeScreen.tsx b/excalidraw-app/components/AppWelcomeScreen.tsx
new file mode 100644
index 0000000..139a951
--- /dev/null
+++ b/excalidraw-app/components/AppWelcomeScreen.tsx
@@ -0,0 +1,72 @@
+import React from "react";
+import { loginIcon } from "@excalidraw/excalidraw/components/icons";
+import { useI18n } from "@excalidraw/excalidraw/i18n";
+import { WelcomeScreen } from "@excalidraw/excalidraw/index";
+import { isExcalidrawPlusSignedUser } from "../app_constants";
+import { POINTER_EVENTS } from "@excalidraw/excalidraw/constants";
+
+export const AppWelcomeScreen: React.FC<{
+ onCollabDialogOpen: () => any;
+ isCollabEnabled: boolean;
+}> = React.memo((props) => {
+ const { t } = useI18n();
+ let headingContent;
+
+ if (isExcalidrawPlusSignedUser) {
+ headingContent = t("welcomeScreen.app.center_heading_plus")
+ .split(/(kj-diagramming)/)
+ .map((bit, idx) => {
+ if (bit === "kj-diagramming") {
+ return (
+ <a
+ style={{ pointerEvents: POINTER_EVENTS.inheritFromUI }}
+ href={`${
+ import.meta.env.VITE_APP_PLUS_APP
+ }?utm_source=excalidraw&utm_medium=app&utm_content=welcomeScreenSignedInUser`}
+ key={idx}
+ >
+ kj-diagramming
+ </a>
+ );
+ }
+ return bit;
+ });
+ } else {
+ headingContent = t("welcomeScreen.app.center_heading");
+ }
+
+ return (
+ <WelcomeScreen>
+ <WelcomeScreen.Hints.MenuHint>
+ {t("welcomeScreen.app.menuHint")}
+ </WelcomeScreen.Hints.MenuHint>
+ <WelcomeScreen.Hints.ToolbarHint />
+ <WelcomeScreen.Hints.HelpHint />
+ <WelcomeScreen.Center>
+ <WelcomeScreen.Center.Heading>
+ {headingContent}
+ </WelcomeScreen.Center.Heading>
+ <WelcomeScreen.Center.Menu>
+ <WelcomeScreen.Center.MenuItemLoadScene />
+ <WelcomeScreen.Center.MenuItemHelp />
+ {props.isCollabEnabled && (
+ <WelcomeScreen.Center.MenuItemLiveCollaborationTrigger
+ onSelect={() => props.onCollabDialogOpen()}
+ />
+ )}
+ {!isExcalidrawPlusSignedUser && (
+ <WelcomeScreen.Center.MenuItemLink
+ href={`${
+ import.meta.env.VITE_APP_PLUS_LP
+ }/plus?utm_source=excalidraw&utm_medium=app&utm_content=welcomeScreenGuest`}
+ shortcut={null}
+ icon={loginIcon}
+ >
+ Sign up
+ </WelcomeScreen.Center.MenuItemLink>
+ )}
+ </WelcomeScreen.Center.Menu>
+ </WelcomeScreen.Center>
+ </WelcomeScreen>
+ );
+});