mirror of
https://github.com/kremalicious/umami.git
synced 2025-02-06 01:15:42 +01:00
Fixed timezone date format.
This commit is contained in:
parent
17e2658fdc
commit
511fec2ddb
@ -6,7 +6,7 @@ import Link from 'next/link';
|
|||||||
import Icons from 'components/icons';
|
import Icons from 'components/icons';
|
||||||
|
|
||||||
export function EventsTable({ data = [] }) {
|
export function EventsTable({ data = [] }) {
|
||||||
const { formatDate } = useTimezone();
|
const { formatTimezoneDate } = useTimezone();
|
||||||
const { formatMessage, labels } = useMessages();
|
const { formatMessage, labels } = useMessages();
|
||||||
const { renderTeamUrl } = useTeamUrl();
|
const { renderTeamUrl } = useTeamUrl();
|
||||||
|
|
||||||
@ -35,7 +35,7 @@ export function EventsTable({ data = [] }) {
|
|||||||
}}
|
}}
|
||||||
</GridColumn>
|
</GridColumn>
|
||||||
<GridColumn name="created" label={formatMessage(labels.created)} width={'300px'}>
|
<GridColumn name="created" label={formatMessage(labels.created)} width={'300px'}>
|
||||||
{row => formatDate(row.createdAt, 'PPPpp')}
|
{row => formatTimezoneDate(row.createdAt, 'PPPpp')}
|
||||||
</GridColumn>
|
</GridColumn>
|
||||||
</GridTable>
|
</GridTable>
|
||||||
);
|
);
|
||||||
|
@ -31,7 +31,7 @@ export function RealtimeLog({ data }: { data: RealtimeData }) {
|
|||||||
const { formatMessage, labels, messages, FormattedMessage } = useMessages();
|
const { formatMessage, labels, messages, FormattedMessage } = useMessages();
|
||||||
const { formatValue } = useFormat();
|
const { formatValue } = useFormat();
|
||||||
const { locale } = useLocale();
|
const { locale } = useLocale();
|
||||||
const { formatDate } = useTimezone();
|
const { formatTimezoneDate } = useTimezone();
|
||||||
const { countryNames } = useCountryNames(locale);
|
const { countryNames } = useCountryNames(locale);
|
||||||
const [filter, setFilter] = useState(TYPE_ALL);
|
const [filter, setFilter] = useState(TYPE_ALL);
|
||||||
|
|
||||||
@ -54,7 +54,7 @@ export function RealtimeLog({ data }: { data: RealtimeData }) {
|
|||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
const getTime = ({ createdAt, firstAt }) => formatDate(firstAt || createdAt, 'h:mm:ss');
|
const getTime = ({ createdAt, firstAt }) => formatTimezoneDate(firstAt || createdAt, 'h:mm:ss');
|
||||||
|
|
||||||
const getColor = ({ id, sessionId }) => stringToColor(sessionId || id);
|
const getColor = ({ id, sessionId }) => stringToColor(sessionId || id);
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ import styles from './SessionsTable.module.css';
|
|||||||
import TypeIcon from 'components/common/TypeIcon';
|
import TypeIcon from 'components/common/TypeIcon';
|
||||||
|
|
||||||
export function SessionsTable({ data = [] }: { data: any[]; showDomain?: boolean }) {
|
export function SessionsTable({ data = [] }: { data: any[]; showDomain?: boolean }) {
|
||||||
const { formatDate } = useTimezone();
|
const { formatTimezoneDate } = useTimezone();
|
||||||
const { formatMessage, labels } = useMessages();
|
const { formatMessage, labels } = useMessages();
|
||||||
const { formatValue } = useFormat();
|
const { formatValue } = useFormat();
|
||||||
|
|
||||||
@ -51,7 +51,7 @@ export function SessionsTable({ data = [] }: { data: any[]; showDomain?: boolean
|
|||||||
)}
|
)}
|
||||||
</GridColumn>
|
</GridColumn>
|
||||||
<GridColumn name="lastAt" label={formatMessage(labels.lastSeen)}>
|
<GridColumn name="lastAt" label={formatMessage(labels.lastSeen)}>
|
||||||
{row => formatDate(row.createdAt, 'PPPpp')}
|
{row => formatTimezoneDate(row.createdAt, 'PPPpp')}
|
||||||
</GridColumn>
|
</GridColumn>
|
||||||
</GridTable>
|
</GridTable>
|
||||||
);
|
);
|
||||||
|
@ -15,7 +15,7 @@ export function SessionActivity({
|
|||||||
startDate: Date;
|
startDate: Date;
|
||||||
endDate: Date;
|
endDate: Date;
|
||||||
}) {
|
}) {
|
||||||
const { formatDate } = useTimezone();
|
const { formatTimezoneDate } = useTimezone();
|
||||||
const { data, isLoading } = useSessionActivity(websiteId, sessionId, startDate, endDate);
|
const { data, isLoading } = useSessionActivity(websiteId, sessionId, startDate, endDate);
|
||||||
|
|
||||||
if (isLoading) {
|
if (isLoading) {
|
||||||
@ -33,12 +33,12 @@ export function SessionActivity({
|
|||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
{showHeader && (
|
{showHeader && (
|
||||||
<div className={styles.header}>{formatDate(createdAt, 'EEEE, PPP')}</div>
|
<div className={styles.header}>{formatTimezoneDate(createdAt, 'EEEE, PPP')}</div>
|
||||||
)}
|
)}
|
||||||
<div key={eventId} className={styles.row}>
|
<div key={eventId} className={styles.row}>
|
||||||
<div className={styles.time}>
|
<div className={styles.time}>
|
||||||
<StatusLight color={`#${visitId?.substring(0, 6)}`}>
|
<StatusLight color={`#${visitId?.substring(0, 6)}`}>
|
||||||
{formatDate(createdAt, 'h:mm:ss aaa')}
|
{formatTimezoneDate(createdAt, 'h:mm:ss aaa')}
|
||||||
</StatusLight>
|
</StatusLight>
|
||||||
</div>
|
</div>
|
||||||
<Icon>{eventName ? <Icons.Bolt /> : <Icons.Eye />}</Icon>
|
<Icon>{eventName ? <Icons.Bolt /> : <Icons.Eye />}</Icon>
|
||||||
|
@ -6,7 +6,7 @@ import styles from './SessionInfo.module.css';
|
|||||||
|
|
||||||
export default function SessionInfo({ data }) {
|
export default function SessionInfo({ data }) {
|
||||||
const { locale } = useLocale();
|
const { locale } = useLocale();
|
||||||
const { formatDate } = useTimezone();
|
const { formatTimezoneDate } = useTimezone();
|
||||||
const { formatMessage, labels } = useMessages();
|
const { formatMessage, labels } = useMessages();
|
||||||
const { formatValue } = useFormat();
|
const { formatValue } = useFormat();
|
||||||
const { getRegionName } = useRegionNames(locale);
|
const { getRegionName } = useRegionNames(locale);
|
||||||
@ -20,10 +20,10 @@ export default function SessionInfo({ data }) {
|
|||||||
</dd>
|
</dd>
|
||||||
|
|
||||||
<dt>{formatMessage(labels.lastSeen)}</dt>
|
<dt>{formatMessage(labels.lastSeen)}</dt>
|
||||||
<dd>{formatDate(data?.lastAt, 'EEEE, PPPpp')}</dd>
|
<dd>{formatTimezoneDate(data?.lastAt, 'EEEE, PPPpp')}</dd>
|
||||||
|
|
||||||
<dt>{formatMessage(labels.firstSeen)}</dt>
|
<dt>{formatMessage(labels.firstSeen)}</dt>
|
||||||
<dd>{formatDate(data?.firstAt, 'EEEE, PPPpp')}</dd>
|
<dd>{formatTimezoneDate(data?.firstAt, 'EEEE, PPPpp')}</dd>
|
||||||
|
|
||||||
<dt>{formatMessage(labels.country)}</dt>
|
<dt>{formatMessage(labels.country)}</dt>
|
||||||
<dd>
|
<dd>
|
||||||
|
@ -13,13 +13,15 @@ export function useTimezone() {
|
|||||||
setTimezone(value);
|
setTimezone(value);
|
||||||
};
|
};
|
||||||
|
|
||||||
const formatDate = (date: string, pattern: string) => {
|
const formatTimezoneDate = (date: string, pattern: string) => {
|
||||||
return formatInTimeZone(
|
return (
|
||||||
/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$/.test(date)
|
formatInTimeZone(
|
||||||
|
/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]{3})?Z$/.test(date)
|
||||||
? date
|
? date
|
||||||
: date.split(' ').join('T') + 'Z',
|
: date.split(' ').join('T') + 'Z',
|
||||||
timezone,
|
timezone,
|
||||||
pattern,
|
pattern,
|
||||||
|
) + `, ${date}, ${pattern}, ${timezone}, ${formatInTimeZone(date, timezone, pattern)}`
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -31,7 +33,7 @@ export function useTimezone() {
|
|||||||
return utcToZonedTime(date, timezone);
|
return utcToZonedTime(date, timezone);
|
||||||
};
|
};
|
||||||
|
|
||||||
return { timezone, saveTimezone, formatDate, toUtc, fromUtc };
|
return { timezone, saveTimezone, formatTimezoneDate, toUtc, fromUtc };
|
||||||
}
|
}
|
||||||
|
|
||||||
export default useTimezone;
|
export default useTimezone;
|
||||||
|
Loading…
Reference in New Issue
Block a user