mirror of
https://github.com/basecamp/once-campfire.git
synced 2026-02-21 20:20:34 +09:00
30 lines
902 B
JavaScript
30 lines
902 B
JavaScript
import { Controller } from "@hotwired/stimulus"
|
|
|
|
export default class extends Controller {
|
|
static targets = [ "time", "date", "datetime" ]
|
|
|
|
initialize() {
|
|
this.timeFormatter = new Intl.DateTimeFormat(undefined, { timeStyle: "short" })
|
|
this.dateFormatter = new Intl.DateTimeFormat(undefined, { dateStyle: "long" })
|
|
this.dateTimeFormatter = new Intl.DateTimeFormat(undefined, { timeStyle: "short", dateStyle: "short" })
|
|
}
|
|
|
|
timeTargetConnected(target) {
|
|
this.#formatTime(this.timeFormatter, target)
|
|
}
|
|
|
|
dateTargetConnected(target) {
|
|
this.#formatTime(this.dateFormatter, target)
|
|
}
|
|
|
|
datetimeTargetConnected(target) {
|
|
this.#formatTime(this.dateTimeFormatter, target)
|
|
}
|
|
|
|
#formatTime(formatter, target) {
|
|
const dt = new Date(target.getAttribute("datetime"))
|
|
target.textContent = formatter.format(dt)
|
|
target.title = this.dateTimeFormatter.format(dt)
|
|
}
|
|
}
|