ant-design/.dumi/theme/common/EditButton.tsx
2022-11-18 19:35:46 +08:00

60 lines
1.3 KiB
TypeScript

import React from 'react';
import { Tooltip } from 'antd';
import { EditOutlined } from '@ant-design/icons';
import { css } from '@emotion/react';
import useSiteToken from '../../hooks/useSiteToken';
const branchUrl = 'https://github.com/ant-design/ant-design/edit/master/';
export interface EditButtonProps {
title: React.ReactNode;
filename?: string;
}
const useStyle = () => {
const { token } = useSiteToken();
const { colorIcon, colorText, iconCls } = token;
return {
editButton: css`
a& {
display: inline-block;
text-decoration: none;
margin-inline-start: 6px;
vertical-align: middle;
position: relative;
top: -2px;
${iconCls} {
display: block;
color: ${colorIcon};
font-size: 16px;
transition: all 0.3s;
&:hover {
color: ${colorText};
}
}
}
`,
};
};
export default function EditButton({ title, filename }: EditButtonProps) {
const styles = useStyle();
return (
<Tooltip title={title}>
<a
css={styles.editButton}
href={`${branchUrl}${filename}`}
target="_blank"
rel="noopener noreferrer"
>
<EditOutlined />
</a>
</Tooltip>
);
}