_includes/resources/common/ArticleAuthor.11ty.tsx (38 lines of code) (raw):

import { Resource } from "../../../src/ResourceModels"; import { Author } from "../author/AuthorModels"; import { AuthorIcon } from "../../resourcecard/Utilities.11ty"; export type ArticleAuthorProps = { author: Author | Resource; displayDate: string; }; const ArticleTitleSubtitle = ({ author, displayDate, }: ArticleAuthorProps): JSX.Element => { return ( <article class="media author is-size-7"> {author instanceof Author && ( <div class="p-1 is-32x32 media-left"> <a href={author.url}> <figure class="image is-32x32 m-0"> <AuthorIcon {...author} /> </figure> </a> </div> )} <div class="media-content"> <div class="content"> <p class="m-0"> <a href={author.url} class="has-text-grey-dark is-underlined"> {author.title} {(author as any).isGuest && "(Community)"} </a> </p> <time class="m-0 has-text-grey-dark" datetime={displayDate}> {displayDate} </time> </div> </div> </article> ); }; export default ArticleTitleSubtitle;