// @flow import * as React from 'react'; import { inject } from 'mobx-react'; import styled from 'styled-components'; import Document from 'models/Document'; import Flex from 'shared/components/Flex'; import Time from 'shared/components/Time'; import Breadcrumb from 'shared/components/Breadcrumb'; import CollectionsStore from 'stores/CollectionsStore'; const Container = styled(Flex)` color: ${props => props.theme.textTertiary}; font-size: 13px; white-space: nowrap; overflow: hidden; `; const Modified = styled.span` color: ${props => props.highlight ? props.theme.text : props.theme.textTertiary}; font-weight: ${props => (props.highlight ? '600' : '400')}; `; type Props = { collections: CollectionsStore, showCollection?: boolean, showPublished?: boolean, document: Document, views?: number, }; function PublishingInfo({ collections, showPublished, showCollection, document, }: Props) { const { modifiedSinceViewed, updatedAt, updatedBy, publishedAt, archivedAt, deletedAt, isDraft, } = document; const neverUpdated = publishedAt === updatedAt; let content; if (deletedAt) { content = ( deleted ); } else if (archivedAt) { content = ( archived ); } else if (publishedAt && (neverUpdated || showPublished)) { content = ( published ); } else if (isDraft) { content = ( saved ); } else { content = ( updated ); } const collection = collections.get(document.collectionId); return ( {updatedBy.name}  {content} {showCollection && collection && (  in  )} ); } export default inject('collections')(PublishingInfo);