import type { GuideFileType, GuideFrontmatter } from '../../lib/guide'; import { type QuestionGroupType } from '../../lib/question-group'; export interface GuideListItemProps { guide: GuideFileType | QuestionGroupType; } function isQuestionGroupType( guide: GuideFileType | QuestionGroupType, ): guide is QuestionGroupType { return (guide as QuestionGroupType).questions !== undefined; } export function GuideListItem(props: GuideListItemProps) { const { guide } = props; const { frontmatter, id } = guide; let pageUrl = ''; let guideType = ''; if (isQuestionGroupType(guide)) { pageUrl = `/questions/${id}`; guideType = 'Questions'; } else { const excludedBySlug = (frontmatter as GuideFrontmatter).excludedBySlug; pageUrl = excludedBySlug ? excludedBySlug : `/guides/${id}`; guideType = (frontmatter as GuideFrontmatter).type; } return ( {frontmatter.title} {frontmatter.isNew && ( New  ·  {new Date(frontmatter.date || '').toLocaleString('default', { month: 'long', })} )} {guideType} » ); }