* fix: awkward point adding and removing on touch device * feat: move finalize to next to last point * feat: on touch screen, click would create a default line/arrow * fix: make default adaptive to zoom * fix: increase padding to avoid cutoffs * refactor: simplify * fix: only use bigger padding when needed * center arrow horizontally on pointer * increase min drag distance before we start 2-point-arrow-drag-creating * do not render 0-width arrow while creating * dead code * fix tests * fix: remove redundant code * do not enter line editor on creation --------- Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
79 lines
2.3 KiB
TypeScript
79 lines
2.3 KiB
TypeScript
import clsx from "clsx";
|
|
|
|
import { actionShortcuts } from "../../actions";
|
|
import { useTunnels } from "../../context/tunnels";
|
|
import { ExitZenModeAction, UndoRedoActions, ZoomActions } from "../Actions";
|
|
import { HelpButton } from "../HelpButton";
|
|
import { Section } from "../Section";
|
|
import Stack from "../Stack";
|
|
|
|
import type { ActionManager } from "../../actions/manager";
|
|
import type { UIAppState } from "../../types";
|
|
|
|
const Footer = ({
|
|
appState,
|
|
actionManager,
|
|
showExitZenModeBtn,
|
|
renderWelcomeScreen,
|
|
}: {
|
|
appState: UIAppState;
|
|
actionManager: ActionManager;
|
|
showExitZenModeBtn: boolean;
|
|
renderWelcomeScreen: boolean;
|
|
}) => {
|
|
const { FooterCenterTunnel, WelcomeScreenHelpHintTunnel } = useTunnels();
|
|
|
|
return (
|
|
<footer
|
|
role="contentinfo"
|
|
className="layer-ui__wrapper__footer App-menu App-menu_bottom"
|
|
>
|
|
<div
|
|
className={clsx("layer-ui__wrapper__footer-left zen-mode-transition", {
|
|
"layer-ui__wrapper__footer-left--transition-left":
|
|
appState.zenModeEnabled,
|
|
})}
|
|
>
|
|
<Stack.Col gap={2}>
|
|
<Section heading="canvasActions">
|
|
<ZoomActions
|
|
renderAction={actionManager.renderAction}
|
|
zoom={appState.zoom}
|
|
/>
|
|
|
|
{!appState.viewModeEnabled && (
|
|
<UndoRedoActions
|
|
renderAction={actionManager.renderAction}
|
|
className={clsx("zen-mode-transition", {
|
|
"layer-ui__wrapper__footer-left--transition-bottom":
|
|
appState.zenModeEnabled,
|
|
})}
|
|
/>
|
|
)}
|
|
</Section>
|
|
</Stack.Col>
|
|
</div>
|
|
<FooterCenterTunnel.Out />
|
|
<div
|
|
className={clsx("layer-ui__wrapper__footer-right zen-mode-transition", {
|
|
"transition-right": appState.zenModeEnabled,
|
|
})}
|
|
>
|
|
<div style={{ position: "relative" }}>
|
|
{renderWelcomeScreen && <WelcomeScreenHelpHintTunnel.Out />}
|
|
<HelpButton
|
|
onClick={() => actionManager.executeAction(actionShortcuts)}
|
|
/>
|
|
</div>
|
|
</div>
|
|
<ExitZenModeAction
|
|
actionManager={actionManager}
|
|
showExitZenModeBtn={showExitZenModeBtn}
|
|
/>
|
|
</footer>
|
|
);
|
|
};
|
|
|
|
export default Footer;
|
|
Footer.displayName = "Footer";
|