| 236 | } |
| 237 | |
| 238 | export function resolveRouteMetadata(route: RouteLocationNormalizedLoaded) { |
| 239 | if (route.name === 'sample-detail') { |
| 240 | const sampleId = String(route.params.id); |
| 241 | const sample = hydrateSample(sampleId, getRouteSampleDetail(route)); |
| 242 | if (!sample && findSampleById(sampleId)) { |
| 243 | return buildNotFoundMetadata(); |
| 244 | } |
| 245 | return sample ? buildSampleMetadata(sample) : buildNotFoundMetadata(); |
| 246 | } |
| 247 | if (route.name === 'feature-map') { |
| 248 | return buildSubfeatureMapMetadata(); |
| 249 | } |
| 250 | if (route.name === 'patterns') { |
| 251 | return buildPatternsMetadata(); |
| 252 | } |
| 253 | if (route.name === 'pattern-detail') { |
| 254 | const pattern = findPatternMappingBySlug(String(route.params.slug)); |
| 255 | return pattern ? buildPatternMetadata(pattern) : buildNotFoundMetadata('Pattern'); |
| 256 | } |
| 257 | if (route.name === 'language-detail') { |
| 258 | const languagePage = findLanguagePageBySlug(String(route.params.slug)); |
| 259 | return languagePage ? buildLanguageMetadata(languagePage) : buildNotFoundMetadata('Language'); |
| 260 | } |
| 261 | |
| 262 | return buildCatalogMetadata(); |
| 263 | } |
| 264 | |
| 265 | export function buildRouteHead(metadata: PageMetadata) { |
| 266 | return { |