// Copyright 2018 Signal Messenger, LLC // SPDX-License-Identifier: AGPL-3.0-only import React from 'react'; import type { LocalizerType, ICUJSXMessageParamsByKeyType, } from '../types/Util.js'; import { strictAssert } from '../util/assert.js'; export type Props = { /** The translation string id */ id: Key; i18n: LocalizerType; } & (ICUJSXMessageParamsByKeyType[Key] extends undefined ? { components?: ICUJSXMessageParamsByKeyType[Key]; } : { components: ICUJSXMessageParamsByKeyType[Key]; }); export function I18n({ components, id, // Indirection for linter/migration tooling i18n: localizer, }: Props): JSX.Element | null { strictAssert(id != null, 'Error: id prop not provided'); const intl = localizer.getIntl(); return <>{intl.formatMessage({ id }, components, {})}; }