import { createElement } from "../../lib/skeleton/index.js"; import rxjs, { applyMutation, effect } from "../../lib/rx.js"; import { qs } from "../../lib/dom.js"; import { toggle as toggleLoader } from "../../components/loader.js"; import { getState$, handleError } from "./state.js"; import { ls } from "./model_files.js"; export default function(render) { const $page = createElement(`
`); render($page); const $thing = createElement(`
directory Videos 06/06/2020
edit delete share
`); // feature1: files on the current path const path = location.pathname.replace(new RegExp("^/files"), "") effect(rxjs.of(path).pipe( toggleLoader($page, true), ls(), // TODO: ls_from_cache then ls_from_server toggleLoader($page, false), rxjs.tap(({ files }) => { // TODO const $fs = document.createDocumentFragment(); for(let i=0; i span").textContent = files[i]["name"]; if (files[i]["type"] === "file") $node.querySelector("a").setAttribute("href", "/view" + path + files[i]["name"]); else $node.querySelector("a").setAttribute("href", "/files" + path + files[i]["name"] + "/"); $fs.appendChild($node); } $page.appendChild($fs); }), handleError(), )); // feature2: fs in "search" mode // TODO }