// Copyright 2021 Signal Messenger, LLC // SPDX-License-Identifier: AGPL-3.0-only import React, { useState } from 'react'; import moment from 'moment'; import { Modal } from './Modal'; import { Intl, IntlComponentsType } from './Intl'; import { Emojify } from './conversation/Emojify'; import { LocalizerType } from '../types/Util'; export type PropsType = { i18n: LocalizerType; }; type ReleaseNotesType = { date: Date; version: string; features: Array<{ key: string; components: IntlComponentsType }>; }; export const WhatsNew = ({ i18n }: PropsType): JSX.Element => { const [releaseNotes, setReleaseNotes] = useState< ReleaseNotesType | undefined >(); const viewReleaseNotes = () => { setReleaseNotes({ date: new Date(window.getBuildCreation?.() || Date.now()), version: window.getVersion(), features: [ { key: 'WhatsNew__v5.18--1', components: { hiqua: @hiqua, }, }, { key: 'WhatsNew__v5.18--2', components: { gov: gov.ai, brain: brain.ai, signal: signal.org, jojomatik: @jojomatik, }, }, { key: 'WhatsNew__v5.18--3', components: undefined }, { key: 'WhatsNew__v5.18--4', components: undefined }, ], }); }; return ( <> {releaseNotes && ( setReleaseNotes(undefined)} title={i18n('WhatsNew__modal-title')} > <> {moment(releaseNotes.date).format('LL')} ·{' '} {releaseNotes.version} )} {i18n('viewReleaseNotes')} , ]} /> ); };