forked from cory/tildefriends
Cory McWilliams
01ba90fdba
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4589 ed5197a5-7fde-0310-b194-c3ffbd925b24
56 lines
1.6 KiB
JavaScript
56 lines
1.6 KiB
JavaScript
import {LitElement, html} from './lit-all.min.js';
|
|
import * as tfrpc from '/static/tfrpc.js';
|
|
|
|
class TfCollectionsAppElement extends LitElement {
|
|
static get properties() {
|
|
return {
|
|
ids: {type: Array},
|
|
whoami: {type: String},
|
|
wiki: {type: String},
|
|
wiki_doc: {type: Object},
|
|
};
|
|
}
|
|
|
|
constructor() {
|
|
super();
|
|
this.ids = [];
|
|
this.load();
|
|
}
|
|
|
|
async load() {
|
|
this.ids = await tfrpc.rpc.getIdentities();
|
|
this.whoami = await tfrpc.rpc.localStorageGet('collections_whoami');
|
|
}
|
|
|
|
async on_whoami_changed(event) {
|
|
let new_id = event.srcElement.selected;
|
|
await tfrpc.rpc.localStorageSet('collections_whoami', new_id);
|
|
this.whoami = new_id;
|
|
}
|
|
|
|
async on_wiki_publish(event) {
|
|
let blob_id = event.detail.id;
|
|
let message = {
|
|
type: 'wiki-doc',
|
|
key: this.wiki_doc.id,
|
|
parent: this.wiki_doc.parent,
|
|
blob: blob_id,
|
|
};
|
|
print(message);
|
|
await tfrpc.rpc.appendMessage(this.whoami, message);
|
|
return this.load();
|
|
}
|
|
|
|
render() {
|
|
let self = this;
|
|
return html`
|
|
<h1 style="color: #fff">Hello!</h1>
|
|
<tf-id-picker .ids=${this.ids} selected=${this.whoami} @change=${this.on_whoami_changed}></tf-id-picker>
|
|
<tf-collections whoami=${this.whoami} kind="wiki" @selected=${(event) => self.wiki = event.detail.id}></tf-collections>
|
|
${this.wiki ? html`<tf-collections whoami=${this.whoami} type="wiki-doc" parent=${this.wiki} @selected=${(event) => self.wiki_doc = event.detail.value}></tf-collections>` : undefined}
|
|
${this.wiki_doc ? html`<tf-wiki-doc whoami=${this.whoami} .value=${this.wiki_doc} @publish=${this.on_wiki_publish}></tf-wiki-doc>` : undefined}
|
|
`;
|
|
}
|
|
}
|
|
|
|
customElements.define('tf-collections-app', TfCollectionsAppElement); |