diff --git a/app/helpers/time_helper.rb b/app/helpers/time_helper.rb index c3fd4f066..50295789b 100644 --- a/app/helpers/time_helper.rb +++ b/app/helpers/time_helper.rb @@ -1,5 +1,5 @@ module TimeHelper def local_datetime_tag(datetime, style: :time, **attributes) - tag.time **attributes, datetime: datetime.iso8601, data: { local_time_target: style } + tag.time **attributes, datetime: datetime.iso8601, data: { local_time_target: style, action: "turbo:morph-element->local-time#refreshTarget" } end end diff --git a/app/javascript/controllers/local_time_controller.js b/app/javascript/controllers/local_time_controller.js index e539d9eb5..7e38772c9 100644 --- a/app/javascript/controllers/local_time_controller.js +++ b/app/javascript/controllers/local_time_controller.js @@ -37,6 +37,12 @@ export default class extends Controller { }) } + refreshTarget(event) { + const target = event.target; + const targetName = target.dataset.localTimeTarget + this.#formatTime(this[`${targetName}Formatter`], target) + } + timeTargetConnected(target) { this.#formatTime(this.timeFormatter, target) } diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index f7cdcd0af..ba86f92e4 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -25,7 +25,7 @@ -
+