Skip to content

Commit

Permalink
Extract out the custom datetime formatting to utils
Browse files Browse the repository at this point in the history
  • Loading branch information
bhavberi committed Dec 18, 2024
1 parent 6ab6bed commit 3b4d64f
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 21 deletions.
29 changes: 8 additions & 21 deletions src/components/docs/DocsList.jsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
"use client";

import { useState } from "react";
import { useRouter } from "next/navigation";

import {
Paper,
Table,
Expand All @@ -14,31 +16,16 @@ import {
Grid,
} from "@mui/material";
import DocItem from "./DocItem";
import dayjs from "dayjs";
import customParseFormat from "dayjs/plugin/customParseFormat";

import Icon from "components/Icon";

import { useRouter } from "next/navigation";

dayjs.extend(customParseFormat);
import { formatDateTimeCustom } from "utils/formatTime";

export const formatDate = (dateString) => {
try {
const date = dayjs(
dateString.replace(" IST", ""),
"YYYY-MM-DD HH:mm:ss",
true,
);
if (!date.isValid()) {
console.error("Invalid date parsing for:", dateString);
return dateString; // Return original string if parsing fails
}
return date.format("hh:mm A, DD MMMM YYYY IST");
} catch (error) {
console.error("Date formatting error:", error);
return dateString; // Return original string if there's an error
}
return formatDateTimeCustom(
dateString,
"YYYY-MM-DD HH:mm:ss",
"hh:mm A, DD MMMM YYYY IST"
);
};

export default function DocsList({ allFiles, priviliged = false }) {
Expand Down
22 changes: 22 additions & 0 deletions src/utils/formatTime.jsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
"use client";

import dayjs from "dayjs";
import customParseFormat from "dayjs/plugin/customParseFormat";
dayjs.extend(customParseFormat);

const LOCALE = "en-IN";

// get datetime components from ISO string
Expand Down Expand Up @@ -30,3 +34,21 @@ export const formatDateTime = (dateTimeString) => {
const timeString = date.toTimeString().substring(0, 5); // HH:MM
return { dateString, timeString };
};

export const formatDateTimeCustom = (dateString, inputFormat, outputFormat) => {
try {
const date = dayjs(
dateString.replace(" IST", ""),
inputFormat,
true,
);
if (!date.isValid()) {
console.error("Invalid date parsing for:", dateString);
return dateString; // Return original string if parsing fails
}
return date.format(outputFormat);
} catch (error) {
console.error("Date formatting error:", error);
return dateString; // Return original string if there's an error
}
};

0 comments on commit 3b4d64f

Please sign in to comment.