From bac76778cee22a8a670211d1c64e8962a99afd43 Mon Sep 17 00:00:00 2001 From: David Luzar Date: Thu, 6 May 2021 21:00:17 +0200 Subject: [PATCH] feat: add `renderTopRight` prop & remove GH corner from core (#3539) * feat: add `renderTopRight` prop & remove GH corner from core * reuse `--space-factor` var * update readme & changelog --- src/components/App.tsx | 2 + src/components/FixedSideContainer.scss | 19 +++--- src/components/LayerUI.scss | 15 +---- src/components/LayerUI.tsx | 58 ++++++++----------- src/components/UserList.scss | 3 +- src/css/styles.scss | 14 ----- src/css/theme.scss | 2 + .../components/GitHubCorner.tsx | 16 +++-- src/excalidraw-app/index.tsx | 14 +++++ src/packages/excalidraw/CHANGELOG.md | 8 +++ src/packages/excalidraw/README_NEXT.md | 7 ++- src/packages/excalidraw/index.tsx | 2 + src/types.ts | 1 + 13 files changed, 84 insertions(+), 77 deletions(-) rename src/{ => excalidraw-app}/components/GitHubCorner.tsx (67%) diff --git a/src/components/App.tsx b/src/components/App.tsx index 33901a7b4f..472081bea3 100644 --- a/src/components/App.tsx +++ b/src/components/App.tsx @@ -452,6 +452,7 @@ class App extends React.Component { const { onCollabButtonClick, onExportToBackend, + renderTopRight, renderFooter, renderCustomStats, } = this.props; @@ -492,6 +493,7 @@ class App extends React.Component { langCode={getLanguage().code} isCollaborating={this.props.isCollaborating || false} onExportToBackend={onExportToBackend} + renderTopRight={renderTopRight} renderCustomFooter={renderFooter} viewModeEnabled={viewModeEnabled} showExitZenModeBtn={ diff --git a/src/components/FixedSideContainer.scss b/src/components/FixedSideContainer.scss index c280378558..62b9869fd2 100644 --- a/src/components/FixedSideContainer.scss +++ b/src/components/FixedSideContainer.scss @@ -1,6 +1,5 @@ .excalidraw { .FixedSideContainer { - --margin: 0.25rem; position: absolute; pointer-events: none; } @@ -10,9 +9,9 @@ } .FixedSideContainer_side_top { - left: var(--margin); - top: var(--margin); - right: var(--margin); + left: var(--space-factor); + top: var(--space-factor); + right: var(--space-factor); z-index: 2; } @@ -23,16 +22,16 @@ /* TODO: if these are used, make sure to implement RTL support .FixedSideContainer_side_left { - left: var(--margin); - top: var(--margin); - bottom: var(--margin); + left: var(--space-factor); + top: var(--space-factor); + bottom: var(--space-factor); z-index: 1; } .FixedSideContainer_side_right { - right: var(--margin); - top: var(--margin); - bottom: var(--margin); + right: var(--space-factor); + top: var(--space-factor); + bottom: var(--space-factor); z-index: 3; } */ diff --git a/src/components/LayerUI.scss b/src/components/LayerUI.scss index 60fba5acb0..62d7a6b8e0 100644 --- a/src/components/LayerUI.scss +++ b/src/components/LayerUI.scss @@ -55,19 +55,8 @@ } } - &__github-corner { - top: 0; - - :root[dir="ltr"] & { - right: 0; - } - - :root[dir="rtl"] & { - left: 0; - } - - position: absolute; - width: 40px; + &__top-right { + display: flex; } &__footer { diff --git a/src/components/LayerUI.tsx b/src/components/LayerUI.tsx index ebd6a6f79a..8f8e92defc 100644 --- a/src/components/LayerUI.tsx +++ b/src/components/LayerUI.tsx @@ -30,7 +30,6 @@ import CollabButton from "./CollabButton"; import { ErrorDialog } from "./ErrorDialog"; import { ExportCB, ExportDialog } from "./ExportDialog"; import { FixedSideContainer } from "./FixedSideContainer"; -import { GitHubCorner } from "./GitHubCorner"; import { HintViewer } from "./HintViewer"; import { exportFile, load, shield, trash } from "./icons"; import { Island } from "./Island"; @@ -68,6 +67,7 @@ interface LayerUIProps { appState: AppState, canvas: HTMLCanvasElement | null, ) => void; + renderTopRight?: (isMobile: boolean, appState: AppState) => JSX.Element; renderCustomFooter?: (isMobile: boolean) => JSX.Element; viewModeEnabled: boolean; libraryReturnUrl: ExcalidrawProps["libraryReturnUrl"]; @@ -371,6 +371,7 @@ const LayerUI = ({ toggleZenMode, isCollaborating, onExportToBackend, + renderTopRight, renderCustomFooter, viewModeEnabled, libraryReturnUrl, @@ -604,24 +605,30 @@ const LayerUI = ({ )} )} - - {appState.collaborators.size > 0 && - Array.from(appState.collaborators) - // Collaborator is either not initialized or is actually the current user. - .filter(([_, client]) => Object.keys(client).length !== 0) - .map(([clientId, client]) => ( - - {actionManager.renderAction("goToCollaborator", clientId)} - - ))} - + + {appState.collaborators.size > 0 && + Array.from(appState.collaborators) + // Collaborator is either not initialized or is actually the current user. + .filter(([_, client]) => Object.keys(client).length !== 0) + .map(([clientId, client]) => ( + + {actionManager.renderAction("goToCollaborator", clientId)} + + ))} + + {renderTopRight?.(isMobile, appState)} + ); @@ -649,20 +656,6 @@ const LayerUI = ({ ); }; - const renderGitHubCorner = () => { - return ( - - ); - }; const renderFooter = () => (