mirror of
https://github.com/mickael-kerjean/filestash.git
synced 2025-11-01 10:56:31 +08:00
43 lines
1.3 KiB
JavaScript
43 lines
1.3 KiB
JavaScript
import React, { useRef, useEffect } from "react";
|
|
import { currentShare, notify } from "../../helpers/";
|
|
import { t } from "../../locales/";
|
|
import "./appframe.scss";
|
|
|
|
export function AppFrame({ args, data }) {
|
|
useEffect(() => {
|
|
const messageHandler = (event) => {
|
|
console.log(event)
|
|
if (event.origin !== location.origin) return;
|
|
switch(event.data.type) {
|
|
case "notify::info":
|
|
notify.send(t(event.data.message), "info");
|
|
break;
|
|
case "notify::error":
|
|
notify.send(t(event.data.message), "error");
|
|
break
|
|
}
|
|
};
|
|
window.addEventListener("message", messageHandler);
|
|
return () => window.removeEventListener("message", messageHandler);
|
|
}, []);
|
|
|
|
let error = null;
|
|
if (!args) {
|
|
error = "Missing configuration. Contact your administrator";
|
|
} else if (!args.endpoint) {
|
|
error = "Missing endpoint configuration. Contact your administrator";
|
|
}
|
|
return (
|
|
<div className="component_appframe">
|
|
{
|
|
error === null ? (
|
|
<iframe src={args.endpoint + "?path=" + data + "&share=" + currentShare()} />
|
|
) : (
|
|
<div className="error">{error}</div>
|
|
)
|
|
}
|
|
|
|
</div>
|
|
);
|
|
}
|