mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-05-21 18:55:19 -04:00

Luxon DateTimes are not serializable for redux. Therefore redux throws errors. Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
47 lines
1.8 KiB
TypeScript
47 lines
1.8 KiB
TypeScript
/*
|
|
* SPDX-FileCopyrightText: 2022 The HedgeDoc developers (see AUTHORS file)
|
|
*
|
|
* SPDX-License-Identifier: AGPL-3.0-only
|
|
*/
|
|
import React, { useMemo } from 'react'
|
|
import { Trans, useTranslation } from 'react-i18next'
|
|
import { NoteInfoLine } from './note-info-line'
|
|
import { useApplicationState } from '../../../../hooks/common/use-application-state'
|
|
import type { NoteInfoTimeLineProps } from './note-info-time-line'
|
|
import { UnitalicBoldTimeFromNow } from './utils/unitalic-bold-time-from-now'
|
|
import { UnitalicBoldTrans } from './utils/unitalic-bold-trans'
|
|
import { UserAvatarForUsername } from '../../../common/user-avatar/user-avatar-for-username'
|
|
import { DateTime } from 'luxon'
|
|
|
|
/**
|
|
* Renders an info line about the last update of the current note.
|
|
* @param size The size in which line and user avatar should be displayed.
|
|
*/
|
|
export const NoteInfoLineUpdated: React.FC<NoteInfoTimeLineProps> = ({ size }) => {
|
|
useTranslation()
|
|
const noteUpdateTime = useApplicationState((state) => state.noteDetails.updatedAt)
|
|
const noteUpdateDateTime = useMemo(() => DateTime.fromSeconds(noteUpdateTime), [noteUpdateTime])
|
|
const noteUpdateUser = useApplicationState((state) => state.noteDetails.updateUsername)
|
|
|
|
const userBlock = useMemo(() => {
|
|
if (!noteUpdateUser) {
|
|
return <UnitalicBoldTrans i18nKey={'common.guestUser'} />
|
|
}
|
|
return (
|
|
<UserAvatarForUsername
|
|
username={noteUpdateUser}
|
|
additionalClasses={'font-style-normal bold font-weight-bold'}
|
|
size={size ? 'lg' : undefined}
|
|
/>
|
|
)
|
|
}, [noteUpdateUser, size])
|
|
|
|
return (
|
|
<NoteInfoLine icon={'pencil'} size={size}>
|
|
<Trans i18nKey={'editor.modal.documentInfo.edited'}>
|
|
{userBlock}
|
|
<UnitalicBoldTimeFromNow time={noteUpdateDateTime} />
|
|
</Trans>
|
|
</NoteInfoLine>
|
|
)
|
|
}
|