ant-design/components/float-button/interface.ts
lijianan a05b9d92c5
feat: Float Button (#37520)
* feat: add FloatButton

* feat: add FloatButton

* feat: FloatButton

* feat: FloatButton

* fix: fix

* feat: FloatButton

* feat: FloatButton

* feat: FloatButton

* feat: FloatButton

* feat: FloatButton

* fix: add groupShape

* feat: mergeShape

* fix: fix

* fix: fix style

* fix: style fix

* fix: fix

* fix: style fix

* fix: fix

* fix: fix

* fix: fix

* fix: fix style

* fix: fix style

* fix: fix style

* fix: style fix

* feat: back-top

* fix: style bug fix

* fix: fix erroe

* fix: add tiggerElement

* fix: add tiggerElement

* fix: add tiggerElement

* fix: add tiggerElement

* feat: add useMemo

* docs: add docs

* fix: bugFix

* fix: bugFix

* fix: bugfix

* fix: style fix

* fix: bugfix

* test: add test case

* fix: style fix

* fix: style fix

* fix: fix style

* fix: fix style

* fix: fix trigger action

* fix: fix style

* feat: add demo

* fix: add demo

* feat: add docs

* fix: style ifx

* feat: update maxSize of bundlesize

* feat: add animation for group

* fix: fix

* fix: fix style

* fix: fix test case

* fix: fix test case

* fix: fix type

* fix: fix type

* fix: update bundlesize

* fix: fix

* fix: fix style

* fix: fix style

* fix: updata snap

* fix: fix CI

* fix: fix style

* fix: rename float button motion

* fix: fix style

* fix: bugFix

* fix: fix style

* fix: bugFix

* fix: update docs

* refactor: float button trigger

* test: fix test case & update snapshot

* fix: delete rest

* docs: update demo

* test: update snapshot

* fix: fix eslint error

* test: update snapshot

* style: update icon fontSize to 18

* fix: fix style

* fix: style fix

* fix: test case fix

* test: add test case

* fix: style fix

* test: update snap

* fix: style fix

* fix: style fix

* fix: style fix

* docs: demo update

* fix: style fix

* docs: update demo

* test: update snapshot

Co-authored-by: 黑雨 <wangning4567@163.com>
Co-authored-by: MadCcc <1075746765@qq.com>
2022-09-23 14:31:16 +08:00

64 lines
1.9 KiB
TypeScript

import type React from 'react';
import type Group from './FloatButtonGroup';
import type BackTop from './BackTop';
import type { TooltipProps } from '../tooltip';
export type FloatButtonType = 'default' | 'primary';
export type FloatButtonShape = 'circle' | 'square';
export type FloatButtonGroupTrigger = 'click' | 'hover';
export interface FloatButtonProps {
prefixCls?: string;
className?: string;
style?: React.CSSProperties;
icon?: React.ReactNode;
description?: React.ReactNode;
type?: FloatButtonType;
shape?: FloatButtonShape;
tooltip?: TooltipProps['title'];
href?: string;
target?: React.HTMLAttributeAnchorTarget;
onClick?: React.MouseEventHandler<HTMLElement>;
}
export interface FloatButtonContentProps extends React.DOMAttributes<HTMLDivElement> {
className?: string;
icon?: FloatButtonProps['icon'];
description?: FloatButtonProps['description'];
prefixCls: FloatButtonProps['prefixCls'];
}
export interface FloatButtonGroupProps extends FloatButtonProps {
// 包含的 Float Button
children: React.ReactNode;
// 触发方式 (有触发方式为菜单模式)
trigger?: FloatButtonGroupTrigger;
// 受控展开
open?: boolean;
// 关闭按钮自定义图标
closeIcon?: React.ReactNode;
// 展开收起的回调
onOpenChange?: (open: boolean) => void;
}
export interface BackTopProps extends Omit<FloatButtonProps, 'target'> {
visibilityHeight?: number;
onClick?: React.MouseEventHandler<HTMLDivElement>;
target?: () => HTMLElement | Window | Document;
prefixCls?: string;
children?: React.ReactNode;
className?: string;
style?: React.CSSProperties;
duration?: number;
visible?: boolean; // Only for test. Don't use it.
}
export type CompoundedComponent = React.ForwardRefExoticComponent<
FloatButtonProps & React.RefAttributes<HTMLAnchorElement | HTMLButtonElement>
> & {
Group: typeof Group;
BackTop: typeof BackTop;
};