import React from 'react'; import { colours } from '@times-components/ts-styleguide'; import { LiveArticleFlag, BreakingArticleFlag } from './LiveArticleFlag'; import { ArticleFlagContainer, ArticleFlagBullet, ArticleFlagTextContainer, FlagPadding, Flags, FlagsContainer } from './styles'; import getActiveFlags from './getActiveFlags'; const ArticleFlag: React.FC<{ color?: string; title: string }> = ({ color = colours.functional.primary, title }) => ( {title.toLowerCase()} ); const NewArticleFlag: React.FC<{ color?: string }> = ({ color = colours.functional.articleFlagNew }) => ; const UpdatedArticleFlag: React.FC<{ color?: string }> = ({ color = colours.functional.articleFlagUpdated }) => ; const ExclusiveArticleFlag: React.FC<{ color?: string }> = ({ color = colours.functional.articleFlagExclusive }) => ; const SponsoredArticleFlag: React.FC<{ color?: string }> = ({ color = colours.functional.tertiary }) => ; const LongReadArticleFlag: React.FC<{ color?: string }> = ({ color = colours.functional.secondary }) => ; const flagsMapping = (override = '') => { let colourProp; if (override !== '') { colourProp = { color: override }; } return new Map([ ['NEW', ], ['LIVE', ], ['BREAKING', ], ['UPDATED', ], ['EXCLUSIVE', ], ['SPONSORED', ], ['LONGREAD', ] ]); }; export type FlagType = Array<{ expiryTime: string | null; type: string; }>; const FlagsView: React.FC<{ allFlags: FlagType; overrideColor?: string }> = ({ allFlags, overrideColor = '' }) => { return ( {allFlags.map(flag => ( {flagsMapping(overrideColor).get(flag.type)} ))} ); }; const ArticleFlags: React.FC<{ flags: FlagType; longRead: boolean; withContainer: boolean; color?: string; }> = ({ flags = [], longRead = false, withContainer = false, color = '' }) => { const activeFlags = getActiveFlags(flags); const allFlags = [ ...activeFlags, ...(longRead ? [{ expiryTime: null, type: 'LONGREAD' }] : []) ]; if (!allFlags.length) { return null; } if (!withContainer) { return ; } return ( ); }; export default ArticleFlag; export { getActiveFlags, ArticleFlag, ArticleFlags, NewArticleFlag, UpdatedArticleFlag, ExclusiveArticleFlag, SponsoredArticleFlag, LongReadArticleFlag };