/**
 * Get the string formatted locally to the user.
 *
 * @param dateString A string in the format 'yyyy-mm-dd'
 * @returns the locale date string for the date.
 */
export function getLocaleTimeString(dateString: string): string {
  // NOTE: `date.toLocaleDateString()` will be the day before for western dates
  // due to an unspecified time & timezone assuming midnight at GMT+0.
  const date = parseTimeString(dateString);

  // NOTE: This format varies per region.
  // Ex: "5/12/2023", "12/05/2023", "12.5.2023", "2023/5/12", "१२/५/२०२३"
  // const language = navigator.language ?? 'en-US';
  // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat#using_options
  return new Intl.DateTimeFormat(undefined, {
    // Print the date for GMT+0 since the date object assumes midnight at GMT+0.
    hour: '2-digit',
    minute: '2-digit',
    second: '2-digit',
    hour12: false, // Use 12-hour clock
    // timeZone: 'UTC',
  }).format(date);
}

function parseTimeString(timeString: string): Date {
  // const [time, period] = timeString.split(' ');
  const [hours, minutes, seconds] = timeString.split(':').map(Number);

  // Convert hours to 24-hour format if necessary
  // const adjustedHours = period === 'PM' && hours < 12 ? hours + 12 : (period === 'AM' && hours === 12 ? 0 : hours);
  
  // Create a date object with a fixed date and the parsed time
  return new Date(2024, 7, 9, hours, minutes, seconds); // Month is 0-indexed
}