personal-website/res/dev-fs/apps/BlogViewer/BlogViewer.js

52 lines
1.6 KiB
JavaScript
Raw Normal View History

2023-04-14 15:53:23 +00:00
class BlogViewer{
2023-05-18 01:57:44 +00:00
static appID = "BlogViewer"
2023-04-14 15:53:23 +00:00
/**
2023-05-18 01:57:44 +00:00
* @param {string[]} args
* @param {Object} runContext
2023-04-14 15:53:23 +00:00
*/
2023-05-18 01:57:44 +00:00
async NewWindow(args, runContext){
const params = new URLSearchParams({
2023-04-29 13:58:39 +00:00
path: args[0],
2023-05-18 01:57:44 +00:00
})
runContext.runPath = args[0]
const response = await fetch(`app/${BlogViewer.appID}/render?` + params, {
method: "POST",
body: JSON.stringify(runContext)
})
2023-05-10 23:26:57 +00:00
if (response.status != 200){
WebDesktopEnvironment.Alert("Error render TODO") //TODO
return
}
const html = await response.text()
2023-05-18 01:57:44 +00:00
let newWindow = WebDesktopEnvironment.CreateNewWindow(this.appId, 500, 350 )
2023-05-10 23:26:57 +00:00
newWindow.innerHTML = html
2023-05-18 01:57:44 +00:00
2023-05-10 23:26:57 +00:00
let scrollBar = new WdeScrollBar(newWindow.querySelector(".ScrollbarPlace"), newWindow.querySelector(".ScrollContent"))
newWindow.querySelector("#closeWindowButton").addEventListener('click', function (params) {
WebDesktopEnvironment.CloseWindow(newWindow)
2023-04-14 15:53:23 +00:00
})
}
/**
* @param {MouseEvent} event
* @param {string} path
*/
static Click(event, path){
let fileType = event.target.getAttribute("fileType")
switch (fileType) {
case "app":
//TODO get real id
WebDesktopEnvironment.Open("personal-properties", [])
break;
case "img":
WebDesktopEnvironment.Open("img-viewer", ["pizda"])
break;
default:
console.log("Unsupported file type")
break;
}
}
}