Skip to content

Commit

Permalink
[Fix] Fix time zone for requests and reports (#278)
Browse files Browse the repository at this point in the history
* [Fix] Fix time zone for requests and reports

* Add local time zone formatter function
  • Loading branch information
leogjhuang committed Feb 18, 2023
1 parent 07f7303 commit 0e51e9a
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 6 deletions.
4 changes: 2 additions & 2 deletions components/admin/requests/reason-for-replacement/Card.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { Box, Text, SimpleGrid, Button } from '@chakra-ui/react'; // Chakra UI
import PermitHolderInfoCard from '@components/admin/LayoutCard'; // Custom Card Component
import EditReasonForReplacementModal from '@components/admin/requests/reason-for-replacement/EditModal'; // Edit modal
import { reasonForReplacementFormSchema } from '@lib/applications/validation';
import { formatDateYYYYMMDD } from '@lib/utils/date';
import { formatDateYYYYMMDDLocal } from '@lib/utils/date';
import {
GetReasonForReplacementRequest,
GetReasonForReplacementResponse,
Expand Down Expand Up @@ -97,7 +97,7 @@ export default function ReasonForReplacementCard(props: ReplacementProps) {
<InfoSection title={`Cause`}>{titlecase(reason)}</InfoSection>
{lostTimestamp && (
<InfoSection title={`Event Timestamp`}>
{formatDateYYYYMMDD(new Date(lostTimestamp), true)}
{formatDateYYYYMMDDLocal(new Date(lostTimestamp), true)}
</InfoSection>
)}
{lostLocation && <InfoSection title={`Location Lost`}>{lostLocation}</InfoSection>}
Expand Down
8 changes: 6 additions & 2 deletions lib/reports/resolvers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,11 @@ import {
} from '@lib/graphql/types';
import { SortOrder } from '@tools/types';
import { formatFullName, formatPhoneNumber, formatPostalCode } from '@lib/utils/format'; // Formatting utils
import { formatDateTimeYYYYMMDDHHMMSS, formatDateYYYYMMDD } from '@lib/utils/date'; // Formatting utils
import {
formatDateTimeYYYYMMDDHHMMSS,
formatDateYYYYMMDD,
formatDateYYYYMMDDLocal,
} from '@lib/utils/date'; // Formatting utils
import { APPLICATIONS_COLUMNS, PERMIT_HOLDERS_COLUMNS } from '@tools/admin/reports';
import { Prisma } from '@prisma/client';
import { getSignedUrlForS3, serverUploadToS3 } from '@lib/utils/s3-utils';
Expand Down Expand Up @@ -264,7 +268,7 @@ export const generateApplicationsReport: Resolver<
...application,
id: applicant?.id,
dateOfBirth: dateOfBirth && formatDateYYYYMMDD(dateOfBirth),
applicationDate: createdAt ? formatDateYYYYMMDD(createdAt, true) : null,
applicationDate: createdAt ? formatDateYYYYMMDDLocal(createdAt, true) : null,
applicantName: formatFullName(firstName, middleName, lastName),
processingFee: `$${processingFee}`,
donationAmount: `$${donationAmount}`,
Expand Down
11 changes: 11 additions & 0 deletions lib/utils/date.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,17 @@ export const formatDateYYYYMMDD = (d: Date, withTime = false): string => {
return moment.utc(d).format(formatString);
};

/**
* Format date to be in YYYY-MM-DD format and in local time zone
* @param {Date} date date to be formatted
* @param {boolean} withTime whether to include time in formatted date
* @returns {string} formatted date
*/
export const formatDateYYYYMMDDLocal = (d: Date, withTime = false): string => {
const formatString = withTime ? 'YYYY-MM-DD, hh:mm a' : 'YYYY-MM-DD';
return moment(d).format(formatString);
};

/**
* Format date to be in written in the following format: Sep 11 2021, 03:07 pm not converting to the local timezone
* @param {Date} date date to be formatted
Expand Down
4 changes: 2 additions & 2 deletions pages/admin/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ import { ApplicationStatus, ApplicationType, PermitType } from '@lib/graphql/typ
import useDebounce from '@tools/hooks/useDebounce'; // Debounce hook
import { Column } from 'react-table';
import { formatFullName } from '@lib/utils/format'; // String formatter util
import { formatDateYYYYMMDD } from '@lib/utils/date'; // Date Formatter Util
import { formatDateYYYYMMDDLocal } from '@lib/utils/date'; // Date Formatter Util
import GenerateReportModal from '@components/admin/requests/reports/GenerateModal'; // Generate report modal
import EmptyMessage from '@components/EmptyMessage';

Expand Down Expand Up @@ -82,7 +82,7 @@ const COLUMNS: Column<ApplicationRow>[] = [
width: 240,
sortDescFirst: true,
Cell: ({ value }) => {
return <Text>{formatDateYYYYMMDD(value, true)}</Text>;
return <Text>{formatDateYYYYMMDDLocal(value, true)}</Text>;
},
},
{
Expand Down

0 comments on commit 0e51e9a

Please sign in to comment.