feat: support renderTopRightUI in mobile (#4065)

This commit is contained in:
Aakansha Doshi 2021-10-17 21:44:46 +05:30 committed by GitHub
parent ff29780760
commit c6ffc06541
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 21 additions and 3 deletions

View File

@ -65,7 +65,10 @@ interface LayerUIProps {
toggleZenMode: () => void;
langCode: Language["code"];
isCollaborating: boolean;
renderTopRightUI?: (isMobile: boolean, appState: AppState) => JSX.Element;
renderTopRightUI?: (
isMobile: boolean,
appState: AppState,
) => JSX.Element | null;
renderCustomFooter?: (isMobile: boolean, appState: AppState) => JSX.Element;
viewModeEnabled: boolean;
libraryReturnUrl: ExcalidrawProps["libraryReturnUrl"];
@ -761,6 +764,7 @@ const LayerUI = ({
renderCustomFooter={renderCustomFooter}
viewModeEnabled={viewModeEnabled}
showThemeBtn={showThemeBtn}
renderTopRightUI={renderTopRightUI}
/>
</>
) : (

View File

@ -33,6 +33,10 @@ type MobileMenuProps = {
renderCustomFooter?: (isMobile: boolean, appState: AppState) => JSX.Element;
viewModeEnabled: boolean;
showThemeBtn: boolean;
renderTopRightUI?: (
isMobile: boolean,
appState: AppState,
) => JSX.Element | null;
};
export const MobileMenu = ({
@ -50,6 +54,7 @@ export const MobileMenu = ({
renderCustomFooter,
viewModeEnabled,
showThemeBtn,
renderTopRightUI,
}: MobileMenuProps) => {
const renderToolbar = () => {
return (
@ -68,6 +73,7 @@ export const MobileMenu = ({
/>
</Stack.Row>
</Island>
{renderTopRightUI && renderTopRightUI(true, appState)}
<LockButton
checked={appState.elementLocked}
onChange={onLockToggle}

View File

@ -307,6 +307,9 @@ const ExcalidrawWrapper = () => {
const renderTopRightUI = useCallback(
(isMobile: boolean, appState: AppState) => {
if (isMobile) {
return null;
}
return (
<div
style={{

View File

@ -17,7 +17,9 @@ Please add the latest change on the top under the correct section.
### Features
- Export `THEME` constant from the package so host can use this when passing the theme
- Support [`renderTopRightUI`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#renderTopRightUI) in mobile UI.
- Export `THEME` constant from the package so host can use this when passing the theme.
#### BREAKING CHANGE

View File

@ -186,7 +186,10 @@ export interface ExcalidrawProps {
data: ClipboardData,
event: ClipboardEvent | null,
) => Promise<boolean> | boolean;
renderTopRightUI?: (isMobile: boolean, appState: AppState) => JSX.Element;
renderTopRightUI?: (
isMobile: boolean,
appState: AppState,
) => JSX.Element | null;
renderFooter?: (isMobile: boolean, appState: AppState) => JSX.Element;
langCode?: Language["code"];
viewModeEnabled?: boolean;