From 0db31852c42953a73a2e10ca649e5a1e49ba58d0 Mon Sep 17 00:00:00 2001 From: Gavi <604983389@qq.com> Date: Fri, 1 Sep 2023 23:35:02 +0800 Subject: [PATCH 1/2] back-top 1.0.3 and improve back-top in site --- .../src/components/web/back-top/index.tsx | 31 +++- .../src/back-top/_example/back-top-custom.tsx | 61 ++++++++ .../src/back-top/_example/back-top-shape.tsx | 97 +++++++++++++ .../src/back-top/_example/back-top-size.tsx | 2 +- .../src/back-top/_example/back-top-theme.tsx | 136 ++++++++++++++++++ .../{backTop-us.md => back-top-us.md} | 0 .../src/back-top/{backTop.md => back-top.md} | 0 tdesign/desktop/src/back-top/backtop.tsx | 53 +++++++ tdesign/desktop/src/back-top/index.tsx | 28 ++-- 9 files changed, 395 insertions(+), 13 deletions(-) create mode 100644 tdesign/desktop/src/back-top/_example/back-top-custom.tsx create mode 100644 tdesign/desktop/src/back-top/_example/back-top-shape.tsx create mode 100644 tdesign/desktop/src/back-top/_example/back-top-theme.tsx rename tdesign/desktop/src/back-top/{backTop-us.md => back-top-us.md} (100%) rename tdesign/desktop/src/back-top/{backTop.md => back-top.md} (100%) create mode 100644 tdesign/desktop/src/back-top/backtop.tsx diff --git a/tdesign/desktop/site/src/components/web/back-top/index.tsx b/tdesign/desktop/site/src/components/web/back-top/index.tsx index 5f8b081d41..cf0a136b67 100644 --- a/tdesign/desktop/site/src/components/web/back-top/index.tsx +++ b/tdesign/desktop/site/src/components/web/back-top/index.tsx @@ -3,6 +3,9 @@ import '../common/index' import '../../../../../src/back-top/_example/back-top-base' import '../../../../../src/back-top/_example/back-top-duration' import '../../../../../src/back-top/_example/back-top-size' +import '../../../../../src/back-top/_example/back-top-shape' +import '../../../../../src/back-top/_example/back-top-theme' +import '../../../../../src/back-top/_example/back-top-custom' import * as marked from 'marked' @@ -80,13 +83,14 @@ define( this.updateTab(currentTab) } } + render() { return ( <>
- {/*

+

基础的回到顶部

默认距离页面右侧24px,距离页面底部80px,滚动动画时长200ms

@@ -99,7 +103,7 @@ define( - */} +

不同组件尺寸的回到顶部 @@ -107,7 +111,30 @@ define( + +

+ 不同组件形状的回到顶部 +

+

不同组件形状的回到顶部

+ + + + +

+ 不同组件主题的回到顶部 +

+ + + + +

+ 可自定义内容的回到顶部 +

+ + +
+
+
+ + + document} + /> + TOP} + container={() => document} + /> + UP} + container={() => document} + /> + + +
+ + ) + } +} diff --git a/tdesign/desktop/src/back-top/_example/back-top-shape.tsx b/tdesign/desktop/src/back-top/_example/back-top-shape.tsx new file mode 100644 index 0000000000..f54ad50bba --- /dev/null +++ b/tdesign/desktop/src/back-top/_example/back-top-shape.tsx @@ -0,0 +1,97 @@ +import { OmiProps, WeElement, h, tag, classNames, render, createRef } from 'omi' + +import '../index' + +import '../../space' + +@tag('back-top-shape') +export default class backTopShape extends WeElement { + height = 300 + + // scrollCss = + // `.t-list{ + // height: ` + + // this.height + + // `px !important; + // overflow: auto, + // }` + + // sizeStyle = { + // position: 'relative', + // insetInlineEnd: 0, + // insetBlockEnd: 0, + // } + + withStyle = ` + .t-back-top{ + position: relative !important; + right: 0 !important; + bottom: 0 !important; + } + ` + render() { + return ( + +
+ + + document} + /> + document} + /> + + + document} + /> + document} + /> + + + document} + /> + document} + /> + + +
+
+ ) + } +} diff --git a/tdesign/desktop/src/back-top/_example/back-top-size.tsx b/tdesign/desktop/src/back-top/_example/back-top-size.tsx index be4d650f74..0a56b8d6fd 100644 --- a/tdesign/desktop/src/back-top/_example/back-top-size.tsx +++ b/tdesign/desktop/src/back-top/_example/back-top-size.tsx @@ -32,7 +32,7 @@ export default class backTopSize extends WeElement { render() { return ( -
+
+
+ + + document} + /> + document} + /> + document} + /> + + + document} + /> + document} + /> + document} + /> + + + document} + /> + document} + /> + document} + /> + + + document} + /> + document} + /> + document} + /> + + +
+ + ) + } +} diff --git a/tdesign/desktop/src/back-top/backTop-us.md b/tdesign/desktop/src/back-top/back-top-us.md similarity index 100% rename from tdesign/desktop/src/back-top/backTop-us.md rename to tdesign/desktop/src/back-top/back-top-us.md diff --git a/tdesign/desktop/src/back-top/backTop.md b/tdesign/desktop/src/back-top/back-top.md similarity index 100% rename from tdesign/desktop/src/back-top/backTop.md rename to tdesign/desktop/src/back-top/back-top.md diff --git a/tdesign/desktop/src/back-top/backtop.tsx b/tdesign/desktop/src/back-top/backtop.tsx new file mode 100644 index 0000000000..a02173b2a8 --- /dev/null +++ b/tdesign/desktop/src/back-top/backtop.tsx @@ -0,0 +1,53 @@ +import { h, tag, WeElement, OmiProps, classNames } from 'omi' +import { IconProps } from './type' +import { TdClassNamePrefix } from '../utils/clsx' +import css from './style/index' + +@tag('t-icon-backtop') +export default class Backtop extends WeElement { + static css = css as string + + static defaultProps = { + size: '1em', + style: { fill: '#000' }, + } + + static propTypes = { + size: [String, Number], + onClick: Function, + style: Object, + class: String, + } + + static isLightDom = true + + render(props: OmiProps) { + const classPrefix = 't' + const iconClassName = classNames(TdClassNamePrefix('icon'), props.class, { + [`${TdClassNamePrefix('size-s')}`]: props.size === 'small', + [`${TdClassNamePrefix('size-m')}`]: props.size === 'medium', + [`${TdClassNamePrefix('size-l')}`]: props.size === 'large', + }) + const flag = props.size === 'small' || props.size === 'medium' || props.size === 'large' + const iconStyle = { + ...props.style, + fontSize: props.size, + } + return ( + + + + ) + } +} diff --git a/tdesign/desktop/src/back-top/index.tsx b/tdesign/desktop/src/back-top/index.tsx index 67b6ec8c24..5dc25d54bb 100644 --- a/tdesign/desktop/src/back-top/index.tsx +++ b/tdesign/desktop/src/back-top/index.tsx @@ -5,7 +5,7 @@ import { scrollTo } from '../utils/dom' import { BackTopProps, UseScrollProps } from './types' import { TdClassNamePrefix } from '../utils/clsx' -import '../icon/backtop' +import './backtop' const BackTopClassNamePrefix = (className: string) => TdClassNamePrefix('back-top__') + className @@ -104,7 +104,17 @@ export default class BackTop extends WeElement { }; - + defaultContent = ( + <> + + TOP + + ); + + + renderChildren(content : any,cusContent :any){ + return (content || cusContent || this.defaultContent) + } getBackTo = () => { // if (!this.props.container) return 0 @@ -123,8 +133,8 @@ export default class BackTop extends WeElement { // scrollTop = useScroll({ target: this.scrollContainer }) installed() { + this.scrollContainer = this.getContainer(this.props.container) - // console.log(this.scrollContainer) let that = this // console.log(document.querySelector(this.props.container)); // console.log(this.getContainer(this.props.container)) @@ -166,8 +176,6 @@ export default class BackTop extends WeElement { } else { offsetTop = Math.abs((scrollContainer as HTMLElement).scrollTop) } - console.log(visibleHeight,'v') - console.log(offsetTop) if (offsetTop >= visibleHeight) { buttonNode.classList.add(TdClassNamePrefix(`back-top--show`)) // 添加类名 } else { @@ -218,22 +226,22 @@ export default class BackTop extends WeElement { }, ) } + + //textarea ref button = createRef() render(props: OmiProps, store: any) { - const { container, visibleHeight, offset, size, theme, shape } = props - + const { content } = props + const cusContent = props.default return ( <> ) From efa322023369dc2e392476d4f677d92af90d82c5 Mon Sep 17 00:00:00 2001 From: Gavi <604983389@qq.com> Date: Fri, 1 Sep 2023 23:52:30 +0800 Subject: [PATCH 2/2] back-top 1.0.3 and improve back-top in site --- tdesign/desktop/src/back-top/backtop.tsx | 2 +- tdesign/desktop/src/back-top/types.ts | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/tdesign/desktop/src/back-top/backtop.tsx b/tdesign/desktop/src/back-top/backtop.tsx index a02173b2a8..35d6b50745 100644 --- a/tdesign/desktop/src/back-top/backtop.tsx +++ b/tdesign/desktop/src/back-top/backtop.tsx @@ -1,5 +1,5 @@ import { h, tag, WeElement, OmiProps, classNames } from 'omi' -import { IconProps } from './type' +import { IconProps } from './types' import { TdClassNamePrefix } from '../utils/clsx' import css from './style/index' diff --git a/tdesign/desktop/src/back-top/types.ts b/tdesign/desktop/src/back-top/types.ts index 39388d82f0..6e689ff58e 100644 --- a/tdesign/desktop/src/back-top/types.ts +++ b/tdesign/desktop/src/back-top/types.ts @@ -4,6 +4,14 @@ import { TNode, TElement, SizeEnum } from '@src/common'; import { AttachNodeReturnValue } from '../common' +export interface IconProps { + class?: String + style?: Object + size?: 'small' | 'medium' | 'large' | string | number + onClick?: (event: MouseEvent) => void +} + + export type BackTopProps = { container?:string | Function