${list.title}
${list.desc}
-
${this.curatedPageMap[list.id] ? this.curatedPageMap[list.id].map((p) => this.renderCPage(p)) : html``}
import { LitElement, html, css } from 'lit-element'; import { wrapCss } from './misc'; import { unsafeHTML } from 'lit-html/directives/unsafe-html'; import marked from 'marked'; import { getTS } from './pageutils'; // =========================================================================== class Story extends LitElement { constructor() { super(); this.collInfo = null; this.curatedPageMap = {}; this.currList = 0; this.active = false; this.lastST = 0; this.clickTime = 0; } static get properties() { return { collInfo: { type: Object }, active: { type: Boolean }, curatedPageMap: { type: Object }, currList: { type: Number }, } } updated(changedProperties) { if (changedProperties.has("collInfo")) { this.doLoadCurated(); } if (changedProperties.has("currList") && this.active) { this.sendChangeEvent({ currList: this.currList, }); } } async doLoadCurated() { this.curatedPageMap = {}; const pageMap = {}; for (const page of this.collInfo.pages) { pageMap[page.id] = page; } for (const curated of this.collInfo.curatedPages) { if (!this.curatedPageMap[curated.list]) { this.curatedPageMap[curated.list] = []; } const page = pageMap[curated.page]; if (!page) { console.log("No Page with id: " + page); continue; } const url = page.url; const ts = page.ts; const title = page.title || page.url; const desc = curated.desc; this.curatedPageMap[curated.list].push({url, ts, title, desc}); } this.scrollToList(); } static get styles() { return wrapCss(css` :host { justify-content: flex-start; align-items: center; } .columns { width: 100%; justify-self: stretch; margin-left: 0; } .column.main-content { margin: 12px 0px 0px 0px; padding: 0px; max-height: calc(100% - 0.75em); display: flex; flex-direction: column; height: min-content; padding-left: 0.75em; } .column.main-content.main-scroll { padding-right: 0.75em; word-break: break-all; } ul.menu-list a.is-active { background-color: #55be6f; } @media screen and (min-width: 768px) { .columns { max-height: 100%; height: 100%; margin-top: 0.75em; } .column.sidebar { max-height: 100%; overflow-y: auto; } } @media screen and (max-width: 767px) { .columns { position: relative; max-height: 100%; height: 100%; } .column.sidebar { max-height: 150px; overflow-y: auto; margin-top: 0.75em; } .column.main-content { position: relative; overflow-y: auto; border-top: 1px solid black; width: 100%; height: 100%; max-height: calc(100% - 150px - 0.75em); } .menu { font-size: 0.80rem; } } `); } render() { const currListNum = this.currList; return html`
${list.desc}