46 lines
1.3 KiB
TypeScript
46 lines
1.3 KiB
TypeScript
import { extractLanguageFromPath } from '@/app/lib/language-utils'
|
|
import { extractVersionFromPath } from '@/app/lib/version-utils'
|
|
import { getUIDataMerged } from '@/data-directory/lib/get-data'
|
|
import { type LanguageCode } from '@/languages/lib/languages'
|
|
import { createTranslationFunctions, translate } from '@/languages/lib/translation-utils'
|
|
|
|
export interface ServerAppRouterContext {
|
|
currentLanguage: LanguageCode
|
|
currentVersion: string
|
|
sitename: string
|
|
site: { data: { ui: any } }
|
|
}
|
|
|
|
/**
|
|
* Server-side context creation using filesystem data
|
|
* Use in server components where filesystem access is available
|
|
*/
|
|
export function createServerAppRouterContext(pathname: string): ServerAppRouterContext {
|
|
const language = extractLanguageFromPath(pathname)
|
|
const currentVersion = extractVersionFromPath(pathname)
|
|
|
|
const uiData = getUIDataMerged(language)
|
|
const siteName = translate(uiData, 'header.github_docs', 'GitHub Docs')
|
|
|
|
return {
|
|
currentLanguage: language,
|
|
currentVersion,
|
|
sitename: siteName,
|
|
site: { data: { ui: uiData } },
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Create server-side footer with translations
|
|
*/
|
|
export function createServerFooterContent(language: LanguageCode) {
|
|
const uiData = getUIDataMerged(language)
|
|
const { t } = createTranslationFunctions(uiData, 'footer')
|
|
|
|
return {
|
|
t,
|
|
language,
|
|
footerData: uiData.footer || {},
|
|
}
|
|
}
|