feat: Add the ability to clear library (#2997)

* Add the ability to clear libraries

* Update 'libraries' to 'library'

* Update en.json
This commit is contained in:
Arun 2021-02-09 15:49:04 +05:30 committed by GitHub
parent 073f4032f3
commit 5ab0ce5a33
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 2 deletions

View File

@ -27,7 +27,7 @@ import { ExportCB, ExportDialog } from "./ExportDialog";
import { FixedSideContainer } from "./FixedSideContainer"; import { FixedSideContainer } from "./FixedSideContainer";
import { GitHubCorner } from "./GitHubCorner"; import { GitHubCorner } from "./GitHubCorner";
import { HintViewer } from "./HintViewer"; import { HintViewer } from "./HintViewer";
import { exportFile, load, shield } from "./icons"; import { exportFile, load, shield, trash } from "./icons";
import { Island } from "./Island"; import { Island } from "./Island";
import "./LayerUI.scss"; import "./LayerUI.scss";
import { LibraryUnit } from "./LibraryUnit"; import { LibraryUnit } from "./LibraryUnit";
@ -100,6 +100,7 @@ const LibraryMenuItems = ({
onInsertShape, onInsertShape,
pendingElements, pendingElements,
setAppState, setAppState,
setLibraryItems,
}: { }: {
library: LibraryItems; library: LibraryItems;
pendingElements: LibraryItem; pendingElements: LibraryItem;
@ -107,6 +108,7 @@ const LibraryMenuItems = ({
onInsertShape: (elements: LibraryItem) => void; onInsertShape: (elements: LibraryItem) => void;
onAddToLibrary: (elements: LibraryItem) => void; onAddToLibrary: (elements: LibraryItem) => void;
setAppState: React.Component<any, AppState>["setState"]; setAppState: React.Component<any, AppState>["setState"];
setLibraryItems: (library: LibraryItems) => void;
}) => { }) => {
const isMobile = useIsMobile(); const isMobile = useIsMobile();
const numCells = library.length + (pendingElements.length > 0 ? 1 : 0); const numCells = library.length + (pendingElements.length > 0 ? 1 : 0);
@ -150,6 +152,19 @@ const LibraryMenuItems = ({
}); });
}} }}
/> />
<ToolButton
key="reset"
type="button"
title={t("buttons.resetLibrary")}
aria-label={t("buttons.resetLibrary")}
icon={trash}
onClick={() => {
if (window.confirm(t("alerts.resetLibrary"))) {
Library.resetLibrary();
setLibraryItems([]);
}
}}
/>
<a href="https://libraries.excalidraw.com" target="_excalidraw_libraries"> <a href="https://libraries.excalidraw.com" target="_excalidraw_libraries">
{t("labels.libraries")} {t("labels.libraries")}
@ -281,6 +296,7 @@ const LibraryMenu = ({
onInsertShape={onInsertShape} onInsertShape={onInsertShape}
pendingElements={pendingElements} pendingElements={pendingElements}
setAppState={setAppState} setAppState={setAppState}
setLibraryItems={setLibraryItems}
/> />
)} )}
</Island> </Island>

View File

@ -117,6 +117,7 @@
"edit": "Edit", "edit": "Edit",
"undo": "Undo", "undo": "Undo",
"redo": "Redo", "redo": "Redo",
"resetLibrary": "Reset library",
"createNewRoom": "Create new room", "createNewRoom": "Create new room",
"fullScreen": "Full screen", "fullScreen": "Full screen",
"darkMode": "Dark mode", "darkMode": "Dark mode",
@ -139,7 +140,8 @@
"errorLoadingLibrary": "There was an error loading the third party library.", "errorLoadingLibrary": "There was an error loading the third party library.",
"confirmAddLibrary": "This will add {{numShapes}} shape(s) to your library. Are you sure?", "confirmAddLibrary": "This will add {{numShapes}} shape(s) to your library. Are you sure?",
"imageDoesNotContainScene": "Importing images isn't supported at the moment.\n\nDid you want to import a scene? This image does not seem to contain any scene data. Have you enabled this during export?", "imageDoesNotContainScene": "Importing images isn't supported at the moment.\n\nDid you want to import a scene? This image does not seem to contain any scene data. Have you enabled this during export?",
"cannotRestoreFromImage": "Scene couldn't be restored from this image file" "cannotRestoreFromImage": "Scene couldn't be restored from this image file",
"resetLibrary": "This will clear your library. Are you sure?"
}, },
"toolBar": { "toolBar": {
"selection": "Selection", "selection": "Selection",