Run prettier.
This commit is contained in:
		| @@ -47,7 +47,7 @@ tfrpc.register(async function get_blob(id) { | ||||
| }); | ||||
|  | ||||
| let g_new_message_resolve; | ||||
| let g_new_message_promise = new Promise(function(resolve, reject) { | ||||
| let g_new_message_promise = new Promise(function (resolve, reject) { | ||||
| 	g_new_message_resolve = resolve; | ||||
| }); | ||||
|  | ||||
| @@ -55,9 +55,9 @@ function new_message() { | ||||
| 	return g_new_message_promise; | ||||
| } | ||||
|  | ||||
| ssb.addEventListener('message', function(id) { | ||||
| ssb.addEventListener('message', function (id) { | ||||
| 	let resolve = g_new_message_resolve; | ||||
| 	g_new_message_promise = new Promise(function(resolve, reject) { | ||||
| 	g_new_message_promise = new Promise(function (resolve, reject) { | ||||
| 		g_new_message_resolve = resolve; | ||||
| 	}); | ||||
| 	if (resolve) { | ||||
| @@ -104,8 +104,7 @@ async function process_message(whoami, collection, message, kind, parent) { | ||||
| 		if (!x) { | ||||
| 			return; | ||||
| 		} | ||||
| 		if (content.type !== kind || | ||||
| 			(parent && content.parent !== parent)) { | ||||
| 		if (content.type !== kind || (parent && content.parent !== parent)) { | ||||
| 			return; | ||||
| 		} | ||||
| 	} | ||||
| @@ -113,7 +112,10 @@ async function process_message(whoami, collection, message, kind, parent) { | ||||
| 		if (content?.tombstone) { | ||||
| 			delete collection[content.key]; | ||||
| 		} else { | ||||
| 			collection[content.key] = Object.assign(collection[content.key] || {}, content); | ||||
| 			collection[content.key] = Object.assign( | ||||
| 				collection[content.key] || {}, | ||||
| 				content | ||||
| 			); | ||||
| 		} | ||||
| 	} else { | ||||
| 		collection[message.id] = Object.assign(content, {id: message.id}); | ||||
| @@ -125,20 +127,29 @@ tfrpc.register(async function collection(ids, kind, parent, max_rowid, data) { | ||||
| 	let whoami = await ssb.getIdentities(); | ||||
| 	data = data ?? {}; | ||||
| 	let rowid = 0; | ||||
| 	await ssb.sqlAsync('SELECT MAX(rowid) AS rowid FROM messages', [], function(row) { | ||||
| 		rowid = row.rowid; | ||||
| 	}); | ||||
| 	await ssb.sqlAsync( | ||||
| 		'SELECT MAX(rowid) AS rowid FROM messages', | ||||
| 		[], | ||||
| 		function (row) { | ||||
| 			rowid = row.rowid; | ||||
| 		} | ||||
| 	); | ||||
| 	while (true) { | ||||
| 		if (rowid == max_rowid) { | ||||
| 			await new_message(); | ||||
| 			await ssb.sqlAsync('SELECT MAX(rowid) AS rowid FROM messages', [], function(row) { | ||||
| 				rowid = row.rowid; | ||||
| 			}); | ||||
| 			await ssb.sqlAsync( | ||||
| 				'SELECT MAX(rowid) AS rowid FROM messages', | ||||
| 				[], | ||||
| 				function (row) { | ||||
| 					rowid = row.rowid; | ||||
| 				} | ||||
| 			); | ||||
| 		} | ||||
|  | ||||
| 		let modified = false; | ||||
| 		let rows = []; | ||||
| 		await ssb.sqlAsync(` | ||||
| 		await ssb.sqlAsync( | ||||
| 			` | ||||
| 			SELECT messages.id, author, content, timestamp | ||||
| 			FROM messages | ||||
| 			JOIN json_each(?1) AS id ON messages.author = id.value | ||||
| @@ -150,9 +161,10 @@ tfrpc.register(async function collection(ids, kind, parent, max_rowid, data) { | ||||
| 				content LIKE '"%') | ||||
| 			`, | ||||
| 			[JSON.stringify(ids), max_rowid ?? -1, rowid, kind, parent], | ||||
| 			function(row) { | ||||
| 			function (row) { | ||||
| 				rows.push(row); | ||||
| 			}); | ||||
| 			} | ||||
| 		); | ||||
| 		max_rowid = rowid; | ||||
| 		for (let row of rows) { | ||||
| 			if (await process_message(whoami, data, row, kind, parent)) { | ||||
| @@ -170,4 +182,4 @@ async function main() { | ||||
| 	await app.setDocument(utf8Decode(await getFile('index.html'))); | ||||
| } | ||||
|  | ||||
| main(); | ||||
| main(); | ||||
|   | ||||
| @@ -1,14 +1,16 @@ | ||||
| <!DOCTYPE html> | ||||
| <!doctype html> | ||||
| <html> | ||||
| 	<head> | ||||
| 		<base target="_top"> | ||||
| 		<base target="_top" /> | ||||
| 	</head> | ||||
| 	<body style="color: #fff"> | ||||
| 		<tf-journal-app></tf-journal-app> | ||||
| 		<script src="commonmark.min.js"></script> | ||||
| 		<script>window.litDisableBundleWarning = true;</script> | ||||
| 		<script> | ||||
| 			window.litDisableBundleWarning = true; | ||||
| 		</script> | ||||
| 		<script src="tf-journal-app.js" type="module"></script> | ||||
| 		<script src="tf-journal-entry.js" type="module"></script> | ||||
| 		<script src="tf-id-picker.js" type="module"></script> | ||||
| 	</body> | ||||
| </html> | ||||
| </html> | ||||
|   | ||||
| @@ -2,8 +2,8 @@ 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. | ||||
| */ | ||||
|  ** Provide a list of IDs, and this lets the user pick one. | ||||
|  */ | ||||
| class TfIdentityPickerElement extends LitElement { | ||||
| 	static get properties() { | ||||
| 		return { | ||||
| @@ -19,18 +19,25 @@ class TfIdentityPickerElement extends LitElement { | ||||
|  | ||||
| 	changed(event) { | ||||
| 		this.selected = event.srcElement.value; | ||||
| 		this.dispatchEvent(new Event('change', { | ||||
| 			srcElement: this, | ||||
| 		})); | ||||
| 		this.dispatchEvent( | ||||
| 			new Event('change', { | ||||
| 				srcElement: this, | ||||
| 			}) | ||||
| 		); | ||||
| 	} | ||||
|  | ||||
| 	render() { | ||||
| 		return html` | ||||
| 			<select @change=${this.changed} style="max-width: 100%"> | ||||
| 				${(this.ids ?? []).map(id => html`<option ?selected=${id == this.selected} value=${id}>${id}</option>`)} | ||||
| 				${(this.ids ?? []).map( | ||||
| 					(id) => | ||||
| 						html`<option ?selected=${id == this.selected} value=${id}> | ||||
| 							${id} | ||||
| 						</option>` | ||||
| 				)} | ||||
| 			</select> | ||||
| 		`; | ||||
| 	} | ||||
| } | ||||
|  | ||||
| customElements.define('tf-id-picker', TfIdentityPickerElement); | ||||
| customElements.define('tf-id-picker', TfIdentityPickerElement); | ||||
|   | ||||
| @@ -28,9 +28,14 @@ class TfJournalAppElement extends LitElement { | ||||
| 	async read_journals() { | ||||
| 		let max_rowid; | ||||
| 		let journals; | ||||
| 		while (true) | ||||
| 		{ | ||||
| 			[max_rowid, journals] = await tfrpc.rpc.collection([this.whoami], 'journal-entry', undefined, max_rowid, journals); | ||||
| 		while (true) { | ||||
| 			[max_rowid, journals] = await tfrpc.rpc.collection( | ||||
| 				[this.whoami], | ||||
| 				'journal-entry', | ||||
| 				undefined, | ||||
| 				max_rowid, | ||||
| 				journals | ||||
| 			); | ||||
| 			this.journals = Object.assign({}, journals); | ||||
| 			console.log('JOURNALS', this.journals); | ||||
| 		} | ||||
| @@ -52,7 +57,11 @@ class TfJournalAppElement extends LitElement { | ||||
| 		}; | ||||
| 		message.recps = [this.whoami]; | ||||
| 		print(message); | ||||
| 		message = await tfrpc.rpc.encrypt(this.whoami, message.recps, JSON.stringify(message)); | ||||
| 		message = await tfrpc.rpc.encrypt( | ||||
| 			this.whoami, | ||||
| 			message.recps, | ||||
| 			JSON.stringify(message) | ||||
| 		); | ||||
| 		print(message); | ||||
| 		await tfrpc.rpc.appendMessage(this.whoami, message); | ||||
| 	} | ||||
| @@ -62,14 +71,19 @@ class TfJournalAppElement extends LitElement { | ||||
| 		let self = this; | ||||
| 		return html` | ||||
| 			<div> | ||||
| 				<tf-id-picker .ids=${this.ids} selected=${this.whoami} @change=${this.on_whoami_changed}></tf-id-picker> | ||||
| 				<tf-id-picker | ||||
| 					.ids=${this.ids} | ||||
| 					selected=${this.whoami} | ||||
| 					@change=${this.on_whoami_changed} | ||||
| 				></tf-id-picker> | ||||
| 			</div> | ||||
| 			<tf-journal-entry | ||||
| 				whoami=${this.whoami} | ||||
| 				.journals=${this.journals} | ||||
| 				@publish=${this.on_journal_publish}></tf-journal-entry> | ||||
| 				@publish=${this.on_journal_publish} | ||||
| 			></tf-journal-entry> | ||||
| 		`; | ||||
| 	} | ||||
| } | ||||
|  | ||||
| customElements.define('tf-journal-app', TfJournalAppElement); | ||||
| customElements.define('tf-journal-app', TfJournalAppElement); | ||||
|   | ||||
| @@ -30,13 +30,15 @@ class TfJournalEntryElement extends LitElement { | ||||
|  | ||||
| 	async on_publish() { | ||||
| 		console.log('publish', this.text); | ||||
| 		this.dispatchEvent(new CustomEvent('publish', { | ||||
| 			bubbles: true, | ||||
| 			detail: { | ||||
| 				key: this.shadowRoot.getElementById('date_picker').value, | ||||
| 				text: this.text, | ||||
| 			}, | ||||
| 		})); | ||||
| 		this.dispatchEvent( | ||||
| 			new CustomEvent('publish', { | ||||
| 				bubbles: true, | ||||
| 				detail: { | ||||
| 					key: this.shadowRoot.getElementById('date_picker').value, | ||||
| 					text: this.text, | ||||
| 				}, | ||||
| 			}) | ||||
| 		); | ||||
| 	} | ||||
|  | ||||
| 	back_dates(count) { | ||||
| @@ -63,22 +65,33 @@ class TfJournalEntryElement extends LitElement { | ||||
| 		console.log('RENDER ENTRY', this.key, this.journals?.[this.key]); | ||||
| 		return html` | ||||
| 			<select id="date_picker" @change=${this.on_date_change}> | ||||
| 				${this.back_dates(10).map(x => html` | ||||
| 					<option value=${x}>${x}</option> | ||||
| 				`)} | ||||
| 				${this.back_dates(10).map( | ||||
| 					(x) => html` <option value=${x}>${x}</option> ` | ||||
| 				)} | ||||
| 			</select> | ||||
| 			<div style="display: inline-flex; flex-direction: row"> | ||||
| 				<button ?disabled=${this.text == this.journals?.[this.key]?.text} @click=${this.on_publish}>Publish</button> | ||||
| 				<button | ||||
| 					?disabled=${this.text == this.journals?.[this.key]?.text} | ||||
| 					@click=${this.on_publish} | ||||
| 				> | ||||
| 					Publish | ||||
| 				</button> | ||||
| 				<button @click=${this.on_discard}>Discard</button> | ||||
| 			</div> | ||||
| 			<div style="display: flex; flex-direction: row"> | ||||
| 				<textarea | ||||
| 					style="flex: 1 1; min-height: 10em" | ||||
| 					@input=${this.on_edit} .value=${this.text ?? this.journals?.[this.key]?.text ?? ''}></textarea> | ||||
| 				<div style="flex: 1 1">${unsafeHTML(this.markdown(this.text ?? this.journals?.[this.key]?.text))}</div> | ||||
| 					@input=${this.on_edit} | ||||
| 					.value=${this.text ?? this.journals?.[this.key]?.text ?? ''} | ||||
| 				></textarea> | ||||
| 				<div style="flex: 1 1"> | ||||
| 					${unsafeHTML( | ||||
| 						this.markdown(this.text ?? this.journals?.[this.key]?.text) | ||||
| 					)} | ||||
| 				</div> | ||||
| 			</div> | ||||
| 		`; | ||||
| 	} | ||||
| } | ||||
|  | ||||
| customElements.define('tf-journal-entry', TfJournalEntryElement); | ||||
| customElements.define('tf-journal-entry', TfJournalEntryElement); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user