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
};