Tyler Hallada
76cc87631f
Frontend is built with Bun. It uses Stimulus to progressively enhance the server-built HTML. Currently, it only replaces UTC timestamps from the server with the time in the browser's timezone.
25 lines
588 B
TypeScript
25 lines
588 B
TypeScript
import { Controller } from "@hotwired/stimulus";
|
|
|
|
// Replaces all UTC timestamps with time formated for the local timezone
|
|
export default class extends Controller {
|
|
connect() {
|
|
this.renderLocalTime();
|
|
}
|
|
|
|
renderLocalTime() {
|
|
this.element.textContent = this.localTimeString;
|
|
}
|
|
|
|
get localTimeString(): string {
|
|
if (this.utcTime) {
|
|
return this.utcTime.toLocaleDateString();
|
|
}
|
|
return "Unknown datetime"
|
|
}
|
|
|
|
get utcTime(): Date | null {
|
|
const utcString = this.element.getAttribute("datetime");
|
|
return utcString ? new Date(utcString) : null;
|
|
}
|
|
}
|