1
0
mirror of https://github.com/excalidraw/excalidraw.git synced 2024-11-02 03:25:53 +01:00

feat: go-to-excalidrawplus button (#5202)

Co-authored-by: dwelle <luzar.david@gmail.com>
This commit is contained in:
Milos Vetesnik 2022-05-18 18:30:34 +02:00 committed by GitHub
parent b9968e2e72
commit bed9fca4a5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 59 additions and 9 deletions

@ -13,3 +13,5 @@ REACT_APP_FIREBASE_CONFIG='{"apiKey":"AIzaSyAd15pYlMci_xIp9ko6wkEsDzAAA0Dn0RU","
# production-only vars # production-only vars
REACT_APP_GOOGLE_ANALYTICS_ID=UA-387204-13 REACT_APP_GOOGLE_ANALYTICS_ID=UA-387204-13
REACT_APP_PLUS_APP=https://app.excalidraw.com

@ -193,3 +193,7 @@ export const VERTICAL_ALIGN = {
}; };
export const ELEMENT_READY_TO_ERASE_OPACITY = 20; export const ELEMENT_READY_TO_ERASE_OPACITY = 20;
export const COOKIES = {
AUTH_STATE_COOKIE: "excplus-auth",
} as const;

@ -32,3 +32,25 @@
pointer-events: none; pointer-events: none;
} }
} }
.plus-button {
display: flex;
justify-content: center;
cursor: pointer;
align-items: center;
border: 1px solid var(--color-primary);
padding: 0.6em 0.7em;
border-radius: var(--space-factor);
color: var(--color-primary) !important;
margin: 8px;
text-decoration: none !important;
&:hover {
background-color: var(--color-primary);
color: white !important;
}
&:active {
background-color: var(--color-primary-darker);
}
}

@ -4,7 +4,13 @@ import { trackEvent } from "../analytics";
import { getDefaultAppState } from "../appState"; import { getDefaultAppState } from "../appState";
import { ErrorDialog } from "../components/ErrorDialog"; import { ErrorDialog } from "../components/ErrorDialog";
import { TopErrorBoundary } from "../components/TopErrorBoundary"; import { TopErrorBoundary } from "../components/TopErrorBoundary";
import { APP_NAME, EVENT, TITLE_TIMEOUT, VERSION_TIMEOUT } from "../constants"; import {
APP_NAME,
COOKIES,
EVENT,
TITLE_TIMEOUT,
VERSION_TIMEOUT,
} from "../constants";
import { loadFromBlob } from "../data/blob"; import { loadFromBlob } from "../data/blob";
import { import {
ExcalidrawElement, ExcalidrawElement,
@ -68,6 +74,10 @@ import { isBrowserStorageStateNewer } from "./data/tabSync";
import clsx from "clsx"; import clsx from "clsx";
import { parseLibraryTokensFromUrl, useHandleLibrary } from "../data/library"; import { parseLibraryTokensFromUrl, useHandleLibrary } from "../data/library";
const isExcalidrawPlusSignedUser = document.cookie.includes(
COOKIES.AUTH_STATE_COOKIE,
);
const languageDetector = new LanguageDetector(); const languageDetector = new LanguageDetector();
languageDetector.init({ languageDetector.init({
languageUtils: { languageUtils: {
@ -182,7 +192,7 @@ const initializeScene = async (opts: {
return { scene: null, isExternalScene: false }; return { scene: null, isExternalScene: false };
}; };
const PlusLinkJSX = ( const PlusLPLinkJSX = (
<p style={{ direction: "ltr", unicodeBidi: "embed" }}> <p style={{ direction: "ltr", unicodeBidi: "embed" }}>
Introducing Excalidraw+ Introducing Excalidraw+
<br /> <br />
@ -196,6 +206,17 @@ const PlusLinkJSX = (
</p> </p>
); );
const PlusAppLinkJSX = (
<a
href={`${process.env.REACT_APP_PLUS_APP}/#excalidraw-redirect`}
target="_blank"
rel="noreferrer"
className="plus-button"
>
Go to Excalidraw+
</a>
);
const ExcalidrawWrapper = () => { const ExcalidrawWrapper = () => {
const [errorMessage, setErrorMessage] = useState(""); const [errorMessage, setErrorMessage] = useState("");
let currentLangCode = languageDetector.detect() || defaultLang.code; let currentLangCode = languageDetector.detect() || defaultLang.code;
@ -524,17 +545,16 @@ const ExcalidrawWrapper = () => {
if (isMobile) { if (isMobile) {
return null; return null;
} }
return ( return (
<div <div
style={{ style={{
width: "24ch", width: isExcalidrawPlusSignedUser ? "21ch" : "23ch",
fontSize: "0.7em", fontSize: "0.7em",
textAlign: "center", textAlign: "center",
}} }}
> >
{/* <GitHubCorner theme={appState.theme} dir={document.dir} /> */} {isExcalidrawPlusSignedUser ? PlusAppLinkJSX : PlusLPLinkJSX}
{/* FIXME remove after 2021-05-20 */}
{PlusLinkJSX}
</div> </div>
); );
}, },
@ -586,12 +606,14 @@ const ExcalidrawWrapper = () => {
marginTop: isTinyDevice ? 16 : undefined, marginTop: isTinyDevice ? 16 : undefined,
marginLeft: "auto", marginLeft: "auto",
marginRight: isTinyDevice ? "auto" : undefined, marginRight: isTinyDevice ? "auto" : undefined,
padding: "4px 2px", padding: isExcalidrawPlusSignedUser ? undefined : "4px 2px",
border: "1px dashed #aaa", border: isExcalidrawPlusSignedUser
? undefined
: "1px dashed #aaa",
borderRadius: 12, borderRadius: 12,
}} }}
> >
{PlusLinkJSX} {isExcalidrawPlusSignedUser ? PlusAppLinkJSX : PlusLPLinkJSX}
</div> </div>
</div> </div>
); );