This guide will show you how to upgrade from the now deprecated
Primer::LocalTime component to the latest Primer::Beta::RelativeTime
component.
The most common use case of the LocalTime component can be migrated with only
a few minor changes.
For example, if the LocalTime was set up in this way:
<%= Primer::LocalTime(datetime: Time.now, initial_text: Time.now.iso8601) %>
It can be migrated by removing initial_text, setting an empty prefix, and
adding threshold: "PT0S".
<%= Primer::Beta::RelativeTime(datetime: Time.now, prefix: "", threshold: "PT0S") %>
The RelativeTime component defaults to the iso8601 format and does not need
to be specified directly.
The threshold value is an ISO-8601 "duration" that tells the RelativeTime
component to display the absolute date/time, instead of relative time
description. The example of PT0S says to switch to absolute time display
starting zero (0) seconds ago. In practice, this means it will always display
the absolute time. With the LocalTime component, PT0S was the default
threshold. The RelativeTime component defaults to P30D, however, and
it will need to be zeroed out to always display a datetime.
The following arguments are different between LocalTime and RelativeTime.
From Primer::LocalTime | To Primer::Beta::RelativeTime | Notes |
|---|---|---|
initial_text | n/a | No longer used. |
| n/a | tense | Which tense to use. One of :auto, :future, or :past. |
| n/a | prefix | What to prefix the relative ime display with. |
| n/a | threshold | The threshold, in ISO-8601 'durations' format, at which relative time displays become absolute. |
| n/a | precision | The precision elapsed time should display. One of nil, :day, :hour, :minute, :month, :second, or :year. |
| n/a | format | The format the display should take. One of :auto, :elapsed, or :micro. |
| n/a | lang | The language to use. |
| n/a | title | Provide a custom title to the element. |
The remaining arguments stayed the same.
Please see the following documentation for complete descriptions and examples.