// Copyright 2021 Signal Messenger, LLC // SPDX-License-Identifier: AGPL-3.0-only import type { ReactNode } from 'react'; import React from 'react'; import moment from 'moment'; import { Modal } from './Modal'; import { I18n } from './I18n'; import type { LocalizerType } from '../types/Util'; export type PropsType = { hideWhatsNewModal: () => unknown; i18n: LocalizerType; }; type ReleaseNotesType = { date: Date; version: string; header?: JSX.Element; features: Array; }; // Exported so it doesn't get marked unused export function ExternalLink(props: { href: string; children: ReactNode; }): JSX.Element { return ( {props.children} ); } export function WhatsNewModal({ i18n, hideWhatsNewModal, }: PropsType): JSX.Element { let contentNode: ReactNode; const releaseNotes: ReleaseNotesType = { date: new Date(window.getBuildCreation?.() || Date.now()), version: window.getVersion?.(), features: [], }; if (releaseNotes.features.length === 1 && !releaseNotes.header) { contentNode =

{releaseNotes.features[0]}

; } else { contentNode = ( <> {releaseNotes.header ?

{releaseNotes.header}

: null} ); } return ( <> {moment(releaseNotes.date).format('LL')} ·{' '} {releaseNotes.version} {contentNode} ); }