MCPcopy Create free account
hub / github.com/adobe/react-spectrum / formatRange

Function formatRange

packages/react-aria/src/calendar/utils.ts:145–178  ·  view source on GitHub ↗
(
  dateFormatter: DateFormatter,
  stringFormatter: LocalizedStringFormatter,
  start: CalendarDate,
  end: CalendarDate,
  timeZone: string
)

Source from the content-addressed store, hash-verified

143}
144
145function formatRange(
146 dateFormatter: DateFormatter,
147 stringFormatter: LocalizedStringFormatter,
148 start: CalendarDate,
149 end: CalendarDate,
150 timeZone: string
151) {
152 let parts = dateFormatter.formatRangeToParts(start.toDate(timeZone), end.toDate(timeZone));
153
154 // Find the separator between the start and end date. This is determined
155 // by finding the last shared literal before the end range.
156 let separatorIndex = -1;
157 for (let i = 0; i < parts.length; i++) {
158 let part = parts[i];
159 if (part.source === 'shared' && part.type === 'literal') {
160 separatorIndex = i;
161 } else if (part.source === 'endRange') {
162 break;
163 }
164 }
165
166 // Now we can combine the parts into start and end strings.
167 let startValue = '';
168 let endValue = '';
169 for (let i = 0; i < parts.length; i++) {
170 if (i < separatorIndex) {
171 startValue += parts[i].value;
172 } else if (i > separatorIndex) {
173 endValue += parts[i].value;
174 }
175 }
176
177 return stringFormatter.format('dateRange', {startDate: startValue, endDate: endValue});
178}

Callers 2

Calls 3

formatRangeToPartsMethod · 0.45
toDateMethod · 0.45
formatMethod · 0.45

Tested by

no test coverage detected