import { MenuEntry } from "@islands/KMenu/types.ts"; import { fetchStream, isValidUrl } from "@lib/helpers.ts"; export const createNewArticle: MenuEntry = { title: "Create new article", meta: "", icon: "IconSquareRoundedPlus", cb: (state) => { state.menus["input_link"] = { title: "Link:", entries: [], }; state.activeMenu.value = "input_link"; state.activeState.value = "input"; const unsub = state.commandInput.subscribe((value) => { if (isValidUrl(value)) { unsub(); state.activeState.value = "loading"; fetchStream("/api/articles/create?url=" + value, (chunk) => { console.log({ chunk: chunk.split("\n") }); if (chunk.startsWith("id:")) { state.loadingText.value = "Finished"; setTimeout(() => { window.location.href = "/articles/" + chunk.replace("id:", "").trim(); }, 500); } else { state.loadingText.value = chunk; } }); } }); }, visible: () => true, };