import React from 'react'; import styled from 'styled-components'; import { InAppNotificationSubtitle } from '../../shared/notifications'; import { LabelTinySemiBold } from '../lib/components'; import { Link } from '../lib/components/link'; import { formatHtml } from '../lib/html-formatter'; import { ExternalLink } from './ExternalLink'; import { InternalLink } from './InternalLink'; export type NotificationSubtitleProps = { subtitle?: string | InAppNotificationSubtitle[]; }; const StyledLink = styled(Link)``; const formatSubtitle = (subtitle: InAppNotificationSubtitle) => { const content = formatHtml(subtitle.content); if (subtitle.action) { switch (subtitle.action.type) { case 'navigate-internal': return ( {content} ); case 'navigate-external': return ( {content} ); case 'run-function': return ( {content} ); default: break; } } return content; }; export const NotificationSubtitle = ({ subtitle, ...props }: NotificationSubtitleProps) => { if (!subtitle) { return null; } if (!Array.isArray(subtitle)) { return ( {formatHtml(subtitle)} ); } return ( {subtitle.map((subtitle, index, arr) => { const content = formatSubtitle(subtitle); return ( {content} {index !== arr.length - 1 && ' '} ); })} ); };