mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-12 12:28:42 +00:00
68 lines
1.6 KiB
TypeScript
68 lines
1.6 KiB
TypeScript
import { useAFFiNEI18N } from '@affine/i18n/hooks';
|
|
import { CloseIcon, NewIcon } from '@blocksuite/icons';
|
|
import clsx from 'clsx';
|
|
import { useState } from 'react';
|
|
|
|
import { IconButton } from '../..';
|
|
import {
|
|
changeLogSlideInStyle,
|
|
changeLogSlideOutStyle,
|
|
changeLogWrapperSlideInStyle,
|
|
changeLogWrapperSlideOutStyle,
|
|
iconButtonStyle,
|
|
iconStyle,
|
|
linkStyle,
|
|
linkTextStyle,
|
|
} from './index.css';
|
|
|
|
type ChangeLogProps = {
|
|
onCloseWhatsNew: () => void;
|
|
};
|
|
export const ChangeLog = (props: ChangeLogProps) => {
|
|
const { onCloseWhatsNew } = props;
|
|
const [isClose, setIsClose] = useState(false);
|
|
const t = useAFFiNEI18N();
|
|
const handleClose = () => {
|
|
setIsClose(true);
|
|
onCloseWhatsNew();
|
|
};
|
|
return (
|
|
<div
|
|
className={clsx(changeLogWrapperSlideInStyle, {
|
|
[changeLogWrapperSlideOutStyle]: isClose,
|
|
})}
|
|
>
|
|
<div
|
|
data-testid="change-log"
|
|
className={clsx(changeLogSlideInStyle, {
|
|
[changeLogSlideOutStyle]: isClose,
|
|
})}
|
|
>
|
|
<div
|
|
className={linkStyle}
|
|
onClick={() => {
|
|
window.open(
|
|
'https://github.com/toeverything/AFFiNE/releases',
|
|
'_blank'
|
|
);
|
|
}}
|
|
>
|
|
<NewIcon className={iconStyle} />
|
|
<div className={linkTextStyle}>{t["Discover what's new!"]()}</div>
|
|
</div>
|
|
<IconButton
|
|
className={iconButtonStyle}
|
|
onClick={() => {
|
|
handleClose();
|
|
}}
|
|
data-testid="change-log-close-button"
|
|
>
|
|
<CloseIcon />
|
|
</IconButton>
|
|
</div>
|
|
</div>
|
|
);
|
|
};
|
|
|
|
export default ChangeLog;
|