sourcehypertextadminplantereditor.js

function addMedia(url) {
	return () =>
		($("#editor-contents").value += `[[${url.replace(/ /g, "%20")}]]`);
}

documentReady(() => {
	document.body.on("htmx:beforeSwap", evt => {
		if (evt.detail.xhr.status === 422) {
			evt.detail.shouldSwap = true;
			evt.detail.isError = false;
		}
	});

	$("#editor-publish").on("click", () => {
		$("#editor-retract").removeAttribute("hidden");
		$("#editor-view").removeAttribute("hidden");
		$("#editor-publish").setAttribute("hidden", true);
		$("#editor-preview").setAttribute("hidden", true);
	});
	$("#editor-retract").on("click", () => {
		$("#editor-publish").removeAttribute("hidden");
		$("#editor-preview").removeAttribute("hidden");
		$("#editor-retract").setAttribute("hidden", true);
		$("#editor-view").setAttribute("hidden", true);
	});

	$("#tab-write").on("click", () => {
		$(".writer").style.display = "grid";
		$(".sidebar").style.display = "none";
		$(".media-file-selector").style.display = "none";

		$(".tab.enabled").classList.remove("enabled");
		$("#tab-write").classList.add("enabled");
	});

	$("#tab-tag").on("click", () => {
		$(".writer").style.display = "none";
		$(".sidebar").style.display = "flex";
		$(".media-file-selector").style.display = "none";

		$(".tab.enabled").classList.remove("enabled");
		$("#tab-tag").classList.add("enabled");
	});

	$("#tab-media").on("click", () => {
		$(".writer").style.display = "none";
		$(".sidebar").style.display = "none";
		$(".media-file-selector").style.display = "grid";

		$(".tab.enabled").classList.remove("enabled");
		$("#tab-media").classList.add("enabled");
	});

	$(".new-file button").on("click", () => $("#input-file input").click());

	$("#editor-lang").on("change", () => {
		const newLang = $("#editor-lang :checked").lang;

		$(".writer").lang = newLang;
		$("#editor-thumbnail-alt").lang = newLang;
	});

	$("#editor-slug").on("keyup", () => {
		if (!$("#editor-translates").value) {
			$("#editor-translates").placeholder =
				$("#editor-slug").value || $("#editor-slug").placeholder;
		}
	});

	for (const button of $$(
		".media-file-selector figure:not(.new-file) button"
	)) {
		button.on("click", addMedia(button.dataset.url));
	}

	document.body.on("htmx:afterSwap", () => {
		const button = $(".media-file-selector figure:not(.new-file) button");
		button.on("click", addMedia(button.dataset.url));
	});
});