mirror of
https://github.com/excalidraw/excalidraw.git
synced 2025-05-03 10:00:07 -04:00
feat: allow show grid without snap to grid (#6889)
This commit is contained in:
parent
b5652b8e36
commit
995dfb3ac9
8 changed files with 38 additions and 1 deletions
|
@ -107,6 +107,7 @@ export const actionClearCanvas = register({
|
||||||
exportEmbedScene: appState.exportEmbedScene,
|
exportEmbedScene: appState.exportEmbedScene,
|
||||||
gridSize: appState.gridSize,
|
gridSize: appState.gridSize,
|
||||||
gridStep: appState.gridStep,
|
gridStep: appState.gridStep,
|
||||||
|
showGrid: appState.showGrid,
|
||||||
gridModeEnabled: appState.gridModeEnabled,
|
gridModeEnabled: appState.gridModeEnabled,
|
||||||
stats: appState.stats,
|
stats: appState.stats,
|
||||||
pasteDialog: appState.pasteDialog,
|
pasteDialog: appState.pasteDialog,
|
||||||
|
|
27
packages/excalidraw/actions/actionToggleShowGrid.tsx
Normal file
27
packages/excalidraw/actions/actionToggleShowGrid.tsx
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
import { CODES, KEYS } from "../keys";
|
||||||
|
import { register } from "./register";
|
||||||
|
import type { AppState } from "../types";
|
||||||
|
import { gridIcon } from "../components/icons";
|
||||||
|
import { StoreAction } from "../store";
|
||||||
|
|
||||||
|
export const actionToggleShowGrid = register({
|
||||||
|
name: "showGrid",
|
||||||
|
icon: gridIcon,
|
||||||
|
keywords: ["snap"],
|
||||||
|
label: "labels.toggleShowGrid",
|
||||||
|
viewMode: true,
|
||||||
|
trackEvent: {
|
||||||
|
category: "canvas",
|
||||||
|
predicate: (appState) => appState.showGrid,
|
||||||
|
},
|
||||||
|
perform(elements, appState) {
|
||||||
|
return {
|
||||||
|
appState: {
|
||||||
|
...appState,
|
||||||
|
showGrid: !this.checked!(appState),
|
||||||
|
},
|
||||||
|
storeAction: StoreAction.NONE,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
checked: (appState: AppState) => appState.showGrid,
|
||||||
|
});
|
|
@ -77,6 +77,7 @@ export {
|
||||||
copyText,
|
copyText,
|
||||||
} from "./actionClipboard";
|
} from "./actionClipboard";
|
||||||
|
|
||||||
|
export { actionToggleShowGrid } from "./actionToggleShowGrid";
|
||||||
export { actionToggleGridMode } from "./actionToggleGridMode";
|
export { actionToggleGridMode } from "./actionToggleGridMode";
|
||||||
export { actionToggleZenMode } from "./actionToggleZenMode";
|
export { actionToggleZenMode } from "./actionToggleZenMode";
|
||||||
export { actionToggleObjectsSnapMode } from "./actionToggleObjectsSnapMode";
|
export { actionToggleObjectsSnapMode } from "./actionToggleObjectsSnapMode";
|
||||||
|
|
|
@ -54,6 +54,7 @@ export type ActionName =
|
||||||
| "copyStyles"
|
| "copyStyles"
|
||||||
| "selectAll"
|
| "selectAll"
|
||||||
| "pasteStyles"
|
| "pasteStyles"
|
||||||
|
| "showGrid"
|
||||||
| "gridMode"
|
| "gridMode"
|
||||||
| "zenMode"
|
| "zenMode"
|
||||||
| "objectsSnapMode"
|
| "objectsSnapMode"
|
||||||
|
|
|
@ -63,6 +63,7 @@ export const getDefaultAppState = (): Omit<
|
||||||
fileHandle: null,
|
fileHandle: null,
|
||||||
gridSize: DEFAULT_GRID_SIZE,
|
gridSize: DEFAULT_GRID_SIZE,
|
||||||
gridStep: DEFAULT_GRID_STEP,
|
gridStep: DEFAULT_GRID_STEP,
|
||||||
|
showGrid: false,
|
||||||
gridModeEnabled: false,
|
gridModeEnabled: false,
|
||||||
isBindingEnabled: true,
|
isBindingEnabled: true,
|
||||||
defaultSidebarDockedPreference: false,
|
defaultSidebarDockedPreference: false,
|
||||||
|
@ -183,6 +184,7 @@ const APP_STATE_STORAGE_CONF = (<
|
||||||
fileHandle: { browser: false, export: false, server: false },
|
fileHandle: { browser: false, export: false, server: false },
|
||||||
gridSize: { browser: true, export: true, server: true },
|
gridSize: { browser: true, export: true, server: true },
|
||||||
gridStep: { browser: true, export: true, server: true },
|
gridStep: { browser: true, export: true, server: true },
|
||||||
|
showGrid: { browser: true, export: true, server: true },
|
||||||
gridModeEnabled: { browser: true, export: true, server: true },
|
gridModeEnabled: { browser: true, export: true, server: true },
|
||||||
height: { browser: false, export: false, server: false },
|
height: { browser: false, export: false, server: false },
|
||||||
isBindingEnabled: { browser: false, export: false, server: false },
|
isBindingEnabled: { browser: false, export: false, server: false },
|
||||||
|
|
|
@ -25,6 +25,7 @@ import {
|
||||||
actionSelectAll,
|
actionSelectAll,
|
||||||
actionSendBackward,
|
actionSendBackward,
|
||||||
actionSendToBack,
|
actionSendToBack,
|
||||||
|
actionToggleShowGrid,
|
||||||
actionToggleGridMode,
|
actionToggleGridMode,
|
||||||
actionToggleStats,
|
actionToggleStats,
|
||||||
actionToggleZenMode,
|
actionToggleZenMode,
|
||||||
|
@ -1726,7 +1727,7 @@ class App extends React.Component<AppProps, AppState> {
|
||||||
renderConfig={{
|
renderConfig={{
|
||||||
imageCache: this.imageCache,
|
imageCache: this.imageCache,
|
||||||
isExporting: false,
|
isExporting: false,
|
||||||
renderGrid: isGridModeEnabled(this),
|
renderGrid: this.state.showGrid || isGridModeEnabled(this),
|
||||||
canvasBackgroundColor:
|
canvasBackgroundColor:
|
||||||
this.state.viewBackgroundColor,
|
this.state.viewBackgroundColor,
|
||||||
embedsValidationStatus: this.embedsValidationStatus,
|
embedsValidationStatus: this.embedsValidationStatus,
|
||||||
|
@ -10571,6 +10572,7 @@ class App extends React.Component<AppProps, AppState> {
|
||||||
return [
|
return [
|
||||||
...options,
|
...options,
|
||||||
actionToggleGridMode,
|
actionToggleGridMode,
|
||||||
|
actionToggleShowGrid,
|
||||||
actionToggleZenMode,
|
actionToggleZenMode,
|
||||||
actionToggleViewMode,
|
actionToggleViewMode,
|
||||||
actionToggleStats,
|
actionToggleStats,
|
||||||
|
@ -10588,6 +10590,7 @@ class App extends React.Component<AppProps, AppState> {
|
||||||
actionUnlockAllElements,
|
actionUnlockAllElements,
|
||||||
CONTEXT_MENU_SEPARATOR,
|
CONTEXT_MENU_SEPARATOR,
|
||||||
actionToggleGridMode,
|
actionToggleGridMode,
|
||||||
|
actionToggleShowGrid,
|
||||||
actionToggleObjectsSnapMode,
|
actionToggleObjectsSnapMode,
|
||||||
actionToggleZenMode,
|
actionToggleZenMode,
|
||||||
actionToggleViewMode,
|
actionToggleViewMode,
|
||||||
|
|
|
@ -91,6 +91,7 @@
|
||||||
"group": "Group selection",
|
"group": "Group selection",
|
||||||
"ungroup": "Ungroup selection",
|
"ungroup": "Ungroup selection",
|
||||||
"collaborators": "Collaborators",
|
"collaborators": "Collaborators",
|
||||||
|
"toggleShowGrid": "Toggle show grid",
|
||||||
"toggleGrid": "Toggle grid",
|
"toggleGrid": "Toggle grid",
|
||||||
"addToLibrary": "Add to library",
|
"addToLibrary": "Add to library",
|
||||||
"removeFromLibrary": "Remove from library",
|
"removeFromLibrary": "Remove from library",
|
||||||
|
|
|
@ -358,6 +358,7 @@ export interface AppState {
|
||||||
/** grid cell px size */
|
/** grid cell px size */
|
||||||
gridSize: number;
|
gridSize: number;
|
||||||
gridStep: number;
|
gridStep: number;
|
||||||
|
showGrid: boolean;
|
||||||
gridModeEnabled: boolean;
|
gridModeEnabled: boolean;
|
||||||
viewModeEnabled: boolean;
|
viewModeEnabled: boolean;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue