8 lines
2.9 KiB
JavaScript
8 lines
2.9 KiB
JavaScript
import{d as u}from"./index-4bca499f.js";const w="/FlowOS/assets/file-manager-0e3c2c9d.svg",h={config:{name:"Files",type:"process",icon:w,targetVer:"1.0.0-indev.0"},run:async i=>{const s=await i.loadLibrary("lib/WindowManager").then(e=>e.createWindow({title:"Files",icon:w,width:500,height:400},i)),n=i.fs,r=await i.loadLibrary("lib/MIMETypes");s.content.style.display="flex",s.content.style.flexDirection="column";let d="/home";async function c(e){d=e;const b=await n.readdir(e),y=e==="/"?'<span class="material-symbols-rounded">first_page</span>':'<span class="back material-symbols-rounded">chevron_left</span>';s.content.innerHTML=`
|
|
<div style="padding: 5px;display: flex;align-items: center;gap: 5px;">
|
|
${y}${e}
|
|
<div style="flex:1;"></div>
|
|
<i class='folder material-symbols-rounded' style="font-size: 17.5px;">create_new_folder</i><i class='file material-symbols-rounded' style="font-size: 17.5px;">note_add</i>
|
|
</div>
|
|
<div class="files" style="background: var(--base);flex: 1;border-radius: 10px;display: flex;flex-direction: column;"></div>
|
|
`,y!=='<span class="material-symbols-rounded">first_page</span>'&&(s.content.querySelector(".back").onclick=async()=>{await c(e.split("/").slice(0,-1).join("/"))}),s.content.querySelector(".file").onclick=async()=>{const t=prompt("Enter file name");t!=null&&await n.writeFile(`${e}/${t}`,"")},s.content.querySelector(".folder").onclick=async()=>{const t=prompt("Enter folder name");t!=null&&await n.mkdir(`${e}/${t}`)};for(const t of b){const l=e==="/"?"":"/",p=await n.stat(e+l+t),o=document.createElement("div");o.setAttribute("style","display: flex;gap: 5px;align-items:center;padding: 5px;border-bottom: 1px solid var(--text);display:flex;align-items:center;gap: 5px;");const g=()=>`<span class="material-symbols-rounded">${r[t.split(".")[1]]===void 0?"draft":r[t.split(".")[1]].icon}</span>`,x=p.isDirectory()?'<span class="material-symbols-rounded">folder</span>':g();o.innerHTML+=`${x} <span style="flex:1;">${t}</span><span class="material-symbols-rounded delete">delete_forever</span><span class="material-symbols-rounded rename">edit</span>`,o.querySelector(".rename").onclick=async()=>{const a=prompt("Rename");console.log(a),a!=null&&await n.rename(e+l+t,e+l+a)},o.querySelector(".delete").onclick=async()=>{p.isDirectory()?await n.rmdir(e+l+t):await n.unlink(e+l+t)};const m=async a=>{a.split(".").at(-1)==="lnk"?await n.readFile(a).then(async f=>{await m(u.Buffer.from(f).toString())}):a.split(".").at(-1)==="app"?await n.readFile(a).then(async f=>{await i.launch(u.Buffer.from(f).toString())}):await i.launch(r[a.split(".").at(-1)]===void 0?"apps/Editor":r[a.split(".")[1]].opensWith[0],{path:a})};o.ondblclick=async()=>{p.isDirectory()?await c(e+l+t):await m(e+l+t)},s.content.querySelector(".files")?.appendChild(o)}}await c(d),document.addEventListener("fs_update",()=>{c(d).catch(e=>console.error(e))})}};export{h as default};
|