mirror of
https://github.com/labring/FastGPT.git
synced 2025-10-19 01:54:04 +00:00
New document (#5299)
* add new doc (#5175) Co-authored-by: dreamer6680 <146868355@qq.com> * Test docs (#5235) * fix: change the page of doc * chore: add new dependencies, update global styles/layout, optimize docs, add Feishu & GitHub icons, update API examples * fix: docs/index 404 not found * Update environment variable names, optimize styles, add new API routes, fix component styles, adjust documentation, and update GitHub and Feishu icons * update readme * feat: add a linkfastgpt compontent * feat: update new doc * fix:remove unuse page and redirect homepage to docs (#5288) * fix:remove some unuse doc * fix: redirect homepage to doc * git ignore * fix:navbar to index (#5295) * sidbar * fix: navtab unlight (#5298) * doc --------- Co-authored-by: dreamer6680 <1468683855@qq.com> Co-authored-by: dreamer6680 <146868355@qq.com>
This commit is contained in:
58
document/components/docs/linkFastGPT.tsx
Normal file
58
document/components/docs/linkFastGPT.tsx
Normal file
@@ -0,0 +1,58 @@
|
||||
'use client';
|
||||
|
||||
import React, { useMemo } from 'react';
|
||||
|
||||
type FastGPTLinkProps = {
|
||||
children: React.ReactNode;
|
||||
className?: string;
|
||||
style?: React.CSSProperties;
|
||||
onClick?: (e: React.MouseEvent<HTMLAnchorElement>) => void;
|
||||
};
|
||||
|
||||
const defaultStyles: React.CSSProperties = {
|
||||
color: '#3370ff',
|
||||
textDecoration: 'none',
|
||||
transition: 'all 0.2s ease-in-out'
|
||||
};
|
||||
|
||||
const hoverStyles: React.CSSProperties = {
|
||||
color: '#2152d9',
|
||||
textDecoration: 'underline'
|
||||
};
|
||||
|
||||
const FastGPTLink = ({ children, className, style, onClick, ...props }: FastGPTLinkProps) => {
|
||||
const href = useMemo(() => {
|
||||
return process.env.NEXT_PUBLIC_DOMAIN ?? 'https://fastgpt.io';
|
||||
}, []);
|
||||
|
||||
const [isHovered, setIsHovered] = React.useState(false);
|
||||
|
||||
const combinedStyles = {
|
||||
...defaultStyles,
|
||||
...(isHovered ? hoverStyles : {}),
|
||||
...style
|
||||
};
|
||||
|
||||
return (
|
||||
<a
|
||||
href={href}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className={className}
|
||||
style={combinedStyles}
|
||||
onMouseEnter={() => setIsHovered(true)}
|
||||
onMouseLeave={() => setIsHovered(false)}
|
||||
onClick={(e) => {
|
||||
if (onClick) {
|
||||
e.preventDefault();
|
||||
onClick(e);
|
||||
}
|
||||
}}
|
||||
{...props}
|
||||
>
|
||||
{children}
|
||||
</a>
|
||||
);
|
||||
};
|
||||
|
||||
export default React.memo(FastGPTLink);
|
Reference in New Issue
Block a user