Make the wiki app use the global id picker.
This commit is contained in:
		| @@ -4,6 +4,9 @@ import * as utils from './utils.js'; | ||||
| let g_hash; | ||||
| let g_collection_notifies = {}; | ||||
|  | ||||
| tfrpc.register(async function getActiveIdentity() { | ||||
| 	return ssb.getActiveIdentity(); | ||||
| }); | ||||
| tfrpc.register(async function getOwnerIdentities() { | ||||
| 	return ssb.getOwnerIdentities(); | ||||
| }); | ||||
| @@ -54,6 +57,9 @@ core.register('message', async function message_handler(message) { | ||||
| 		await tfrpc.rpc.hash_changed(message.hash); | ||||
| 	} | ||||
| }); | ||||
| core.register('setActiveIdentity', async function setActiveIdentityHandler(id) { | ||||
| 	await tfrpc.rpc.setActiveIdentity(id); | ||||
| }); | ||||
|  | ||||
| tfrpc.register(function set_hash(hash) { | ||||
| 	if (g_hash != hash) { | ||||
|   | ||||
| @@ -10,7 +10,6 @@ | ||||
| 			window.litDisableBundleWarning = true; | ||||
| 		</script> | ||||
| 		<script src="tf-collection.js" type="module"></script> | ||||
| 		<script src="tf-id-picker.js" type="module"></script> | ||||
| 		<script src="tf-wiki-doc.js" type="module"></script> | ||||
| 		<script src="tf-wiki-app.js" type="module"></script> | ||||
| 	</body> | ||||
|   | ||||
| @@ -1,44 +0,0 @@ | ||||
| import {LitElement, html} from './lit-all.min.js'; | ||||
| import * as tfrpc from '/static/tfrpc.js'; | ||||
|  | ||||
| /* | ||||
|  ** Provide a list of IDs, and this lets the user pick one. | ||||
|  */ | ||||
| class TfIdentityPickerElement extends LitElement { | ||||
| 	static get properties() { | ||||
| 		return { | ||||
| 			ids: {type: Array}, | ||||
| 			selected: {type: String}, | ||||
| 		}; | ||||
| 	} | ||||
|  | ||||
| 	constructor() { | ||||
| 		super(); | ||||
| 		this.ids = []; | ||||
| 	} | ||||
|  | ||||
| 	changed(event) { | ||||
| 		this.selected = event.srcElement.value; | ||||
| 		this.dispatchEvent( | ||||
| 			new Event('change', { | ||||
| 				srcElement: this, | ||||
| 			}) | ||||
| 		); | ||||
| 	} | ||||
|  | ||||
| 	render() { | ||||
| 		return html` | ||||
| 			<link rel="stylesheet" href="tildefriends.css" /> | ||||
| 			<select @change=${this.changed} style="max-width: 100%"> | ||||
| 				${(this.ids ?? []).map( | ||||
| 					(id) => | ||||
| 						html`<option ?selected=${id == this.selected} value=${id}> | ||||
| 							${id} | ||||
| 						</option>` | ||||
| 				)} | ||||
| 			</select> | ||||
| 		`; | ||||
| 	} | ||||
| } | ||||
|  | ||||
| customElements.define('tf-id-picker', TfIdentityPickerElement); | ||||
| @@ -31,13 +31,16 @@ class TfCollectionsAppElement extends LitElement { | ||||
| 		tfrpc.register(function hash_changed(hash) { | ||||
| 			self.notify_hash_changed(hash); | ||||
| 		}); | ||||
| 		tfrpc.register(function setActiveIdentity(id) { | ||||
| 			self.whoami = id; | ||||
| 		}); | ||||
| 		tfrpc.rpc.get_hash().then((hash) => self.notify_hash_changed(hash)); | ||||
| 	} | ||||
|  | ||||
| 	async load() { | ||||
| 		this.ids = await tfrpc.rpc.getIdentities(); | ||||
| 		this.owner_ids = await tfrpc.rpc.getOwnerIdentities(); | ||||
| 		this.whoami = await tfrpc.rpc.localStorageGet('collections_whoami'); | ||||
| 		this.whoami = await tfrpc.rpc.getActiveIdentity(); | ||||
| 		let ids = [...new Set([...this.owner_ids, this.whoami])].sort(); | ||||
| 		this.following = Object.keys(await tfrpc.rpc.following(ids, 1)).sort(); | ||||
|  | ||||
| @@ -273,9 +276,6 @@ class TfCollectionsAppElement extends LitElement { | ||||
| 					margin-right: 16px; | ||||
| 				} | ||||
| 			</style> | ||||
| 			<div> | ||||
| 				<tf-id-picker .ids=${this.ids} selected=${this.whoami} @change=${this.on_whoami_changed} ?hidden=${!this.ids?.length}></tf-id-picker> | ||||
| 			</div> | ||||
| 			<div> | ||||
| 				${keyed( | ||||
| 					this.whoami, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user