<!DOCTYPE html>
<html lang="en-US">
	<head>
		<meta charset="utf-8" />
		<title>openOutpaint embed</title>
	</head>
	<body>
		<iframe
			id="openoutpaint"
			style="width: 100%; height: 800px"
			src="../index.html?v=90a7170"
			src="../index.html?v=90a7170"
			frameborder="0"></iframe>
		<button id="add-res">Add Resource</button>
		<script>
			document.addEventListener("DOMContentLoaded", async () => {
				const frame = document.getElementById("openoutpaint");

				const key = (await (await fetch("../key.json")).json()).key;

				console.info("[embed] Add message listener");
				window.addEventListener("message", ({data, origin, source}) => {
					if (source === frame.contentWindow) {
						console.debug(data);
						switch (data.type) {
							case "openoutpaint/ack":
								if (data.message.type === "openoutpaint/init") {
									console.info("[embed] Received init ack");
									clearTimeout(initLoop);
									initLoop = null;
								}
								break;
						}
					}
				});

				let initLoop = null;
				const sendInit = () => {
					console.info("[embed] Sending init message");
					frame.contentWindow.postMessage({
						type: "openoutpaint/init",
						key,
					});
					initLoop = setTimeout(sendInit, 1000);
				};

				sendInit();

				const canvas = document.createElement("canvas");

				const image = document.createElement("img");
				image.crossOrigin = "";
				image.src = "https://www.w3schools.com/css/paris.jpg";
				image.onload = () => {
					canvas.width = image.width;
					canvas.height = image.height;
					canvas.getContext("2d").drawImage(image, 0, 0);
				};

				document.body.appendChild(image);

				document.getElementById("add-res").addEventListener("click", () => {
					frame.contentWindow.postMessage({
						key,
						type: "openoutpaint/add-resource",
						image: {
							dataURL: canvas.toDataURL(),
							resourceName: "Embed Resource",
						},
					});
				});
			});
		</script>
	</body>
</html>