diff --git a/components/app.js b/components/app.js index 2ab64d1..9105441 100644 --- a/components/app.js +++ b/components/app.js @@ -17,7 +17,7 @@ import ScrollManager from "./scroll-manager.js"; import Dialog from "./dialog.js"; import { html, Component, createRef } from "../lib/index.js"; import { strip as stripANSI } from "../lib/ansi.js"; -import { SERVER_BUFFER, BufferType, ReceiptType, ServerStatus, Unread, BufferEventsDisplayMode, State, getServerName, receiptFromMessage, isReceiptBefore, isMessageBeforeReceipt } from "../state.js"; +import { SERVER_BUFFER, BufferType, ReceiptType, ServerStatus, Unread, BufferEventsDisplayMode, State, getServerName, receiptFromMessage, isReceiptBefore, isMessageBeforeReceipt, SettingsContext } from "../state.js"; import commands from "../commands.js"; import { setup as setupKeybindings } from "../keybindings.js"; import * as store from "../store.js"; @@ -1910,7 +1910,7 @@ export default class App extends Component { commandOnly = true; } - return html` + let app = html`
+ ${app} + + `; } } diff --git a/components/buffer.js b/components/buffer.js index 391ec67..9adc98f 100644 --- a/components/buffer.js +++ b/components/buffer.js @@ -2,7 +2,7 @@ import { html, Component } from "../lib/index.js"; import linkify from "../lib/linkify.js"; import * as irc from "../lib/irc.js"; import { strip as stripANSI } from "../lib/ansi.js"; -import { BufferType, ServerStatus, BufferEventsDisplayMode, getNickURL, getChannelURL, getMessageURL, isMessageBeforeReceipt } from "../state.js"; +import { BufferType, ServerStatus, BufferEventsDisplayMode, getNickURL, getChannelURL, getMessageURL, isMessageBeforeReceipt, SettingsContext } from "../state.js"; import * as store from "../store.js"; import Membership from "./membership.js"; @@ -27,15 +27,22 @@ function Nick(props) { `; } -function Timestamp({ date, url }) { +function _Timestamp({ date, url, showSeconds }) { if (!date) { - return html`--:--:--`; + let timestamp = "--:--"; + if (showSeconds) { + timestamp += ":--"; + } + return html`${timestamp}`; } let hh = date.getHours().toString().padStart(2, "0"); let mm = date.getMinutes().toString().padStart(2, "0"); - let ss = date.getSeconds().toString().padStart(2, "0"); - let timestamp = `${hh}:${mm}:${ss}`; + let timestamp = `${hh}:${mm}`; + if (showSeconds) { + let ss = date.getSeconds().toString().padStart(2, "0"); + timestamp += ":" + ss; + } return html` + ${(settings) => html` + <${_Timestamp} ...${props} showSeconds=${settings.secondsInTimestamps}/> + `} + + `; +} + /** * Check whether a message can be folded. * diff --git a/components/settings-form.js b/components/settings-form.js index 322bd66..70fdf9a 100644 --- a/components/settings-form.js +++ b/components/settings-form.js @@ -6,6 +6,7 @@ export default class SettingsForm extends Component { constructor(props) { super(props); + this.state.secondsInTimestamps = props.settings.secondsInTimestamps; this.state.bufferEvents = props.settings.bufferEvents; this.handleChange = this.handleChange.bind(this); @@ -28,6 +29,16 @@ export default class SettingsForm extends Component { render() { return html`
+ +

+