feat: Add prop UIOptions.canvasActions.saveAsImage to show/hide save image button (#3662)
* feat: Add prop UIOptions.canvasActions.saveAsImage which implies whether the save as image dialog should be shown * Add docs * fix specs
This commit is contained in:
parent
716c78e930
commit
360310de31
@ -401,7 +401,7 @@ const LayerUI = ({
|
|||||||
};
|
};
|
||||||
|
|
||||||
const renderImageExportDialog = () => {
|
const renderImageExportDialog = () => {
|
||||||
if (!UIOptions.canvasActions.export) {
|
if (!UIOptions.canvasActions.saveAsImage) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -135,6 +135,7 @@ export const DEFAULT_UI_OPTIONS: AppProps["UIOptions"] = {
|
|||||||
loadScene: true,
|
loadScene: true,
|
||||||
saveToActiveFile: true,
|
saveToActiveFile: true,
|
||||||
theme: true,
|
theme: true,
|
||||||
|
saveAsImage: true,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -17,6 +17,8 @@ Please add the latest change on the top under the correct section.
|
|||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
|
- Added prop `UIOptions.canvasActions.saveAsImage` to show/hide the **Save as image** button in the canvas actions. Defauls to `true` hence the **Save as Image** button is rendered [#3662](https://github.com/excalidraw/excalidraw/pull/3662).
|
||||||
|
|
||||||
- Export dialog can be customised with [`UiOptions.canvasActions.export`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#exportOpts) [#3658](https://github.com/excalidraw/excalidraw/pull/3658).
|
- Export dialog can be customised with [`UiOptions.canvasActions.export`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#exportOpts) [#3658](https://github.com/excalidraw/excalidraw/pull/3658).
|
||||||
|
|
||||||
Also, [`UIOptions`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#UIOptions) is now memoized to avoid unnecessary rerenders.
|
Also, [`UIOptions`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#UIOptions) is now memoized to avoid unnecessary rerenders.
|
||||||
|
@ -570,6 +570,7 @@ This prop can be used to customise UI of Excalidraw. Currently we support custom
|
|||||||
| `loadScene` | boolean | true | Implies whether to show `Load button` |
|
| `loadScene` | boolean | true | Implies whether to show `Load button` |
|
||||||
| `saveToActiveFile` | boolean | true | Implies whether to show `Save button` to save to current file |
|
| `saveToActiveFile` | boolean | true | Implies whether to show `Save button` to save to current file |
|
||||||
| `theme` | boolean | true | Implies whether to show `Theme toggle` |
|
| `theme` | boolean | true | Implies whether to show `Theme toggle` |
|
||||||
|
| `saveAsImage` | boolean | true | Implies whether to show `Save as image button` |
|
||||||
|
|
||||||
#### `exportOpts`
|
#### `exportOpts`
|
||||||
|
|
||||||
|
@ -167,6 +167,13 @@ describe("<Excalidraw/>", () => {
|
|||||||
);
|
);
|
||||||
|
|
||||||
expect(queryByTestId(container, "json-export-button")).toBeNull();
|
expect(queryByTestId(container, "json-export-button")).toBeNull();
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should hide 'Save as image' button when 'saveAsImage' is false", async () => {
|
||||||
|
const { container } = await render(
|
||||||
|
<Excalidraw UIOptions={{ canvasActions: { saveAsImage: false } }} />,
|
||||||
|
);
|
||||||
|
|
||||||
expect(queryByTestId(container, "image-export-button")).toBeNull();
|
expect(queryByTestId(container, "image-export-button")).toBeNull();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -230,6 +230,7 @@ type CanvasActions = {
|
|||||||
loadScene?: boolean;
|
loadScene?: boolean;
|
||||||
saveToActiveFile?: boolean;
|
saveToActiveFile?: boolean;
|
||||||
theme?: boolean;
|
theme?: boolean;
|
||||||
|
saveAsImage?: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type UIOptions = {
|
export type UIOptions = {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user