{
+ ifCtrlCmdPressed(e, props.src);
+ }}
+ target="_blank"
+ style={Object.assign(style)}
+ >
{props.thumbnailPublicId != "" && (
diff --git a/app/src/core/design/utils/RenderNode.js b/app/src/core/design/utils/RenderNode.js
index e773dbb..85794c4 100644
--- a/app/src/core/design/utils/RenderNode.js
+++ b/app/src/core/design/utils/RenderNode.js
@@ -11,6 +11,7 @@ import ArrowDownwardIcon from "@material-ui/icons/ArrowDownward";
import AddIcon from "@material-ui/icons/Add";
import { Toolbox } from "./Toolbox";
import ZoomOutMapIcon from "@material-ui/icons/ZoomOutMap";
+import LaunchIcon from "@material-ui/icons/Launch";
import { renderNodeUtils } from "./renderNodeUtils";
import FilterNoneIcon from "@material-ui/icons/FilterNone";
@@ -179,6 +180,11 @@ export const RenderNode = ({ render }) => {
window.onkeyup = function(e) {
keysDown[e.key] = false;
};
+
+ function onClickOpenUrl(path) {
+ if (path != "#") window.open(path, "_blank");
+ }
+
const border = ({ top, bottom, right, left, height, width, name }) => {
const borderLabel = `border${titleCase(name)}`;
return (
@@ -221,7 +227,12 @@ export const RenderNode = ({ render }) => {
{
}}
>
<>
+ {(src.data.name === "Image" ||
+ src.data.name === "Button") && (
+
+
+ onClickOpenUrl(src.data.props.props.path)
+ }
+ >
+
+
+
+ )}
+ {src.data.name === "Video" && (
+
+
+ onClickOpenUrl(src.data.props.props.src)
+ }
+ >
+
+
+
+ )}
{moveable && (
<>
diff --git a/app/src/core/design/utils/detectCtrlCmd.js b/app/src/core/design/utils/detectCtrlCmd.js
new file mode 100644
index 0000000..9b73c82
--- /dev/null
+++ b/app/src/core/design/utils/detectCtrlCmd.js
@@ -0,0 +1,15 @@
+function ifCtrlCmdPressed(e, path) {
+ var mac = navigator.userAgent.indexOf("Mac OS X");
+
+ if (mac == -1) {
+ if (e.ctrlKey && path != "#") {
+ window.open(path, "_blank");
+ }
+ } else {
+ if (e.metaKey && path != "#") {
+ window.open(path, "_blank");
+ }
+ }
+}
+
+export default ifCtrlCmdPressed;