|  | @@ -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 = ({
 | 
	
		
			
				|  |  |                )}
 | 
	
		
			
				|  |  |              </Section>
 | 
	
		
			
				|  |  |            )}
 | 
	
		
			
				|  |  | -          <UserList
 | 
	
		
			
				|  |  | -            className={clsx("zen-mode-transition", {
 | 
	
		
			
				|  |  | -              "transition-right": zenModeEnabled,
 | 
	
		
			
				|  |  | -            })}
 | 
	
		
			
				|  |  | +          <div
 | 
	
		
			
				|  |  | +            className={clsx(
 | 
	
		
			
				|  |  | +              "layer-ui__wrapper__top-right zen-mode-transition",
 | 
	
		
			
				|  |  | +              {
 | 
	
		
			
				|  |  | +                "transition-right": zenModeEnabled,
 | 
	
		
			
				|  |  | +              },
 | 
	
		
			
				|  |  | +            )}
 | 
	
		
			
				|  |  |            >
 | 
	
		
			
				|  |  | -            {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]) => (
 | 
	
		
			
				|  |  | -                  <Tooltip
 | 
	
		
			
				|  |  | -                    label={client.username || "Unknown user"}
 | 
	
		
			
				|  |  | -                    key={clientId}
 | 
	
		
			
				|  |  | -                  >
 | 
	
		
			
				|  |  | -                    {actionManager.renderAction("goToCollaborator", clientId)}
 | 
	
		
			
				|  |  | -                  </Tooltip>
 | 
	
		
			
				|  |  | -                ))}
 | 
	
		
			
				|  |  | -          </UserList>
 | 
	
		
			
				|  |  | +            <UserList>
 | 
	
		
			
				|  |  | +              {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]) => (
 | 
	
		
			
				|  |  | +                    <Tooltip
 | 
	
		
			
				|  |  | +                      label={client.username || "Unknown user"}
 | 
	
		
			
				|  |  | +                      key={clientId}
 | 
	
		
			
				|  |  | +                    >
 | 
	
		
			
				|  |  | +                      {actionManager.renderAction("goToCollaborator", clientId)}
 | 
	
		
			
				|  |  | +                    </Tooltip>
 | 
	
		
			
				|  |  | +                  ))}
 | 
	
		
			
				|  |  | +            </UserList>
 | 
	
		
			
				|  |  | +            {renderTopRight?.(isMobile, appState)}
 | 
	
		
			
				|  |  | +          </div>
 | 
	
		
			
				|  |  |          </div>
 | 
	
		
			
				|  |  |        </FixedSideContainer>
 | 
	
		
			
				|  |  |      );
 | 
	
	
		
			
				|  | @@ -649,20 +656,6 @@ const LayerUI = ({
 | 
	
		
			
				|  |  |      );
 | 
	
		
			
				|  |  |    };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  const renderGitHubCorner = () => {
 | 
	
		
			
				|  |  | -    return (
 | 
	
		
			
				|  |  | -      <aside
 | 
	
		
			
				|  |  | -        className={clsx(
 | 
	
		
			
				|  |  | -          "layer-ui__wrapper__github-corner zen-mode-transition",
 | 
	
		
			
				|  |  | -          {
 | 
	
		
			
				|  |  | -            "transition-right": zenModeEnabled,
 | 
	
		
			
				|  |  | -          },
 | 
	
		
			
				|  |  | -        )}
 | 
	
		
			
				|  |  | -      >
 | 
	
		
			
				|  |  | -        <GitHubCorner theme={appState.theme} />
 | 
	
		
			
				|  |  | -      </aside>
 | 
	
		
			
				|  |  | -    );
 | 
	
		
			
				|  |  | -  };
 | 
	
		
			
				|  |  |    const renderFooter = () => (
 | 
	
		
			
				|  |  |      <footer role="contentinfo" className="layer-ui__wrapper__footer">
 | 
	
		
			
				|  |  |        <div
 | 
	
	
		
			
				|  | @@ -746,7 +739,6 @@ const LayerUI = ({
 | 
	
		
			
				|  |  |        {dialogs}
 | 
	
		
			
				|  |  |        {renderFixedSideContainer()}
 | 
	
		
			
				|  |  |        {renderBottomAppMenu()}
 | 
	
		
			
				|  |  | -      {renderGitHubCorner()}
 | 
	
		
			
				|  |  |        {renderFooter()}
 | 
	
		
			
				|  |  |        {appState.scrolledOutside && (
 | 
	
		
			
				|  |  |          <button
 |