1
0
mirror of https://github.com/excalidraw/excalidraw.git synced 2024-11-10 11:35:52 +01:00

feat: add hint around canvas panning (#4159)

This commit is contained in:
David Luzar 2021-11-01 13:36:06 +01:00 committed by GitHub
parent dbc7a8599b
commit 3369035f40
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 22 additions and 5 deletions

@ -11,14 +11,16 @@ import {
} from "../element/typeChecks";
import { getShortcutKey } from "../utils";
interface Hint {
interface HintViewerProps {
appState: AppState;
elements: readonly NonDeletedExcalidrawElement[];
isMobile: boolean;
}
const getHints = ({ appState, elements }: Hint) => {
const getHints = ({ appState, elements, isMobile }: HintViewerProps) => {
const { elementType, isResizing, isRotating, lastPointerDownWith } = appState;
const multiMode = appState.multiElement !== null;
if (elementType === "arrow" || elementType === "line") {
if (!multiMode) {
return t("hints.linearElement");
@ -39,6 +41,7 @@ const getHints = ({ appState, elements }: Hint) => {
}
const selectedElements = getSelectedElements(elements, appState);
if (
isResizing &&
lastPointerDownWith === "mouse" &&
@ -74,13 +77,22 @@ const getHints = ({ appState, elements }: Hint) => {
return t("hints.text_editing");
}
if (elementType === "selection" && !selectedElements.length && !isMobile) {
return t("hints.canvasPanning");
}
return null;
};
export const HintViewer = ({ appState, elements }: Hint) => {
export const HintViewer = ({
appState,
elements,
isMobile,
}: HintViewerProps) => {
let hint = getHints({
appState,
elements,
isMobile,
});
if (!hint) {
return null;

@ -624,7 +624,11 @@ const LayerUI = ({
padding={1}
className={clsx({ "zen-mode": zenModeEnabled })}
>
<HintViewer appState={appState} elements={elements} />
<HintViewer
appState={appState}
elements={elements}
isMobile={isMobile}
/>
{heading}
<Stack.Row gap={1}>
<ShapesSwitcher

@ -92,7 +92,7 @@ export const MobileMenu = ({
</Stack.Col>
)}
</Section>
<HintViewer appState={appState} elements={elements} />
<HintViewer appState={appState} elements={elements} isMobile={true} />
</FixedSideContainer>
);
};

@ -189,6 +189,7 @@
"shapes": "Shapes"
},
"hints": {
"canvasPanning": "To move canvas, hold mouse wheel or spacebar while dragging",
"linearElement": "Click to start multiple points, drag for single line",
"freeDraw": "Click and drag, release when you're finished",
"text": "Tip: you can also add text by double-clicking anywhere with the selection tool",