import React from 'react'; import ReactMarkdown from 'react-markdown'; import { Constants } from 'librechat-data-provider'; import { useGetStartupConfig } from 'librechat-data-provider/react-query'; import { useLocalize } from '~/hooks'; export default function Footer({ className }: { className?: string }) { const { data: config } = useGetStartupConfig(); const localize = useLocalize(); const privacyPolicy = config?.interface?.privacyPolicy; const termsOfService = config?.interface?.termsOfService; const privacyPolicyRender = privacyPolicy?.externalUrl && ( {localize('com_ui_privacy_policy')} ); const termsOfServiceRender = termsOfService?.externalUrl && ( {localize('com_ui_terms_of_service')} ); const mainContentParts = ( typeof config?.customFooter === 'string' ? config.customFooter : '[](https://librechat.ai) - ' + localize('com_ui_pay_per_call') ).split('|'); const mainContentRender = mainContentParts.map((text, index) => ( { const { ['node']: _, href, ...otherProps } = props; return ( ); }, p: ({ node, ...props }) => , }} > {text.trim()} )); const footerElements = [...mainContentRender, privacyPolicyRender, termsOfServiceRender].filter( Boolean, ); return (
{footerElements.map((contentRender, index) => { const isLastElement = index === footerElements.length - 1; return ( {contentRender} {!isLastElement && (
)} ); })}
); }