From 0a1a27eb474e36344dbdb20bcc3050dd8f428575 Mon Sep 17 00:00:00 2001 From: oasis Date: Wed, 26 Feb 2025 16:53:59 +0800 Subject: [PATCH 01/10] =?UTF-8?q?fix:=20=E5=A2=9E=E5=8A=A0=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E7=9A=84=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/packages/address/address.taro.tsx | 7 +------ src/packages/address/address.tsx | 7 +------ src/packages/address/index.taro.ts | 3 ++- src/packages/address/index.ts | 3 ++- src/packages/address/types.ts | 5 +++++ src/packages/calendar/index.taro.ts | 8 +++++++- src/packages/calendar/index.ts | 8 +++++++- src/packages/circleprogress/circleprogress.taro.tsx | 5 ----- src/packages/circleprogress/circleprogress.tsx | 4 ---- src/packages/form/index.taro.ts | 3 +++ src/packages/form/index.ts | 3 +++ src/packages/formitem/index.taro.ts | 1 + src/packages/formitem/index.ts | 1 + src/packages/indicator/index.taro.ts | 6 +++++- src/packages/indicator/index.ts | 2 +- src/packages/infiniteloading/index.taro.ts | 1 + src/packages/input/index.taro.ts | 4 ++-- src/packages/input/index.ts | 1 + src/packages/loading/index.taro.ts | 7 ++++++- src/packages/loading/index.ts | 7 ++++++- src/packages/lottie/index.taro.ts | 2 ++ src/packages/menu/menu.taro.tsx | 4 ++-- src/packages/menu/menu.tsx | 4 ++-- src/packages/menuitem/index.taro.ts | 2 +- src/packages/menuitem/index.ts | 2 +- src/packages/menuitem/menuitem.taro.tsx | 8 ++++---- src/packages/menuitem/menuitem.tsx | 8 ++++---- src/packages/noticebar/index.taro.ts | 1 + src/packages/popup/index.taro.ts | 1 + src/packages/popup/index.ts | 7 ++++++- src/packages/popup/types.ts | 10 ++++++++-- src/packages/sidebar/index.taro.ts | 2 +- src/packages/sidebar/index.ts | 2 +- src/packages/space/index.taro.ts | 1 + src/packages/space/index.ts | 1 + src/packages/step/index.taro.ts | 1 + src/packages/step/index.ts | 1 + src/packages/swipe/demos/h5/demo4.tsx | 4 ++-- src/packages/swipe/demos/h5/demo5.tsx | 4 ++-- src/packages/swipe/demos/h5/demo8.tsx | 4 ++-- src/packages/swipe/demos/taro/demo4.tsx | 4 ++-- src/packages/swipe/demos/taro/demo5.tsx | 4 ++-- src/packages/swipe/demos/taro/demo8.tsx | 4 ++-- src/packages/swipe/index.taro.ts | 2 +- src/packages/swipe/index.ts | 2 +- src/packages/swipe/swipe.taro.tsx | 4 ++-- src/packages/swipe/swipe.tsx | 4 ++-- src/packages/swiper/index.ts | 2 +- src/packages/swiper/swiper.taro.tsx | 1 - src/packages/swiperitem/index.taro.ts | 1 + src/packages/swiperitem/index.ts | 1 + src/packages/timedetail/index.taro.ts | 1 + src/packages/timedetail/index.ts | 1 + 53 files changed, 116 insertions(+), 70 deletions(-) diff --git a/src/packages/address/address.taro.tsx b/src/packages/address/address.taro.tsx index 3cad6a55f7..601ee3d6e3 100644 --- a/src/packages/address/address.taro.tsx +++ b/src/packages/address/address.taro.tsx @@ -10,7 +10,7 @@ import Popup from '@/packages/popup/index.taro' import { ExistRender } from './existRender.taro' import { CustomRender } from './customRender.taro' import { useConfig } from '@/packages/configprovider/index.taro' -import { AddressList } from './types' +import { AddressList, AddressRef } from './types' import { CascaderOption, CascaderOptionKey, @@ -20,11 +20,6 @@ import { import { ComponentDefaults } from '@/utils/typings' import { usePropsValue } from '@/hooks/use-props-value' -type AddressRef = { - open: () => void - close: () => void -} - export interface AddressProps extends CascaderProps { visible: boolean defaultVisible: boolean diff --git a/src/packages/address/address.tsx b/src/packages/address/address.tsx index eeead6d081..01b5e84444 100644 --- a/src/packages/address/address.tsx +++ b/src/packages/address/address.tsx @@ -9,7 +9,7 @@ import Popup from '@/packages/popup' import { CustomRender } from './customRender' import { ExistRender } from './existRender' import { useConfig } from '@/packages/configprovider' -import { AddressList } from './types' +import { AddressList, AddressRef } from './types' import { CascaderOption, CascaderOptionKey, @@ -19,11 +19,6 @@ import { import { ComponentDefaults } from '@/utils/typings' import { usePropsValue } from '@/hooks/use-props-value' -type AddressRef = { - open: () => void - close: () => void -} - export interface AddressProps extends CascaderProps { visible: boolean defaultVisible: boolean diff --git a/src/packages/address/index.taro.ts b/src/packages/address/index.taro.ts index 77b1e2119b..ebf01c910c 100644 --- a/src/packages/address/index.taro.ts +++ b/src/packages/address/index.taro.ts @@ -1,4 +1,5 @@ import { Address } from './address.taro' -export type { AddressProps } from './address.taro' +export type { AddressProps, AddressRef } from './address.taro' +export type { AddressList } from './types' export default Address diff --git a/src/packages/address/index.ts b/src/packages/address/index.ts index f98d6e1a68..6a05caf8de 100644 --- a/src/packages/address/index.ts +++ b/src/packages/address/index.ts @@ -1,5 +1,6 @@ import { Address } from './address' -export type { AddressProps } from './address' +export type { AddressProps, AddressRef } from './address' +export type { AddressList } from './types' export default Address diff --git a/src/packages/address/types.ts b/src/packages/address/types.ts index 94c120549b..2ada11eb80 100644 --- a/src/packages/address/types.ts +++ b/src/packages/address/types.ts @@ -13,6 +13,11 @@ export interface CloseCallBackData extends Regions { addressStr: string } +export type AddressRef = { + open: () => void + close: () => void +} + export interface ResultData { data: CloseCallBackData | AddressList type: string diff --git a/src/packages/calendar/index.taro.ts b/src/packages/calendar/index.taro.ts index 27162ba7d5..9eeed7bb9d 100644 --- a/src/packages/calendar/index.taro.ts +++ b/src/packages/calendar/index.taro.ts @@ -1,5 +1,11 @@ import { Calendar } from './calendar.taro' -export type { CalendarDay, CalendarMonthInfo, CalendarType } from './types' +export type { + CalendarDay, + CalendarMonthInfo, + CalendarType, + CalendarValue, + CalendarRef, +} from './types' export type { CalendarProps } from './calendar.taro' export default Calendar diff --git a/src/packages/calendar/index.ts b/src/packages/calendar/index.ts index 9d47f5be1b..e75299bab7 100644 --- a/src/packages/calendar/index.ts +++ b/src/packages/calendar/index.ts @@ -1,5 +1,11 @@ import { Calendar } from './calendar' -export type { CalendarDay, CalendarMonthInfo, CalendarType } from './types' +export type { + CalendarDay, + CalendarMonthInfo, + CalendarType, + CalendarValue, + CalendarRef, +} from './types' export type { CalendarProps } from './calendar' export default Calendar diff --git a/src/packages/circleprogress/circleprogress.taro.tsx b/src/packages/circleprogress/circleprogress.taro.tsx index cc7b3c9b84..d955dd0565 100644 --- a/src/packages/circleprogress/circleprogress.taro.tsx +++ b/src/packages/circleprogress/circleprogress.taro.tsx @@ -2,14 +2,9 @@ import React, { useEffect, useRef, FunctionComponent } from 'react' import classNames from 'classnames' import { View } from '@tarojs/components' import { isObject } from '@/utils' - import { BasicComponent, ComponentDefaults } from '@/utils/typings' import { useForceUpdate } from '@/hooks/use-force-update' -export interface Color { - [key: string]: string -} - export interface CircleProgressProps extends BasicComponent { percent: string | number strokeWidth?: string | number diff --git a/src/packages/circleprogress/circleprogress.tsx b/src/packages/circleprogress/circleprogress.tsx index a7f7d6e478..e7207f4857 100644 --- a/src/packages/circleprogress/circleprogress.tsx +++ b/src/packages/circleprogress/circleprogress.tsx @@ -1,12 +1,8 @@ import React, { FunctionComponent } from 'react' import classNames from 'classnames' import { isObject } from '@/utils' - import { BasicComponent, ComponentDefaults } from '@/utils/typings' -export interface Color { - [key: string]: string -} export interface CircleProgressProps extends BasicComponent { percent: string | number strokeWidth?: string | number diff --git a/src/packages/form/index.taro.ts b/src/packages/form/index.taro.ts index 093d5218c8..5e080d08bc 100644 --- a/src/packages/form/index.taro.ts +++ b/src/packages/form/index.taro.ts @@ -4,10 +4,13 @@ import { FormItem } from '../formitem/formitem.taro' import { FormInstance } from './types' import { useForm } from '@/packages/form/useform.taro' +export type { FormProps } from './form.taro' export type { FormItemRuleWithoutValidator, FormInstance, FormFieldEntity, + NamePath, + Store, } from './types' type CompoundedComponent = React.ForwardRefExoticComponent< diff --git a/src/packages/form/index.ts b/src/packages/form/index.ts index 6563f8a986..73bfcce80d 100644 --- a/src/packages/form/index.ts +++ b/src/packages/form/index.ts @@ -4,10 +4,13 @@ import { FormItem } from '../formitem/formitem' import { FormInstance } from './types' import { useForm } from '@/packages/form/useform' +export type { FormProps } from './form' export type { FormItemRuleWithoutValidator, FormInstance, FormFieldEntity, + NamePath, + Store, } from './types' type CompoundedComponent = React.ForwardRefExoticComponent< diff --git a/src/packages/formitem/index.taro.ts b/src/packages/formitem/index.taro.ts index 6ff89d8c1f..9bfecba6d1 100644 --- a/src/packages/formitem/index.taro.ts +++ b/src/packages/formitem/index.taro.ts @@ -1,4 +1,5 @@ import { FormItem } from './formitem.taro' +export type { FormItemProps } from './formitem.taro' export type { FormItemRule } from './types' export default FormItem diff --git a/src/packages/formitem/index.ts b/src/packages/formitem/index.ts index e89ae97472..684fb247e1 100644 --- a/src/packages/formitem/index.ts +++ b/src/packages/formitem/index.ts @@ -1,4 +1,5 @@ import { FormItem } from './formitem' +export type { FormItemProps } from './formitem' export type { FormItemRule } from './types' export default FormItem diff --git a/src/packages/indicator/index.taro.ts b/src/packages/indicator/index.taro.ts index fbe731e46c..b0e1c739fe 100644 --- a/src/packages/indicator/index.taro.ts +++ b/src/packages/indicator/index.taro.ts @@ -1,4 +1,8 @@ import { Indicator } from './indicator.taro' -export type { IndicatorProps } from './indicator.taro' +export type { + IndicatorProps, + IndicatorColor, + IndicatorType, +} from './indicator.taro' export default Indicator diff --git a/src/packages/indicator/index.ts b/src/packages/indicator/index.ts index 70c3ef01fa..601aec7849 100644 --- a/src/packages/indicator/index.ts +++ b/src/packages/indicator/index.ts @@ -1,4 +1,4 @@ import { Indicator } from './indicator' -export type { IndicatorProps } from './indicator' +export type { IndicatorProps, IndicatorColor, IndicatorType } from './indicator' export default Indicator diff --git a/src/packages/infiniteloading/index.taro.ts b/src/packages/infiniteloading/index.taro.ts index 0bb22e32ca..88a0e063ea 100644 --- a/src/packages/infiniteloading/index.taro.ts +++ b/src/packages/infiniteloading/index.taro.ts @@ -1,4 +1,5 @@ import { InfiniteLoading } from './infiniteloading.taro' export type { InfiniteLoadingProps } from './infiniteloading.taro' +export type { InfiniteLoadingType } from './types' export default InfiniteLoading diff --git a/src/packages/input/index.taro.ts b/src/packages/input/index.taro.ts index 1fe9284e37..9f8b66ad20 100644 --- a/src/packages/input/index.taro.ts +++ b/src/packages/input/index.taro.ts @@ -1,9 +1,9 @@ import { Input } from './input.taro' export type { - InputProps, InputAlign, - InputFormatTrigger, + InputProps, InputConfirmType, + InputFormatTrigger, } from './input.taro' export default Input diff --git a/src/packages/input/index.ts b/src/packages/input/index.ts index 60a8928f9e..3f26e5fdd5 100644 --- a/src/packages/input/index.ts +++ b/src/packages/input/index.ts @@ -5,5 +5,6 @@ export type { InputAlign, InputProps, InputConfirmType, + InputFormatTrigger, } from './input' export default Input diff --git a/src/packages/loading/index.taro.ts b/src/packages/loading/index.taro.ts index 90c1964c25..65ee243a17 100644 --- a/src/packages/loading/index.taro.ts +++ b/src/packages/loading/index.taro.ts @@ -1,4 +1,9 @@ import { Loading } from './loading.taro' -export type { LoadingProps, LoadingType, LoadingDirection } from './types' +export type { + LoadingRef, + LoadingProps, + LoadingType, + LoadingDirection, +} from './types' export default Loading diff --git a/src/packages/loading/index.ts b/src/packages/loading/index.ts index 39dfb20a91..115d6e009e 100644 --- a/src/packages/loading/index.ts +++ b/src/packages/loading/index.ts @@ -1,4 +1,9 @@ import { Loading } from './loading' -export type { LoadingProps, LoadingType, LoadingDirection } from './types' +export type { + LoadingProps, + LoadingType, + LoadingDirection, + LoadingRef, +} from './types' export default Loading diff --git a/src/packages/lottie/index.taro.ts b/src/packages/lottie/index.taro.ts index 6c070ddf0d..05a44df2cc 100644 --- a/src/packages/lottie/index.taro.ts +++ b/src/packages/lottie/index.taro.ts @@ -3,6 +3,8 @@ import { Lottie as LottieWeb } from './web.taro' import { Lottie as LottieMp } from './mp.taro' import { LottieProps } from './types' +export type { LottieProps } from './types' + let implementation if (process.env.TARO_ENV === 'h5') { // @ts-ignore diff --git a/src/packages/menu/menu.taro.tsx b/src/packages/menu/menu.taro.tsx index 3d48431813..57133422aa 100644 --- a/src/packages/menu/menu.taro.tsx +++ b/src/packages/menu/menu.taro.tsx @@ -8,7 +8,7 @@ import React, { import classNames from 'classnames' import { ArrowDown, ArrowUp } from '@nutui/icons-react-taro' import { View } from '@tarojs/components' -import { OptionItem, MenuItem } from '@/packages/menuitem/menuitem.taro' +import { MenuOptionItem, MenuItem } from '@/packages/menuitem/menuitem.taro' import { BasicComponent, ComponentDefaults } from '@/utils/typings' export type MenuTriggerType = 'NORMAL' | 'REF' @@ -140,7 +140,7 @@ export const Menu: FunctionComponent> & { direction, } = child.props const selected = options?.filter( - (option: OptionItem) => + (option: MenuOptionItem) => option.value === (value !== undefined ? value : defaultValue) ) const finallyTitle = () => { diff --git a/src/packages/menu/menu.tsx b/src/packages/menu/menu.tsx index 5e0d8c1783..f1bd16819e 100644 --- a/src/packages/menu/menu.tsx +++ b/src/packages/menu/menu.tsx @@ -7,7 +7,7 @@ import React, { } from 'react' import classNames from 'classnames' import { ArrowDown, ArrowUp } from '@nutui/icons-react' -import { OptionItem, MenuItem } from '@/packages/menuitem/menuitem' +import { MenuOptionItem, MenuItem } from '@/packages/menuitem/menuitem' import { BasicComponent, ComponentDefaults } from '@/utils/typings' export type MenuTriggerType = 'NORMAL' | 'REF' @@ -140,7 +140,7 @@ export const Menu: FunctionComponent> & { direction, } = child.props const selected = options?.filter( - (option: OptionItem) => + (option: MenuOptionItem) => option.value === (value !== undefined ? value : defaultValue) ) const finallyTitle = () => { diff --git a/src/packages/menuitem/index.taro.ts b/src/packages/menuitem/index.taro.ts index 17e8c4a109..c0bb498322 100644 --- a/src/packages/menuitem/index.taro.ts +++ b/src/packages/menuitem/index.taro.ts @@ -1,4 +1,4 @@ import { MenuItem } from './menuitem.taro' -export type { MenuItemProps } from './menuitem.taro' +export type { MenuItemProps, MenuOptionItem } from './menuitem.taro' export default MenuItem diff --git a/src/packages/menuitem/index.ts b/src/packages/menuitem/index.ts index 1d96cb6a1a..720712d1c1 100644 --- a/src/packages/menuitem/index.ts +++ b/src/packages/menuitem/index.ts @@ -1,4 +1,4 @@ import { MenuItem } from './menuitem' -export type { MenuItemProps } from './menuitem' +export type { MenuItemProps, MenuOptionItem } from './menuitem' export default MenuItem diff --git a/src/packages/menuitem/menuitem.taro.tsx b/src/packages/menuitem/menuitem.taro.tsx index 563baf3c31..2d50724292 100644 --- a/src/packages/menuitem/menuitem.taro.tsx +++ b/src/packages/menuitem/menuitem.taro.tsx @@ -19,7 +19,7 @@ import { getRectByTaro } from '@/utils/get-rect-by-taro' import { BasicComponent, ComponentDefaults } from '@/utils/typings' import { usePropsValue } from '@/hooks/use-props-value' -export interface OptionItem { +export interface MenuOptionItem { text: string value: string | number } @@ -27,7 +27,7 @@ export interface OptionItem { export interface MenuItemProps extends BasicComponent { title: React.ReactNode titleIcon: React.ReactNode - options: OptionItem[] + options: MenuOptionItem[] disabled: boolean columns: number icon: React.ReactNode @@ -50,7 +50,7 @@ const defaultProps = { closeOnClickAway: true, activeTitleClass: '', inactiveTitleClass: '', - onChange: (value: OptionItem) => undefined, + onChange: (value: MenuOptionItem) => undefined, } as MenuItemProps export const MenuItem = forwardRef((props: Partial, ref) => { const { @@ -141,7 +141,7 @@ export const MenuItem = forwardRef((props: Partial, ref) => { parent.updateTitle(text, index) } } - const handleClick = (item: OptionItem) => { + const handleClick = (item: MenuOptionItem) => { parent.toggleMenuItem(index) setTitle(item.text) setValue(item.value) diff --git a/src/packages/menuitem/menuitem.tsx b/src/packages/menuitem/menuitem.tsx index 3139f44bab..7f8ccafad8 100644 --- a/src/packages/menuitem/menuitem.tsx +++ b/src/packages/menuitem/menuitem.tsx @@ -17,7 +17,7 @@ import { BasicComponent, ComponentDefaults } from '@/utils/typings' import { usePropsValue } from '@/hooks/use-props-value' import { getScrollParent } from '@/utils/get-scroll-parent' -export interface OptionItem { +export interface MenuOptionItem { text: string value: string | number } @@ -25,7 +25,7 @@ export interface OptionItem { export interface MenuItemProps extends BasicComponent { title: React.ReactNode titleIcon: React.ReactNode - options: OptionItem[] + options: MenuOptionItem[] disabled: boolean columns: number icon: React.ReactNode @@ -48,7 +48,7 @@ const defaultProps = { closeOnClickAway: true, activeTitleClass: '', inactiveTitleClass: '', - onChange: (value: OptionItem) => undefined, + onChange: (value: MenuOptionItem) => undefined, } as MenuItemProps export const MenuItem = forwardRef((props: Partial, ref) => { const { @@ -124,7 +124,7 @@ export const MenuItem = forwardRef((props: Partial, ref) => { parent.updateTitle(text, index) } } - const handleClick = (item: OptionItem) => { + const handleClick = (item: MenuOptionItem) => { parent.toggleMenuItem(index) setTitle(item.text) setValue(item.value) diff --git a/src/packages/noticebar/index.taro.ts b/src/packages/noticebar/index.taro.ts index 3d0c26744c..07f21e7f8b 100644 --- a/src/packages/noticebar/index.taro.ts +++ b/src/packages/noticebar/index.taro.ts @@ -1,4 +1,5 @@ import { NoticeBar } from './noticebar.taro' export type { NoticeBarProps } from './noticebar.taro' +export type { NoticeBarAlign } from './types' export default NoticeBar diff --git a/src/packages/popup/index.taro.ts b/src/packages/popup/index.taro.ts index c2c6dcfdf0..afb5af60a2 100644 --- a/src/packages/popup/index.taro.ts +++ b/src/packages/popup/index.taro.ts @@ -1,4 +1,5 @@ import { Popup } from './popup.taro' +export type { PopupPosition } from './types' export type { PopupProps, CloseIconPosition, Teleport } from './types.taro' export default Popup diff --git a/src/packages/popup/index.ts b/src/packages/popup/index.ts index cfcb4daa9e..230245b5ff 100644 --- a/src/packages/popup/index.ts +++ b/src/packages/popup/index.ts @@ -1,4 +1,9 @@ import { Popup } from './popup' -export type { PopupProps, CloseIconPosition, Teleport } from './types' +export type { + PopupProps, + CloseIconPosition, + Teleport, + PopupPosition, +} from './types' export default Popup diff --git a/src/packages/popup/types.ts b/src/packages/popup/types.ts index 061328d0f1..1f699ed677 100644 --- a/src/packages/popup/types.ts +++ b/src/packages/popup/types.ts @@ -2,7 +2,13 @@ import React, { ReactNode } from 'react' import { OverlayProps } from '@/packages/overlay/types' export type Teleport = HTMLElement | (() => HTMLElement) | null -export type Position = 'top' | 'bottom' | 'left' | 'right' | 'center' | 'none' +export type PopupPosition = + | 'top' + | 'bottom' + | 'left' + | 'right' + | 'center' + | 'none' export type CloseIconPosition = | 'top-left' | 'top-right' @@ -10,7 +16,7 @@ export type CloseIconPosition = | 'bottom-right' export interface PopupProps extends OverlayProps { - position: Position + position: PopupPosition transition: string overlayStyle: React.CSSProperties overlayClassName: string diff --git a/src/packages/sidebar/index.taro.ts b/src/packages/sidebar/index.taro.ts index e7d26db3b8..b47e99f289 100644 --- a/src/packages/sidebar/index.taro.ts +++ b/src/packages/sidebar/index.taro.ts @@ -1,5 +1,5 @@ import { SideBar } from './sidebar.taro' -export type { SideBarProps } from './types' +export type { SideBarProps, SideBarItemProps } from './types' export default SideBar diff --git a/src/packages/sidebar/index.ts b/src/packages/sidebar/index.ts index 105927bf4b..be2d64767b 100644 --- a/src/packages/sidebar/index.ts +++ b/src/packages/sidebar/index.ts @@ -1,4 +1,4 @@ import { SideBar } from './sidebar' -export type { SideBarProps } from './types' +export type { SideBarProps, SideBarItemProps } from './types' export default SideBar diff --git a/src/packages/space/index.taro.ts b/src/packages/space/index.taro.ts index dbc8bc29e4..45d608c8d4 100644 --- a/src/packages/space/index.taro.ts +++ b/src/packages/space/index.taro.ts @@ -1,3 +1,4 @@ import { Space } from './space.taro' +export type { SpaceProps } from './space.taro' export default Space diff --git a/src/packages/space/index.ts b/src/packages/space/index.ts index 69188b0df5..990308cb38 100644 --- a/src/packages/space/index.ts +++ b/src/packages/space/index.ts @@ -1,3 +1,4 @@ import { Space } from './space' +export type { SpaceProps } from './space' export default Space diff --git a/src/packages/step/index.taro.ts b/src/packages/step/index.taro.ts index 319475f85e..1527890eef 100644 --- a/src/packages/step/index.taro.ts +++ b/src/packages/step/index.taro.ts @@ -1,3 +1,4 @@ import { Step } from './step.taro' +export type { StepProps } from './step.taro' export default Step diff --git a/src/packages/step/index.ts b/src/packages/step/index.ts index a44384a56a..7c1091620b 100644 --- a/src/packages/step/index.ts +++ b/src/packages/step/index.ts @@ -1,3 +1,4 @@ import { Step } from './step' +export type { StepProps } from './step' export default Step diff --git a/src/packages/swipe/demos/h5/demo4.tsx b/src/packages/swipe/demos/h5/demo4.tsx index fa12e48e95..8e438d040e 100644 --- a/src/packages/swipe/demos/h5/demo4.tsx +++ b/src/packages/swipe/demos/h5/demo4.tsx @@ -1,8 +1,8 @@ import React, { useRef } from 'react' -import { Button, Cell, Space, Swipe, SwipeInstance } from '@nutui/nutui-react' +import { Button, Cell, Space, Swipe, SwipeRef } from '@nutui/nutui-react' const App = () => { - const openRef = useRef(null) + const openRef = useRef(null) return ( <> { - const closeRef = useRef(null) + const closeRef = useRef(null) return ( <> { const [showDialog, setShowDialog] = useState(false) - const refDom = useRef(null) + const refDom = useRef(null) const pRef = useRef('left') const beforeClose = (postion: string) => { pRef.current = postion diff --git a/src/packages/swipe/demos/taro/demo4.tsx b/src/packages/swipe/demos/taro/demo4.tsx index feb467353a..60234a2293 100644 --- a/src/packages/swipe/demos/taro/demo4.tsx +++ b/src/packages/swipe/demos/taro/demo4.tsx @@ -1,10 +1,10 @@ import React, { useRef } from 'react' -import { Button, Space, Swipe, SwipeInstance } from '@nutui/nutui-react-taro' +import { Button, Space, Swipe, SwipeRef } from '@nutui/nutui-react-taro' import { Text, View } from '@tarojs/components' import pxTransform from '@/utils/px-transform' const App = () => { - const openRef = useRef(null) + const openRef = useRef(null) return ( <> { - const closeRef = useRef(null) + const closeRef = useRef(null) return ( <> { const [showDialog, setShowDialog] = useState(false) - const refDom = useRef(null) + const refDom = useRef(null) const pRef = useRef('left') const beforeClose = (postion: string) => { pRef.current = postion diff --git a/src/packages/swipe/index.taro.ts b/src/packages/swipe/index.taro.ts index 65e353a5ec..782f4e643b 100644 --- a/src/packages/swipe/index.taro.ts +++ b/src/packages/swipe/index.taro.ts @@ -1,4 +1,4 @@ import { Swipe } from './swipe.taro' -export type { SwipeProps, SwipeInstance, SwipeSide } from './swipe.taro' +export type { SwipeProps, SwipeRef, SwipeSide } from './swipe.taro' export default Swipe diff --git a/src/packages/swipe/index.ts b/src/packages/swipe/index.ts index 3abb462fa6..d08319741e 100644 --- a/src/packages/swipe/index.ts +++ b/src/packages/swipe/index.ts @@ -1,4 +1,4 @@ import { Swipe } from './swipe' -export type { SwipeProps, SwipeInstance, SwipeSide } from './swipe' +export type { SwipeProps, SwipeRef, SwipeSide } from './swipe' export default Swipe diff --git a/src/packages/swipe/swipe.taro.tsx b/src/packages/swipe/swipe.taro.tsx index dfa64570ba..de1a39b7a8 100644 --- a/src/packages/swipe/swipe.taro.tsx +++ b/src/packages/swipe/swipe.taro.tsx @@ -27,7 +27,7 @@ function preventDefault(event: any, isStopPropagation?: boolean): void { } } -export interface SwipeInstance { +export interface SwipeRef { open: (side: SwipeSide) => void close: () => void } @@ -67,7 +67,7 @@ const defaultProps = { name: '', } as SwipeProps export const Swipe = forwardRef< - SwipeInstance, + SwipeRef, Partial & Omit< React.HTMLAttributes, diff --git a/src/packages/swipe/swipe.tsx b/src/packages/swipe/swipe.tsx index 6046305bd3..3b10df20c4 100644 --- a/src/packages/swipe/swipe.tsx +++ b/src/packages/swipe/swipe.tsx @@ -25,7 +25,7 @@ function preventDefault( event.stopPropagation() } } -export interface SwipeInstance { +export interface SwipeRef { open: (side: SwipeSide) => void close: () => void } @@ -62,7 +62,7 @@ const defaultProps = { name: '', } as SwipeProps export const Swipe = forwardRef< - SwipeInstance, + SwipeRef, Partial & Omit< React.HTMLAttributes, diff --git a/src/packages/swiper/index.ts b/src/packages/swiper/index.ts index f0ac038293..db4e13f1e5 100644 --- a/src/packages/swiper/index.ts +++ b/src/packages/swiper/index.ts @@ -4,7 +4,7 @@ import SwiperItem from '@/packages/swiperitem' import { SwiperRef } from '@/packages/swiper/types' export type { SwiperProps } from './swiper' -export type { SwiperRef } from './types' +export type { SwiperRef, SwiperDirection } from './types' type CompoundedComponent = React.ForwardRefExoticComponent< Partial & Omit, 'onChange'> & diff --git a/src/packages/swiper/swiper.taro.tsx b/src/packages/swiper/swiper.taro.tsx index a46b366d2d..e150fa7f53 100644 --- a/src/packages/swiper/swiper.taro.tsx +++ b/src/packages/swiper/swiper.taro.tsx @@ -27,7 +27,6 @@ export interface SwiperProps extends Omit { loop: boolean defaultValue: number onChange: CommonEventFunction - style: CSSProperties } diff --git a/src/packages/swiperitem/index.taro.ts b/src/packages/swiperitem/index.taro.ts index 239b2dbf7e..c670708247 100644 --- a/src/packages/swiperitem/index.taro.ts +++ b/src/packages/swiperitem/index.taro.ts @@ -1,3 +1,4 @@ import { SwiperItem } from './swiperitem.taro' +export type { SwiperItemProps } from './swiperitem.taro' export default SwiperItem diff --git a/src/packages/swiperitem/index.ts b/src/packages/swiperitem/index.ts index d29e48c509..2e7344d115 100644 --- a/src/packages/swiperitem/index.ts +++ b/src/packages/swiperitem/index.ts @@ -1,3 +1,4 @@ import { SwiperItem } from './swiperitem' +export type { SwiperItemProps } from './swiperitem' export default SwiperItem diff --git a/src/packages/timedetail/index.taro.ts b/src/packages/timedetail/index.taro.ts index 240e96573e..de30087ac8 100644 --- a/src/packages/timedetail/index.taro.ts +++ b/src/packages/timedetail/index.taro.ts @@ -1,3 +1,4 @@ import { TimeDetail } from './timedetail.taro' +export type { TimeDetailProps } from './timedetail.taro' export default TimeDetail diff --git a/src/packages/timedetail/index.ts b/src/packages/timedetail/index.ts index 57192ba1a4..35b046b63d 100644 --- a/src/packages/timedetail/index.ts +++ b/src/packages/timedetail/index.ts @@ -1,3 +1,4 @@ import { TimeDetail } from './timedetail' +export type { TimeDetailProps } from './timedetail' export default TimeDetail From d4be00a3b4ae8be996f81f14fdc89765c50e216e Mon Sep 17 00:00:00 2001 From: oasis Date: Wed, 26 Feb 2025 17:02:47 +0800 Subject: [PATCH 02/10] =?UTF-8?q?fix:=20=E5=A2=9E=E5=8A=A0=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E7=9A=84=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/packages/address/index.taro.ts | 4 ++-- src/packages/address/index.ts | 4 ++-- src/packages/sidebar/index.taro.ts | 2 +- src/packages/sidebar/index.ts | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/packages/address/index.taro.ts b/src/packages/address/index.taro.ts index ebf01c910c..239d8ec40c 100644 --- a/src/packages/address/index.taro.ts +++ b/src/packages/address/index.taro.ts @@ -1,5 +1,5 @@ import { Address } from './address.taro' -export type { AddressProps, AddressRef } from './address.taro' -export type { AddressList } from './types' +export type { AddressProps } from './address.taro' +export type { AddressList, AddressRef } from './types' export default Address diff --git a/src/packages/address/index.ts b/src/packages/address/index.ts index 6a05caf8de..64663d676b 100644 --- a/src/packages/address/index.ts +++ b/src/packages/address/index.ts @@ -1,6 +1,6 @@ import { Address } from './address' -export type { AddressProps, AddressRef } from './address' -export type { AddressList } from './types' +export type { AddressProps } from './address' +export type { AddressList, AddressRef } from './types' export default Address diff --git a/src/packages/sidebar/index.taro.ts b/src/packages/sidebar/index.taro.ts index b47e99f289..e7d26db3b8 100644 --- a/src/packages/sidebar/index.taro.ts +++ b/src/packages/sidebar/index.taro.ts @@ -1,5 +1,5 @@ import { SideBar } from './sidebar.taro' -export type { SideBarProps, SideBarItemProps } from './types' +export type { SideBarProps } from './types' export default SideBar diff --git a/src/packages/sidebar/index.ts b/src/packages/sidebar/index.ts index be2d64767b..105927bf4b 100644 --- a/src/packages/sidebar/index.ts +++ b/src/packages/sidebar/index.ts @@ -1,4 +1,4 @@ import { SideBar } from './sidebar' -export type { SideBarProps, SideBarItemProps } from './types' +export type { SideBarProps } from './types' export default SideBar From 70b37435ea9fb35b2df8a790ab3f8db6bfd27199 Mon Sep 17 00:00:00 2001 From: oasis Date: Thu, 27 Feb 2025 13:11:05 +0800 Subject: [PATCH 03/10] feat: update spec --- src/types/base/actionsheet.ts | 14 ++++++ src/types/base/animate.ts | 22 +++++++++ src/types/base/audio.ts | 16 ++++++ src/types/base/avatar.ts | 28 +++++++++++ src/types/base/avatarcropper.ts | 15 ++++++ src/types/base/backtop.ts | 10 ++++ src/types/base/badge.ts | 15 ++++++ src/types/base/barrage.ts | 10 ++++ src/types/base/baseatom.ts | 34 +++++++++++++ src/types/base/baseprops.ts | 4 ++ src/types/base/button.ts | 18 +++++++ src/types/base/calendar.ts | 83 ++++++++++++++++++++++++++++++++ src/types/base/calendarcard.ts | 39 +++++++++++++++ src/types/base/card.ts | 15 ++++++ src/types/base/cascader.ts | 0 src/types/base/cell.ts | 21 ++++++++ src/types/base/checkbox.ts | 43 +++++++++++++++++ src/types/base/circleprogress.ts | 12 +++++ src/types/base/col.ts | 11 +++++ src/types/base/collapse.ts | 26 ++++++++++ src/types/base/configprovider.ts | 8 +++ src/types/base/countdown.ts | 29 +++++++++++ src/types/base/countup.ts | 9 ++++ src/types/base/locales.ts | 4 ++ 24 files changed, 486 insertions(+) create mode 100644 src/types/base/actionsheet.ts create mode 100644 src/types/base/animate.ts create mode 100644 src/types/base/audio.ts create mode 100644 src/types/base/avatar.ts create mode 100644 src/types/base/avatarcropper.ts create mode 100644 src/types/base/backtop.ts create mode 100644 src/types/base/badge.ts create mode 100644 src/types/base/barrage.ts create mode 100644 src/types/base/baseatom.ts create mode 100644 src/types/base/baseprops.ts create mode 100644 src/types/base/button.ts create mode 100644 src/types/base/calendar.ts create mode 100644 src/types/base/calendarcard.ts create mode 100644 src/types/base/card.ts create mode 100644 src/types/base/cascader.ts create mode 100644 src/types/base/cell.ts create mode 100644 src/types/base/checkbox.ts create mode 100644 src/types/base/circleprogress.ts create mode 100644 src/types/base/col.ts create mode 100644 src/types/base/collapse.ts create mode 100644 src/types/base/configprovider.ts create mode 100644 src/types/base/countdown.ts create mode 100644 src/types/base/countup.ts create mode 100644 src/types/base/locales.ts diff --git a/src/types/base/actionsheet.ts b/src/types/base/actionsheet.ts new file mode 100644 index 0000000000..3829f22a24 --- /dev/null +++ b/src/types/base/actionsheet.ts @@ -0,0 +1,14 @@ +import { ReactNode } from 'react' +import { BaseProps } from './baseprops' + +export type ActionSheetOption = { [key: string]: T } + +export interface BaseActionSheet extends BaseProps { + visible: boolean + description: ReactNode + options: ActionSheetOption[] + optionKey: ActionSheetOption + cancelText: ReactNode + onCancel: () => void + onSelect: (item: ActionSheetOption, index: number) => void +} diff --git a/src/types/base/animate.ts b/src/types/base/animate.ts new file mode 100644 index 0000000000..16c4ea7872 --- /dev/null +++ b/src/types/base/animate.ts @@ -0,0 +1,22 @@ +import { BaseProps } from './baseprops' + +export type AnimateType = + | 'shake' + | 'ripple' + | 'breath' + | 'float' + | 'slide-right' + | 'slide-left' + | 'slide-top' + | 'slide-bottom' + | 'jump' + | 'twinkle' + | 'flicker' +export type AnimateAction = 'initial' | 'click' + +export interface BaseAnimate extends BaseProps { + type: AnimateType + action: AnimateAction + loop: boolean + onClick: (event: any) => void +} diff --git a/src/types/base/audio.ts b/src/types/base/audio.ts new file mode 100644 index 0000000000..2c61e8f362 --- /dev/null +++ b/src/types/base/audio.ts @@ -0,0 +1,16 @@ +import { BaseProps } from './baseprops' + +export interface BaseAudio extends BaseProps { + src: string + muted: boolean + autoPlay: boolean + loop: boolean + preload: string + type: string + onBack: (event: any) => void + onForward: (event: any) => void + onPause: (event: any) => void + onEnd: (event: any) => void + onMute: (event: any) => void + onCanPlay: (event: any) => void +} diff --git a/src/types/base/avatar.ts b/src/types/base/avatar.ts new file mode 100644 index 0000000000..84c9be707c --- /dev/null +++ b/src/types/base/avatar.ts @@ -0,0 +1,28 @@ +import { BaseProps } from './baseprops' +import { PositionX } from './baseatom' + +export type AvatarShape = 'round' | 'square' + +export interface BaseAvatar extends BaseProps { + size: string + icon: React.ReactNode + shape: AvatarShape + background: string + color: string + fit: 'contain' | 'cover' | 'fill' | 'none' | 'scale-down' + src: string + alt: string + onClick: (e: any) => void + onError: () => void +} + +export interface BaseAvatarGroup extends BaseProps { + maxContent: string + max: string | number + maxBackground: string + maxColor: string + size: 'large' | 'normal' | 'small' + shape: AvatarShape + gap: string + level: PositionX +} diff --git a/src/types/base/avatarcropper.ts b/src/types/base/avatarcropper.ts new file mode 100644 index 0000000000..62ee8b01ab --- /dev/null +++ b/src/types/base/avatarcropper.ts @@ -0,0 +1,15 @@ +import { BaseProps } from './baseprops' + +export type AvatarCropperToolbarPosition = 'top' | 'bottom' +export type AvatarCropperShape = 'square' | 'round' + +export interface BaseAvatarCropper extends BaseProps { + maxZoom: number + space: number + toolbar: React.ReactNode[] + toolbarPosition: AvatarCropperToolbarPosition + editText: React.ReactNode + shape: AvatarCropperShape + onConfirm: (e: any) => void + onCancel: () => void +} diff --git a/src/types/base/backtop.ts b/src/types/base/backtop.ts new file mode 100644 index 0000000000..d861027643 --- /dev/null +++ b/src/types/base/backtop.ts @@ -0,0 +1,10 @@ +import { BaseProps } from './baseprops' + +export interface BaseBacktop extends BaseProps { + zIndex: number + tabbarHeight: number + target: string + threshold: number + duration: number + onClick: (event: any) => void +} diff --git a/src/types/base/badge.ts b/src/types/base/badge.ts new file mode 100644 index 0000000000..ee8230b26d --- /dev/null +++ b/src/types/base/badge.ts @@ -0,0 +1,15 @@ +import { BaseProps } from './baseprops' +import { SimpleValue } from '@/types/base/baseatom' + +export type BadgeFill = 'solid' | 'outline' +export type BadgeDotSize = 'small' | 'normal' | 'large' + +export interface BaseBadge extends BaseProps { + value: React.ReactNode + dot: boolean + max: number + top: SimpleValue + right: SimpleValue + fill: BadgeFill + size: BadgeDotSize +} diff --git a/src/types/base/barrage.ts b/src/types/base/barrage.ts new file mode 100644 index 0000000000..f371f2ad6f --- /dev/null +++ b/src/types/base/barrage.ts @@ -0,0 +1,10 @@ +import { BaseProps } from './baseprops' + +export interface BaseBarrage extends BaseProps { + list: Array + interval: number + loop: boolean + duration: number + rows: number + gapY: number +} diff --git a/src/types/base/baseatom.ts b/src/types/base/baseatom.ts new file mode 100644 index 0000000000..4e2e490829 --- /dev/null +++ b/src/types/base/baseatom.ts @@ -0,0 +1,34 @@ +export type SimpleValue = string | number +export type SimpleValues = string[] | number[] + +export type UIType = + | 'default' + | 'primary' + | 'info' + | 'success' + | 'warning' + | 'danger' +export type UISize = 'xlarge' | 'large' | 'normal' | 'small' | 'mini' +export type UIRound = 'square' | 'round' +export type UIFill = 'solid' | 'outline' | 'dashed' | 'none' +export type FlexAlign = 'flex-start' | 'center' | 'flex-end' | 'baseline' +export type UILayout = 'row' | 'col' + +export type Align = 'left' | 'center' | 'right' +export type VAlign = 'top' | 'middle' | 'bottom' + +export type Direction = 'horizontal' | 'vertical' + +export type PositionX = 'left' | 'right' +export type PositionY = 'top' | 'bottom' +export type Position = PositionX | PositionY +export type EdgePosition = + | 'top-left' + | 'top-right' + | 'bottom-left' + | 'bottom-right' + | 'left-top' + | 'left-bottom' + | 'right-top' + | 'right-bottom' +export type FullPosition = Position | EdgePosition diff --git a/src/types/base/baseprops.ts b/src/types/base/baseprops.ts new file mode 100644 index 0000000000..1b5a8c2a8e --- /dev/null +++ b/src/types/base/baseprops.ts @@ -0,0 +1,4 @@ +export interface BaseProps { + className: string + style: string +} diff --git a/src/types/base/button.ts b/src/types/base/button.ts new file mode 100644 index 0000000000..fe53d36a36 --- /dev/null +++ b/src/types/base/button.ts @@ -0,0 +1,18 @@ +import { BaseProps } from './baseprops' +import { UIFill, UIRound, UISize, UIType } from '@/types/base/baseatom' + +export interface BaseButton extends BaseProps { + color: string + shape: UIRound + type: UIType + size: UISize + fill: UIFill + block: boolean + loading: boolean + disabled: boolean + icon: React.ReactNode + rightIcon: React.ReactNode + id: string + nativeType: 'submit' | 'reset' | 'button' + onClick: (e: any) => void +} diff --git a/src/types/base/calendar.ts b/src/types/base/calendar.ts new file mode 100644 index 0000000000..ce900a6fdd --- /dev/null +++ b/src/types/base/calendar.ts @@ -0,0 +1,83 @@ +import { ReactNode } from 'react' +import { SimpleValue } from '@/types/base/baseatom' +import { BaseProps } from '@/types/base/baseprops' + +export interface CalendarDay { + day: SimpleValue + type: string +} + +export interface CalendarMonthInfo { + curData: string[] | string + title: string + monthData: CalendarDay[] + cssHeight: number + scrollTop: number +} + +export type CalendarValue = string | string[] + +export type CalendarType = 'single' | 'range' | 'multiple' | 'week' + +export type CalendarRef = { + scrollToDate: (date: string) => void +} + +export interface BaseCalendar { + type: CalendarType + autoBackfill: boolean + popup: boolean + visible: boolean + title: string + defaultValue: string | string[] + startDate: string + endDate: string + showToday: boolean + startText: ReactNode + endText: ReactNode + confirmText: ReactNode + showTitle: boolean + showSubTitle: boolean + scrollAnimation: boolean + firstDayOfWeek: number + closeIcon: ReactNode + disableDate: (date: CalendarDay) => boolean + renderHeaderButtons: () => string | JSX.Element + renderBottomButton: () => string | JSX.Element + renderDay: (date: CalendarDay) => string | JSX.Element + renderDayTop: (date: CalendarDay) => string | JSX.Element + renderDayBottom: (date: CalendarDay) => string | JSX.Element + onClose: () => void + onConfirm: (param: string) => void + onDayClick: (data: string) => void + onPageChange: (param: string) => void +} + +export interface BaseCalendarItem extends BaseProps { + type: CalendarType + autoBackfill: boolean + popup: boolean + title: string + value: CalendarValue + defaultValue: CalendarValue + startDate: CalendarValue + endDate: CalendarValue + showToday: boolean + startText: ReactNode + endText: ReactNode + confirmText: ReactNode + showTitle: boolean + showSubTitle: boolean + scrollAnimation: boolean + firstDayOfWeek: number + disableDate: (date: CalendarDay) => boolean + renderHeaderButtons: () => string | JSX.Element + renderBottomButton: () => string | JSX.Element + renderDay: (date: CalendarDay) => string | JSX.Element + renderDayTop: (date: CalendarDay) => string | JSX.Element + renderDayBottom: (date: CalendarDay) => string | JSX.Element + onConfirm: (data: string) => void + onUpdate: () => void + onDayClick: (data: string) => void + onPageChange: (data: any) => void +} diff --git a/src/types/base/calendarcard.ts b/src/types/base/calendarcard.ts new file mode 100644 index 0000000000..fe591d8c24 --- /dev/null +++ b/src/types/base/calendarcard.ts @@ -0,0 +1,39 @@ +import { ReactNode } from 'react' +import { BaseProps } from '@/types/base/baseprops' + +export interface CalendarCardDay { + // 上个月 | 当月 | 下个月 + type: 'prev' | 'current' | 'next' + year: number + month: number + date: number +} + +export interface CalendarCardMonth { + year: number + month: number +} + +export type CalendarCardValue = Date | Date[] | null + +export type CalendarCardRef = { + jump: (step: number) => void + jumpTo: (year: number, month: number) => void +} + +export interface BaseCalendarCard extends BaseProps { + // 日视图-选择一个日期 | 日视图-选择多个日期 | 日视图-选择范围 | 周视图-选择某一周 + type: 'single' | 'multiple' | 'range' | 'week' + value: CalendarCardValue + defaultValue: CalendarCardValue + firstDayOfWeek: number // 0-6 + startDate: Date + endDate: Date + disableDay: (day: CalendarCardDay) => boolean + renderDay: (day: CalendarCardDay) => ReactNode + renderDayTop: (day: CalendarCardDay) => ReactNode + renderDayBottom: (day: CalendarCardDay) => ReactNode + onDayClick: (day: CalendarCardDay) => void + onPageChange: (data: CalendarCardMonth) => void + onChange: (value: CalendarCardValue) => void +} diff --git a/src/types/base/card.ts b/src/types/base/card.ts new file mode 100644 index 0000000000..9e7b302103 --- /dev/null +++ b/src/types/base/card.ts @@ -0,0 +1,15 @@ +import { BaseProps } from '@/types/base/baseprops' + +export interface BaseCard extends BaseProps { + src: string + title: string + price: string + vipPrice: string + shopDescription: string + delivery: string + shopName: string + description: React.ReactNode + tag: React.ReactNode + priceTag: React.ReactNode + extra: React.ReactNode +} diff --git a/src/types/base/cascader.ts b/src/types/base/cascader.ts new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/types/base/cell.ts b/src/types/base/cell.ts new file mode 100644 index 0000000000..cc904a0588 --- /dev/null +++ b/src/types/base/cell.ts @@ -0,0 +1,21 @@ +import { ReactNode } from 'react' +import { BaseProps } from '@/types/base/baseprops' +import { FlexAlign } from '@/types/base/baseatom' + +export interface BaseCell extends BaseProps { + title: ReactNode + description: ReactNode + extra: ReactNode + radius: string | number + align: FlexAlign + clickable: boolean + isLast: boolean + onClick: (event: any) => void +} + +export interface BaseCellGroup extends BaseProps { + title: ReactNode + description: ReactNode + children: ReactNode + divider: boolean +} diff --git a/src/types/base/checkbox.ts b/src/types/base/checkbox.ts new file mode 100644 index 0000000000..c3bfa039d8 --- /dev/null +++ b/src/types/base/checkbox.ts @@ -0,0 +1,43 @@ +import { ReactNode } from 'react' +import { BaseProps } from '@/types/base/baseprops' +import { PositionX } from '@/types/base/baseatom' + +export type CheckboxLimit = 'max' | 'min' +export type CheckboxDirection = 'horizontal' | 'vertical' +export type CheckboxShape = 'button' | 'round' + +export interface CheckboxGroupOption { + label: string + value: string + disabled: boolean + onChange: (state: boolean, label: string) => void +} + +export interface BaseCheckbox extends BaseProps { + checked: boolean + disabled: boolean + defaultChecked: boolean + shape: CheckboxShape + labelPosition: PositionX + icon: ReactNode + activeIcon: ReactNode + indeterminateIcon: ReactNode + value: string | number + indeterminate: boolean + label: ReactNode + onChange: (value: boolean) => void +} + +export interface BaseCheckboxGroup extends BaseProps { + disabled: boolean + value: string[] + defaultValue: string[] + list: boolean + max: number | undefined + min: number | undefined + labelPosition: PositionX + direction: CheckboxDirection + options: CheckboxGroupOption[] + onChange: (value: string[]) => void + onLimit: (type: CheckboxLimit) => void +} diff --git a/src/types/base/circleprogress.ts b/src/types/base/circleprogress.ts new file mode 100644 index 0000000000..24d19dcad9 --- /dev/null +++ b/src/types/base/circleprogress.ts @@ -0,0 +1,12 @@ +import { BaseProps } from '@/types/base/baseprops' +import { SimpleValue } from '@/types/base/baseatom' + +export interface BaseCircleProgress extends BaseProps { + percent: SimpleValue + strokeWidth: SimpleValue + radius: SimpleValue + strokeLinecap: 'butt' | 'round' | 'square' | 'inherit' + color: Record | string + background: string + clockwise: boolean +} diff --git a/src/types/base/col.ts b/src/types/base/col.ts new file mode 100644 index 0000000000..68472fb322 --- /dev/null +++ b/src/types/base/col.ts @@ -0,0 +1,11 @@ +import { BaseProps } from '@/types/base/baseprops' +import { SimpleValue, UILayout } from '@/types/base/baseatom' + +export interface BaseCol extends BaseProps { + span: SimpleValue + offset: SimpleValue + gutter: SimpleValue + isFirst: boolean + isLast: boolean + onClick: (e: any, type: UILayout) => void +} diff --git a/src/types/base/collapse.ts b/src/types/base/collapse.ts new file mode 100644 index 0000000000..fac8306d6d --- /dev/null +++ b/src/types/base/collapse.ts @@ -0,0 +1,26 @@ +import { ReactNode } from 'react' +import { BaseProps } from '@/types/base/baseprops' + +export type CollapseActiveName = Array | string + +export interface BaseCollapse extends BaseProps { + activeName: CollapseActiveName + defaultActiveName: CollapseActiveName + accordion: boolean + expandIcon: ReactNode + rotate: number + onChange: ( + activeName: CollapseActiveName, + name: string, + isOpen: boolean + ) => void +} + +export interface BaseCollapseItem extends BaseProps { + title: ReactNode + name: string + expandIcon: ReactNode + disabled: boolean + rotate: number + extra: ReactNode +} diff --git a/src/types/base/configprovider.ts b/src/types/base/configprovider.ts new file mode 100644 index 0000000000..9b2f09e6ba --- /dev/null +++ b/src/types/base/configprovider.ts @@ -0,0 +1,8 @@ +import { BaseProps } from '@/types/base/baseprops' +import { BaseLang, PageDirection } from './locales' + +export interface ConfigProviderProps extends BaseProps { + locale: BaseLang + direction: PageDirection + theme: Record +} diff --git a/src/types/base/countdown.ts b/src/types/base/countdown.ts new file mode 100644 index 0000000000..aac1ce7672 --- /dev/null +++ b/src/types/base/countdown.ts @@ -0,0 +1,29 @@ +import { BaseProps } from '@/types/base/baseprops' + +export type CountDownType = 'default' | 'primary' | 'text' + +export interface CountDownTime { + d: number + h: number + m: number + s: number + ms: number +} + +export interface CountDownProps extends BaseProps { + type: CountDownType + paused: boolean + startTime: number + endTime: number + remainingTime: number + millisecond: boolean + format: string + autoStart: boolean + time: number + destroy: boolean + onEnd: () => void + onPaused: (restTime: number) => void + onRestart: (restTime: number) => void + onUpdate: (restTime: string | CountDownTime) => void + children: React.ReactNode +} diff --git a/src/types/base/countup.ts b/src/types/base/countup.ts new file mode 100644 index 0000000000..175f1c3abd --- /dev/null +++ b/src/types/base/countup.ts @@ -0,0 +1,9 @@ +import { BaseProps } from './baseprops' + +export interface BaseCountUp extends BaseProps { + length: number + value: string + delay: number + duration: number + thousands: boolean +} diff --git a/src/types/base/locales.ts b/src/types/base/locales.ts new file mode 100644 index 0000000000..a8e7e18b94 --- /dev/null +++ b/src/types/base/locales.ts @@ -0,0 +1,4 @@ +export interface BaseLang { + [key: string]: string | BaseLang +} +export type PageDirection = 'ltr' | 'rtl' | undefined From e6397497df88ad783ddea8c8764c9f00f0ed05de Mon Sep 17 00:00:00 2001 From: oasis Date: Thu, 27 Feb 2025 20:59:57 +0800 Subject: [PATCH 04/10] feat: update spec --- src/packages/actionsheet/actionsheet.taro.tsx | 20 +- src/packages/actionsheet/actionsheet.tsx | 20 +- src/packages/actionsheet/index.taro.ts | 5 +- src/packages/actionsheet/index.ts | 5 +- src/packages/animate/animate.taro.tsx | 29 +- src/packages/animate/animate.tsx | 15 +- src/packages/animate/index.taro.ts | 7 +- src/packages/animate/index.ts | 7 +- src/packages/animate/types.ts | 13 - .../animatingnumbers/countup.taro.tsx | 16 +- src/packages/animatingnumbers/countup.tsx | 14 +- src/packages/audio/audio.taro.tsx | 34 +- src/packages/audio/audio.tsx | 23 +- src/packages/audio/doc.taro.md | 10 +- src/packages/audio/index.taro.ts | 2 +- src/packages/audio/index.ts | 2 +- src/packages/avatar/avatar.taro.tsx | 38 +- src/packages/avatar/avatar.tsx | 34 +- src/packages/avatar/index.taro.ts | 2 +- src/packages/avatar/index.ts | 2 +- .../avatarcropper/avatarcropper.taro.tsx | 30 +- src/packages/avatarcropper/avatarcropper.tsx | 32 +- src/packages/avatarcropper/index.taro.ts | 6 +- src/packages/avatarcropper/index.ts | 6 +- src/packages/avatargroup/avatargroup.taro.tsx | 21 +- src/packages/avatargroup/avatargroup.tsx | 22 +- src/packages/avatargroup/index.taro.ts | 1 + src/packages/avatargroup/index.ts | 1 + src/packages/backtop/backtop.taro.tsx | 32 +- src/packages/backtop/backtop.tsx | 23 +- src/packages/backtop/index.taro.ts | 2 +- src/packages/backtop/index.ts | 2 +- src/packages/hoverbutton/hoverbutton.taro.tsx | 19 +- src/packages/hoverbutton/hoverbutton.tsx | 19 +- src/packages/hoverbutton/index.taro.ts | 2 +- src/packages/hoverbutton/index.ts | 2 +- .../hoverbuttonitem/hoverbuttonitem.taro.tsx | 16 +- .../hoverbuttonitem/hoverbuttonitem.tsx | 14 +- src/packages/hoverbuttonitem/index.taro.ts | 2 +- src/packages/hoverbuttonitem/index.ts | 2 +- src/packages/image/image.taro.tsx | 24 +- src/packages/image/image.tsx | 39 +- src/packages/image/index.taro.ts | 2 +- src/packages/image/index.ts | 2 +- .../imagepreview/imagepreview.taro.tsx | 60 +-- src/packages/imagepreview/imagepreview.tsx | 69 +--- src/packages/imagepreview/index.taro.ts | 4 +- src/packages/imagepreview/index.ts | 4 +- src/packages/indicator/demos/h5/demo1.tsx | 2 +- src/packages/indicator/demos/h5/demo4.tsx | 2 +- src/packages/indicator/demos/h5/demo5.tsx | 2 +- src/packages/indicator/demos/taro/demo1.tsx | 2 +- src/packages/indicator/demos/taro/demo4.tsx | 2 +- src/packages/indicator/demos/taro/demo5.tsx | 2 +- src/packages/indicator/doc.en-US.md | 2 +- src/packages/indicator/doc.md | 2 +- src/packages/indicator/doc.taro.md | 2 +- src/packages/indicator/doc.zh-TW.md | 2 +- src/packages/indicator/index.taro.ts | 4 +- src/packages/indicator/index.ts | 6 +- src/packages/indicator/indicator.taro.tsx | 18 +- src/packages/indicator/indicator.tsx | 22 +- src/packages/infiniteloading/index.taro.ts | 3 +- src/packages/infiniteloading/index.ts | 3 +- .../infiniteloading/infiniteloading.taro.tsx | 37 +- .../infiniteloading/infiniteloading.tsx | 33 +- src/packages/infiniteloading/types.ts | 1 - src/packages/input/index.taro.ts | 6 +- src/packages/input/index.ts | 7 +- src/packages/input/input.taro.tsx | 370 ++++++++---------- src/packages/input/input.tsx | 42 +- src/packages/inputnumber/index.taro.ts | 2 +- src/packages/inputnumber/index.ts | 2 +- src/packages/inputnumber/inputnumber.taro.tsx | 54 +-- src/packages/inputnumber/inputnumber.tsx | 51 +-- src/packages/loading/index.taro.ts | 7 +- src/packages/loading/index.ts | 5 +- src/packages/loading/loading.taro.tsx | 6 +- src/packages/loading/loading.tsx | 6 +- src/packages/loading/types.ts | 16 - src/packages/lottie/index.taro.ts | 6 +- src/packages/lottie/index.ts | 2 +- src/packages/lottie/mp.taro.tsx | 4 +- src/packages/lottie/web.taro.tsx | 4 +- src/packages/lottie/web.tsx | 4 +- src/packages/menu/index.taro.ts | 6 +- src/packages/menu/index.ts | 6 +- src/packages/menu/menu.taro.tsx | 31 +- src/packages/menu/menu.tsx | 31 +- src/packages/menuitem/index.taro.ts | 5 +- src/packages/menuitem/index.ts | 2 +- src/packages/menuitem/menuitem.taro.tsx | 31 +- src/packages/menuitem/menuitem.tsx | 29 +- src/packages/navbar/index.taro.ts | 2 +- src/packages/navbar/index.ts | 2 +- src/packages/navbar/navbar.taro.tsx | 22 +- src/packages/navbar/navbar.tsx | 20 +- src/packages/noticebar/index.taro.ts | 6 +- src/packages/noticebar/index.ts | 6 +- src/packages/noticebar/noticebar.taro.tsx | 37 +- src/packages/noticebar/noticebar.tsx | 37 +- src/packages/notify/index.taro.ts | 3 +- src/packages/notify/index.ts | 2 +- src/packages/notify/notify.taro.tsx | 22 +- src/packages/notify/notify.tsx | 14 +- src/packages/numberkeyboard/index.taro.ts | 2 +- src/packages/numberkeyboard/index.ts | 2 +- .../numberkeyboard/numberkeyboard.taro.tsx | 21 +- .../numberkeyboard/numberkeyboard.tsx | 21 +- src/packages/overlay/index.taro.ts | 3 +- src/packages/overlay/index.ts | 2 +- src/packages/overlay/overlay.taro.tsx | 11 +- src/packages/overlay/overlay.tsx | 6 +- src/packages/overlay/types.taro.ts | 6 - src/packages/pagination/index.taro.ts | 2 +- src/packages/pagination/index.ts | 2 +- src/packages/pagination/pagination.taro.tsx | 23 +- src/packages/pagination/pagination.tsx | 23 +- src/packages/picker/index.taro.ts | 2 +- src/packages/picker/index.ts | 2 +- src/packages/picker/picker.taro.tsx | 52 +-- src/packages/picker/picker.tsx | 8 +- src/packages/picker/types.ts | 6 - src/packages/pickerview/index.taro.ts | 6 +- src/packages/pickerview/index.ts | 6 +- src/packages/pickerview/pickerroller.taro.tsx | 6 +- src/packages/pickerview/pickerroller.tsx | 6 +- src/packages/pickerview/pickerview.taro.tsx | 10 +- src/packages/pickerview/pickerview.tsx | 10 +- src/packages/pickerview/types.ts | 38 -- src/packages/popover/popover.taro.tsx | 26 +- src/packages/popover/popover.tsx | 26 +- src/packages/popup/index.taro.ts | 7 +- src/packages/popup/index.ts | 7 +- src/packages/popup/popup.taro.tsx | 12 +- src/packages/popup/popup.tsx | 12 +- src/packages/popup/types.taro.ts | 12 - src/packages/popup/types.ts | 37 -- src/packages/price/index.taro.ts | 6 +- src/packages/price/index.ts | 6 +- src/packages/price/price.taro.tsx | 6 +- src/packages/price/price.tsx | 6 +- src/packages/price/types.ts | 14 - src/types/base/actionsheet.ts | 19 +- .../base/{countup.ts => animatingnumbers.ts} | 0 src/types/base/avatar.ts | 11 +- src/types/base/avatarcropper.ts | 15 +- src/types/base/backtop.ts | 2 +- src/types/base/badge.ts | 5 +- src/types/base/baseatom.ts | 14 +- src/types/base/baseprops.ts | 8 +- src/types/base/button.ts | 7 +- src/types/base/calendar.ts | 4 +- src/types/base/calendarcard.ts | 2 +- src/types/base/card.ts | 11 +- src/types/base/cell.ts | 4 +- src/types/base/checkbox.ts | 4 +- src/types/base/circleprogress.ts | 4 +- src/types/base/col.ts | 11 - src/types/base/collapse.ts | 2 +- src/types/base/configprovider.ts | 4 +- src/types/base/countdown.ts | 7 +- src/types/base/datepicker.ts | 0 src/types/base/dialog.ts | 0 src/types/base/divider.ts | 7 + src/types/base/drag.ts | 18 + src/types/base/elevator.ts | 28 ++ src/types/base/ellipsis.ts | 18 + src/types/base/empty.ts | 28 ++ src/types/base/fixednav.ts | 27 ++ src/types/base/form.ts | 0 src/types/base/grid.ts | 24 ++ src/types/base/hoverbutton.ts | 12 + src/types/base/image.ts | 26 ++ src/types/base/imagepreview.ts | 44 +++ src/types/base/indicator.ts | 13 + src/types/base/infiniteloading.ts | 20 + src/types/base/input.ts | 31 ++ src/types/base/inputnumber.ts | 23 ++ src/types/base/layout.ts | 20 + src/types/base/loading.ts | 15 + src/types/base/lottie.ts | 11 + src/types/base/menu.ts | 39 ++ src/types/base/navbar.ts | 16 + src/types/base/noticebar.ts | 26 ++ src/types/base/notify.ts | 10 + src/types/base/numberkeyboard.ts | 16 + .../types.ts => types/base/overlay.ts} | 9 +- src/types/base/pagination.ts | 16 + src/types/base/picker.ts | 71 ++++ src/types/base/popover.ts | 31 ++ src/types/base/popup.ts | 28 ++ src/types/base/price.ts | 16 + src/types/base/progress.ts | 12 + src/types/base/pulltorefresh.ts | 21 + src/types/base/radio.ts | 34 ++ src/types/base/range.ts | 24 ++ src/types/base/rate.ts | 22 ++ src/types/base/resultpage.ts | 27 ++ src/types/base/safearea.ts | 6 + src/types/base/searchbar.ts | 25 ++ src/types/base/segmented.ts | 18 + src/types/base/shortpassword.ts | 26 ++ src/types/base/sidebar.ts | 20 + src/types/base/sidenavbar.ts | 42 ++ src/types/base/signature.ts | 13 + src/types/base/skeleton.ts | 12 + src/types/base/space.ts | 9 + src/types/base/step.ts | 16 + src/types/base/sticky.ts | 10 + src/types/base/swipe.ts | 35 ++ src/types/base/swiper.ts | 25 ++ src/types/base/swtich.ts | 11 + src/types/base/tabbar.ts | 22 ++ src/types/base/table.ts | 25 ++ src/types/base/tabs.ts | 31 ++ src/types/base/tag.ts | 16 + src/types/base/textarea.ts | 18 + src/types/base/timeselect.ts | 41 ++ src/types/base/toast.ts | 19 + src/types/base/tour.ts | 32 ++ src/types/base/trendarrow.ts | 16 + src/types/base/uploader.ts | 51 +++ src/types/base/video.ts | 19 + src/types/base/virtuallist.ts | 15 + src/types/base/watermark.ts | 23 ++ src/types/h5/actionsheet.ts | 4 + src/types/h5/animate.ts | 5 + src/types/h5/animatingnumbers.ts | 3 + src/types/h5/audio.ts | 15 + src/types/h5/avatar.ts | 7 + src/types/h5/avatarcropper.ts | 3 + src/types/h5/backtop.ts | 4 + src/types/h5/badge.ts | 3 + src/types/h5/barrage.ts | 3 + src/types/h5/baseatom.ts | 3 + src/types/h5/baseprops.ts | 3 + src/types/h5/button.ts | 3 + src/types/h5/calendar.ts | 3 + src/types/h5/calendarcard.ts | 3 + src/types/h5/card.ts | 3 + src/types/h5/cascader.ts | 3 + src/types/h5/cell.ts | 3 + src/types/h5/checkbox.ts | 3 + src/types/h5/circleprogress.ts | 3 + src/types/h5/collapse.ts | 3 + src/types/h5/configprovider.ts | 3 + src/types/h5/countdown.ts | 3 + src/types/h5/datepicker.ts | 3 + src/types/h5/dialog.ts | 3 + src/types/h5/divider.ts | 3 + src/types/h5/drag.ts | 3 + src/types/h5/elevator.ts | 3 + src/types/h5/ellipsis.ts | 3 + src/types/h5/empty.ts | 3 + src/types/h5/fixednav.ts | 3 + src/types/h5/form.ts | 3 + src/types/h5/grid.ts | 3 + src/types/h5/hoverbutton.ts | 8 + src/types/h5/image.ts | 3 + src/types/h5/imagepreview.ts | 3 + src/types/h5/indicator.ts | 3 + src/types/h5/infiniteloading.ts | 3 + src/types/h5/input.ts | 10 + src/types/h5/inputnumber.ts | 15 + src/types/h5/layout.ts | 4 + src/types/h5/loading.ts | 3 + src/types/h5/locales.ts | 3 + src/types/h5/lottie.ts | 5 + src/types/h5/menu.ts | 4 + src/types/h5/navbar.ts | 5 + src/types/h5/noticebar.ts | 3 + src/types/h5/notify.ts | 3 + src/types/h5/numberkeyboard.ts | 5 + src/types/h5/overlay.ts | 5 + src/types/h5/pagination.ts | 3 + src/types/h5/picker.ts | 6 + src/types/h5/popover.ts | 4 + src/types/h5/popup.ts | 7 + src/types/h5/price.ts | 3 + src/types/h5/progress.ts | 3 + src/types/h5/pulltorefresh.ts | 3 + src/types/h5/radio.ts | 3 + src/types/h5/range.ts | 3 + src/types/h5/rate.ts | 3 + src/types/h5/resultpage.ts | 3 + src/types/h5/safearea.ts | 3 + src/types/h5/searchbar.ts | 3 + src/types/h5/segmented.ts | 3 + src/types/h5/shortpassword.ts | 3 + src/types/h5/sidebar.ts | 3 + src/types/h5/sidenavbar.ts | 3 + src/types/h5/signature.ts | 3 + src/types/h5/skeleton.ts | 3 + src/types/h5/space.ts | 3 + src/types/h5/step.ts | 3 + src/types/h5/sticky.ts | 3 + src/types/h5/swipe.ts | 3 + src/types/h5/swiper.ts | 3 + src/types/h5/swtich.ts | 3 + src/types/h5/tabbar.ts | 3 + src/types/h5/table.ts | 3 + src/types/h5/tabs.ts | 3 + src/types/h5/tag.ts | 3 + src/types/h5/textarea.ts | 3 + src/types/h5/timeselect.ts | 3 + src/types/h5/toast.ts | 3 + src/types/h5/tour.ts | 3 + src/types/h5/trendarrow.ts | 3 + src/types/h5/uploader.ts | 3 + src/types/h5/video.ts | 3 + src/types/h5/virtuallist.ts | 3 + src/types/h5/watermark.ts | 3 + .../fixstringliteralunion.ts} | 0 src/types/helpers/index.ts | 2 + src/types/helpers/override.ts | 3 + src/types/index.ts | 341 ++++++++++++++++ src/types/taro/actionsheet.ts | 4 + src/types/taro/animate.ts | 6 + src/types/taro/animatingnumbers.ts | 3 + src/types/taro/audio.ts | 24 ++ src/types/taro/avatar.ts | 9 + src/types/taro/avatarcropper.ts | 10 + src/types/taro/backtop.ts | 11 + src/types/taro/badge.ts | 3 + src/types/taro/barrage.ts | 3 + src/types/taro/baseatom.ts | 3 + src/types/taro/baseprops.ts | 3 + src/types/taro/button.ts | 3 + src/types/taro/calendar.ts | 3 + src/types/taro/calendarcard.ts | 3 + src/types/taro/card.ts | 3 + src/types/taro/cascader.ts | 3 + src/types/taro/cell.ts | 3 + src/types/taro/checkbox.ts | 3 + src/types/taro/circleprogress.ts | 3 + src/types/taro/collapse.ts | 3 + src/types/taro/configprovider.ts | 3 + src/types/taro/countdown.ts | 3 + src/types/taro/datepicker.ts | 3 + src/types/taro/dialog.ts | 3 + src/types/taro/divider.ts | 3 + src/types/taro/drag.ts | 3 + src/types/taro/elevator.ts | 3 + src/types/taro/ellipsis.ts | 3 + src/types/taro/empty.ts | 3 + src/types/taro/fixednav.ts | 3 + src/types/taro/form.ts | 3 + src/types/taro/grid.ts | 3 + src/types/taro/hoverbutton.ts | 9 + src/types/taro/image.ts | 6 + src/types/taro/imagepreview.ts | 7 + src/types/taro/indicator.ts | 3 + src/types/taro/infiniteloading.ts | 6 + src/types/taro/input.ts | 19 + src/types/taro/inputnumber.ts | 21 + src/types/taro/layout.ts | 3 + src/types/taro/loading.ts | 3 + src/types/taro/locales.ts | 3 + src/types/taro/lottie.ts | 5 + src/types/taro/menu.ts | 4 + src/types/taro/navbar.ts | 6 + src/types/taro/noticebar.ts | 3 + src/types/taro/notify.ts | 5 + src/types/taro/numberkeyboard.ts | 5 + src/types/taro/overlay.ts | 6 + src/types/taro/pagination.ts | 3 + src/types/taro/picker.ts | 6 + src/types/taro/popover.ts | 4 + src/types/taro/popup.ts | 7 + src/types/taro/price.ts | 3 + src/types/taro/progress.ts | 3 + src/types/taro/pulltorefresh.ts | 3 + src/types/taro/radio.ts | 3 + src/types/taro/range.ts | 3 + src/types/taro/rate.ts | 3 + src/types/taro/resultpage.ts | 3 + src/types/taro/safearea.ts | 3 + src/types/taro/searchbar.ts | 3 + src/types/taro/segmented.ts | 3 + src/types/taro/shortpassword.ts | 3 + src/types/taro/sidebar.ts | 3 + src/types/taro/sidenavbar.ts | 3 + src/types/taro/signature.ts | 3 + src/types/taro/skeleton.ts | 3 + src/types/taro/space.ts | 3 + src/types/taro/step.ts | 3 + src/types/taro/sticky.ts | 3 + src/types/taro/swipe.ts | 3 + src/types/taro/swiper.ts | 3 + src/types/taro/swtich.ts | 3 + src/types/taro/tabbar.ts | 3 + src/types/taro/table.ts | 3 + src/types/taro/tabs.ts | 3 + src/types/taro/tag.ts | 3 + src/types/taro/textarea.ts | 3 + src/types/taro/timeselect.ts | 3 + src/types/taro/toast.ts | 3 + src/types/taro/tour.ts | 3 + src/types/taro/trendarrow.ts | 3 + src/types/taro/uploader.ts | 3 + src/types/taro/video.ts | 3 + src/types/taro/virtuallist.ts | 3 + src/types/taro/watermark.ts | 3 + 404 files changed, 3179 insertions(+), 1645 deletions(-) delete mode 100644 src/packages/animate/types.ts delete mode 100644 src/packages/infiniteloading/types.ts delete mode 100644 src/packages/loading/types.ts delete mode 100644 src/packages/overlay/types.taro.ts delete mode 100644 src/packages/picker/types.ts delete mode 100644 src/packages/pickerview/types.ts delete mode 100644 src/packages/popup/types.taro.ts delete mode 100644 src/packages/popup/types.ts delete mode 100644 src/packages/price/types.ts rename src/types/base/{countup.ts => animatingnumbers.ts} (100%) delete mode 100644 src/types/base/col.ts create mode 100644 src/types/base/datepicker.ts create mode 100644 src/types/base/dialog.ts create mode 100644 src/types/base/divider.ts create mode 100644 src/types/base/drag.ts create mode 100644 src/types/base/elevator.ts create mode 100644 src/types/base/ellipsis.ts create mode 100644 src/types/base/empty.ts create mode 100644 src/types/base/fixednav.ts create mode 100644 src/types/base/form.ts create mode 100644 src/types/base/grid.ts create mode 100644 src/types/base/hoverbutton.ts create mode 100644 src/types/base/image.ts create mode 100644 src/types/base/imagepreview.ts create mode 100644 src/types/base/indicator.ts create mode 100644 src/types/base/infiniteloading.ts create mode 100644 src/types/base/input.ts create mode 100644 src/types/base/inputnumber.ts create mode 100644 src/types/base/layout.ts create mode 100644 src/types/base/loading.ts create mode 100644 src/types/base/lottie.ts create mode 100644 src/types/base/menu.ts create mode 100644 src/types/base/navbar.ts create mode 100644 src/types/base/noticebar.ts create mode 100644 src/types/base/notify.ts create mode 100644 src/types/base/numberkeyboard.ts rename src/{packages/overlay/types.ts => types/base/overlay.ts} (51%) create mode 100644 src/types/base/pagination.ts create mode 100644 src/types/base/picker.ts create mode 100644 src/types/base/popover.ts create mode 100644 src/types/base/popup.ts create mode 100644 src/types/base/price.ts create mode 100644 src/types/base/progress.ts create mode 100644 src/types/base/pulltorefresh.ts create mode 100644 src/types/base/radio.ts create mode 100644 src/types/base/range.ts create mode 100644 src/types/base/rate.ts create mode 100644 src/types/base/resultpage.ts create mode 100644 src/types/base/safearea.ts create mode 100644 src/types/base/searchbar.ts create mode 100644 src/types/base/segmented.ts create mode 100644 src/types/base/shortpassword.ts create mode 100644 src/types/base/sidebar.ts create mode 100644 src/types/base/sidenavbar.ts create mode 100644 src/types/base/signature.ts create mode 100644 src/types/base/skeleton.ts create mode 100644 src/types/base/space.ts create mode 100644 src/types/base/step.ts create mode 100644 src/types/base/sticky.ts create mode 100644 src/types/base/swipe.ts create mode 100644 src/types/base/swiper.ts create mode 100644 src/types/base/swtich.ts create mode 100644 src/types/base/tabbar.ts create mode 100644 src/types/base/table.ts create mode 100644 src/types/base/tabs.ts create mode 100644 src/types/base/tag.ts create mode 100644 src/types/base/textarea.ts create mode 100644 src/types/base/timeselect.ts create mode 100644 src/types/base/toast.ts create mode 100644 src/types/base/tour.ts create mode 100644 src/types/base/trendarrow.ts create mode 100644 src/types/base/uploader.ts create mode 100644 src/types/base/video.ts create mode 100644 src/types/base/virtuallist.ts create mode 100644 src/types/base/watermark.ts create mode 100644 src/types/h5/actionsheet.ts create mode 100644 src/types/h5/animate.ts create mode 100644 src/types/h5/animatingnumbers.ts create mode 100644 src/types/h5/audio.ts create mode 100644 src/types/h5/avatar.ts create mode 100644 src/types/h5/avatarcropper.ts create mode 100644 src/types/h5/backtop.ts create mode 100644 src/types/h5/badge.ts create mode 100644 src/types/h5/barrage.ts create mode 100644 src/types/h5/baseatom.ts create mode 100644 src/types/h5/baseprops.ts create mode 100644 src/types/h5/button.ts create mode 100644 src/types/h5/calendar.ts create mode 100644 src/types/h5/calendarcard.ts create mode 100644 src/types/h5/card.ts create mode 100644 src/types/h5/cascader.ts create mode 100644 src/types/h5/cell.ts create mode 100644 src/types/h5/checkbox.ts create mode 100644 src/types/h5/circleprogress.ts create mode 100644 src/types/h5/collapse.ts create mode 100644 src/types/h5/configprovider.ts create mode 100644 src/types/h5/countdown.ts create mode 100644 src/types/h5/datepicker.ts create mode 100644 src/types/h5/dialog.ts create mode 100644 src/types/h5/divider.ts create mode 100644 src/types/h5/drag.ts create mode 100644 src/types/h5/elevator.ts create mode 100644 src/types/h5/ellipsis.ts create mode 100644 src/types/h5/empty.ts create mode 100644 src/types/h5/fixednav.ts create mode 100644 src/types/h5/form.ts create mode 100644 src/types/h5/grid.ts create mode 100644 src/types/h5/hoverbutton.ts create mode 100644 src/types/h5/image.ts create mode 100644 src/types/h5/imagepreview.ts create mode 100644 src/types/h5/indicator.ts create mode 100644 src/types/h5/infiniteloading.ts create mode 100644 src/types/h5/input.ts create mode 100644 src/types/h5/inputnumber.ts create mode 100644 src/types/h5/layout.ts create mode 100644 src/types/h5/loading.ts create mode 100644 src/types/h5/locales.ts create mode 100644 src/types/h5/lottie.ts create mode 100644 src/types/h5/menu.ts create mode 100644 src/types/h5/navbar.ts create mode 100644 src/types/h5/noticebar.ts create mode 100644 src/types/h5/notify.ts create mode 100644 src/types/h5/numberkeyboard.ts create mode 100644 src/types/h5/overlay.ts create mode 100644 src/types/h5/pagination.ts create mode 100644 src/types/h5/picker.ts create mode 100644 src/types/h5/popover.ts create mode 100644 src/types/h5/popup.ts create mode 100644 src/types/h5/price.ts create mode 100644 src/types/h5/progress.ts create mode 100644 src/types/h5/pulltorefresh.ts create mode 100644 src/types/h5/radio.ts create mode 100644 src/types/h5/range.ts create mode 100644 src/types/h5/rate.ts create mode 100644 src/types/h5/resultpage.ts create mode 100644 src/types/h5/safearea.ts create mode 100644 src/types/h5/searchbar.ts create mode 100644 src/types/h5/segmented.ts create mode 100644 src/types/h5/shortpassword.ts create mode 100644 src/types/h5/sidebar.ts create mode 100644 src/types/h5/sidenavbar.ts create mode 100644 src/types/h5/signature.ts create mode 100644 src/types/h5/skeleton.ts create mode 100644 src/types/h5/space.ts create mode 100644 src/types/h5/step.ts create mode 100644 src/types/h5/sticky.ts create mode 100644 src/types/h5/swipe.ts create mode 100644 src/types/h5/swiper.ts create mode 100644 src/types/h5/swtich.ts create mode 100644 src/types/h5/tabbar.ts create mode 100644 src/types/h5/table.ts create mode 100644 src/types/h5/tabs.ts create mode 100644 src/types/h5/tag.ts create mode 100644 src/types/h5/textarea.ts create mode 100644 src/types/h5/timeselect.ts create mode 100644 src/types/h5/toast.ts create mode 100644 src/types/h5/tour.ts create mode 100644 src/types/h5/trendarrow.ts create mode 100644 src/types/h5/uploader.ts create mode 100644 src/types/h5/video.ts create mode 100644 src/types/h5/virtuallist.ts create mode 100644 src/types/h5/watermark.ts rename src/types/{fix-string-literal-union.ts => helpers/fixstringliteralunion.ts} (100%) create mode 100644 src/types/helpers/index.ts create mode 100644 src/types/helpers/override.ts create mode 100644 src/types/index.ts create mode 100644 src/types/taro/actionsheet.ts create mode 100644 src/types/taro/animate.ts create mode 100644 src/types/taro/animatingnumbers.ts create mode 100644 src/types/taro/audio.ts create mode 100644 src/types/taro/avatar.ts create mode 100644 src/types/taro/avatarcropper.ts create mode 100644 src/types/taro/backtop.ts create mode 100644 src/types/taro/badge.ts create mode 100644 src/types/taro/barrage.ts create mode 100644 src/types/taro/baseatom.ts create mode 100644 src/types/taro/baseprops.ts create mode 100644 src/types/taro/button.ts create mode 100644 src/types/taro/calendar.ts create mode 100644 src/types/taro/calendarcard.ts create mode 100644 src/types/taro/card.ts create mode 100644 src/types/taro/cascader.ts create mode 100644 src/types/taro/cell.ts create mode 100644 src/types/taro/checkbox.ts create mode 100644 src/types/taro/circleprogress.ts create mode 100644 src/types/taro/collapse.ts create mode 100644 src/types/taro/configprovider.ts create mode 100644 src/types/taro/countdown.ts create mode 100644 src/types/taro/datepicker.ts create mode 100644 src/types/taro/dialog.ts create mode 100644 src/types/taro/divider.ts create mode 100644 src/types/taro/drag.ts create mode 100644 src/types/taro/elevator.ts create mode 100644 src/types/taro/ellipsis.ts create mode 100644 src/types/taro/empty.ts create mode 100644 src/types/taro/fixednav.ts create mode 100644 src/types/taro/form.ts create mode 100644 src/types/taro/grid.ts create mode 100644 src/types/taro/hoverbutton.ts create mode 100644 src/types/taro/image.ts create mode 100644 src/types/taro/imagepreview.ts create mode 100644 src/types/taro/indicator.ts create mode 100644 src/types/taro/infiniteloading.ts create mode 100644 src/types/taro/input.ts create mode 100644 src/types/taro/inputnumber.ts create mode 100644 src/types/taro/layout.ts create mode 100644 src/types/taro/loading.ts create mode 100644 src/types/taro/locales.ts create mode 100644 src/types/taro/lottie.ts create mode 100644 src/types/taro/menu.ts create mode 100644 src/types/taro/navbar.ts create mode 100644 src/types/taro/noticebar.ts create mode 100644 src/types/taro/notify.ts create mode 100644 src/types/taro/numberkeyboard.ts create mode 100644 src/types/taro/overlay.ts create mode 100644 src/types/taro/pagination.ts create mode 100644 src/types/taro/picker.ts create mode 100644 src/types/taro/popover.ts create mode 100644 src/types/taro/popup.ts create mode 100644 src/types/taro/price.ts create mode 100644 src/types/taro/progress.ts create mode 100644 src/types/taro/pulltorefresh.ts create mode 100644 src/types/taro/radio.ts create mode 100644 src/types/taro/range.ts create mode 100644 src/types/taro/rate.ts create mode 100644 src/types/taro/resultpage.ts create mode 100644 src/types/taro/safearea.ts create mode 100644 src/types/taro/searchbar.ts create mode 100644 src/types/taro/segmented.ts create mode 100644 src/types/taro/shortpassword.ts create mode 100644 src/types/taro/sidebar.ts create mode 100644 src/types/taro/sidenavbar.ts create mode 100644 src/types/taro/signature.ts create mode 100644 src/types/taro/skeleton.ts create mode 100644 src/types/taro/space.ts create mode 100644 src/types/taro/step.ts create mode 100644 src/types/taro/sticky.ts create mode 100644 src/types/taro/swipe.ts create mode 100644 src/types/taro/swiper.ts create mode 100644 src/types/taro/swtich.ts create mode 100644 src/types/taro/tabbar.ts create mode 100644 src/types/taro/table.ts create mode 100644 src/types/taro/tabs.ts create mode 100644 src/types/taro/tag.ts create mode 100644 src/types/taro/textarea.ts create mode 100644 src/types/taro/timeselect.ts create mode 100644 src/types/taro/toast.ts create mode 100644 src/types/taro/tour.ts create mode 100644 src/types/taro/trendarrow.ts create mode 100644 src/types/taro/uploader.ts create mode 100644 src/types/taro/video.ts create mode 100644 src/types/taro/virtuallist.ts create mode 100644 src/types/taro/watermark.ts diff --git a/src/packages/actionsheet/actionsheet.taro.tsx b/src/packages/actionsheet/actionsheet.taro.tsx index fb3ab555cb..3508bff770 100644 --- a/src/packages/actionsheet/actionsheet.taro.tsx +++ b/src/packages/actionsheet/actionsheet.taro.tsx @@ -1,20 +1,10 @@ -import React, { FunctionComponent, ReactNode } from 'react' +import React, { FunctionComponent } from 'react' import { View } from '@tarojs/components' -import Popup, { PopupProps } from '@/packages/popup/index.taro' +import Popup from '@/packages/popup/index.taro' import { ComponentDefaults } from '@/utils/typings' import { mergeProps } from '@/utils/merge-props' +import { ActionSheetOption, TaroActionSheetProps } from '@/types' -export type ActionSheetOption = { [key: string]: T } - -export interface ActionSheetProps extends PopupProps { - visible: boolean - description: ReactNode - options: ActionSheetOption[] - optionKey: ActionSheetOption - cancelText: ReactNode - onCancel: () => void - onSelect: (item: ActionSheetOption, index: number) => void -} const defaultProps = { ...ComponentDefaults, visible: false, @@ -24,9 +14,9 @@ const defaultProps = { cancelText: '', onCancel: () => {}, onSelect: () => {}, -} as unknown as ActionSheetProps +} as unknown as TaroActionSheetProps export const ActionSheet: FunctionComponent< - Partial & + Partial & Omit, 'title' | 'onSelect' | 'onClick'> > = (props) => { const { diff --git a/src/packages/actionsheet/actionsheet.tsx b/src/packages/actionsheet/actionsheet.tsx index d37453b9e9..41904455a9 100644 --- a/src/packages/actionsheet/actionsheet.tsx +++ b/src/packages/actionsheet/actionsheet.tsx @@ -1,19 +1,9 @@ -import React, { FunctionComponent, ReactNode } from 'react' -import Popup, { PopupProps } from '@/packages/popup/index' +import React, { FunctionComponent } from 'react' +import Popup from '@/packages/popup/index' import { ComponentDefaults } from '@/utils/typings' import { mergeProps } from '@/utils/merge-props' +import { ActionSheetOption, WebActionSheetProps } from '@/types' -export type ActionSheetOption = { [key: string]: T } - -export interface ActionSheetProps extends PopupProps { - visible: boolean - description: ReactNode - options: ActionSheetOption[] - optionKey: ActionSheetOption - cancelText: ReactNode - onCancel: () => void - onSelect: (item: ActionSheetOption, index: number) => void -} const defaultProps = { ...ComponentDefaults, visible: false, @@ -23,9 +13,9 @@ const defaultProps = { cancelText: '', onCancel: () => {}, onSelect: () => {}, -} as unknown as ActionSheetProps +} as unknown as WebActionSheetProps export const ActionSheet: FunctionComponent< - Partial & + Partial & Omit, 'title' | 'onSelect'> > = (props) => { const { diff --git a/src/packages/actionsheet/index.taro.ts b/src/packages/actionsheet/index.taro.ts index 92381c5906..c3aec0d13e 100644 --- a/src/packages/actionsheet/index.taro.ts +++ b/src/packages/actionsheet/index.taro.ts @@ -1,5 +1,8 @@ import { ActionSheet } from './actionsheet.taro' -export type { ActionSheetOption, ActionSheetProps } from './actionsheet.taro' +export type { + ActionSheetOption, + TaroActionSheetProps as ActionSheetProps, +} from '@/types' export default ActionSheet diff --git a/src/packages/actionsheet/index.ts b/src/packages/actionsheet/index.ts index 07edce9211..89d0f49437 100644 --- a/src/packages/actionsheet/index.ts +++ b/src/packages/actionsheet/index.ts @@ -1,5 +1,8 @@ import { ActionSheet } from './actionsheet' -export type { ActionSheetOption, ActionSheetProps } from './actionsheet' +export type { + ActionSheetOption, + WebActionSheetProps as ActionSheetProps, +} from '@/types' export default ActionSheet diff --git a/src/packages/animate/animate.taro.tsx b/src/packages/animate/animate.taro.tsx index 88f8524d25..2a4ac325f1 100644 --- a/src/packages/animate/animate.taro.tsx +++ b/src/packages/animate/animate.taro.tsx @@ -1,29 +1,22 @@ -import React, { useState, FunctionComponent } from 'react' +import React, { FunctionComponent, useState } from 'react' import classNames from 'classnames' -import { View, ITouchEvent } from '@tarojs/components' -import { AnimateType, AnimateAction } from './types' -import { BasicComponent, ComponentDefaults } from '@/utils/typings' - -export interface AnimateProps extends BasicComponent { - type: AnimateType - action: AnimateAction - loop: boolean - onClick: (event: React.MouseEvent | ITouchEvent) => void -} +import { ITouchEvent, View } from '@tarojs/components' +import { ComponentDefaults } from '@/utils/typings' +import { TaroAnimateProps } from '@/types' const defaultProps = { ...ComponentDefaults, type: 'shake', action: 'initial', loop: false, - onClick: (event: React.MouseEvent | ITouchEvent) => {}, -} as AnimateProps + onClick: (event) => {}, +} as TaroAnimateProps const classPrefix = 'nut-animate' -export const Animate: FunctionComponent< - Partial & React.HTMLAttributes -> = (props) => { +export const Animate: FunctionComponent> = ( + props +) => { const { className, type, action, loop, onClick, children, style } = { ...defaultProps, ...props, @@ -40,9 +33,7 @@ export const Animate: FunctionComponent< className ) - const handleClick = ( - event: React.MouseEvent | ITouchEvent - ) => { + const handleClick = (event: ITouchEvent) => { setClicked(true) // 如果不是无限循环,清除类名 if (!loop) { diff --git a/src/packages/animate/animate.tsx b/src/packages/animate/animate.tsx index a3264881c5..46ac3e5f5f 100644 --- a/src/packages/animate/animate.tsx +++ b/src/packages/animate/animate.tsx @@ -1,26 +1,19 @@ import React, { useState, FunctionComponent } from 'react' import classNames from 'classnames' -import { AnimateType, AnimateAction } from './types' +import { ComponentDefaults } from '@/utils/typings' +import { WebAnimateProps } from '@/types' -import { BasicComponent, ComponentDefaults } from '@/utils/typings' - -export interface AnimateProps extends BasicComponent { - type: AnimateType - action: AnimateAction - loop: boolean - onClick: (event: React.MouseEvent) => void -} const defaultProps = { ...ComponentDefaults, type: 'shake', action: 'initial', loop: false, onClick: (event: React.MouseEvent) => {}, -} as AnimateProps +} as WebAnimateProps const classPrefix = 'nut-animate' export const Animate: FunctionComponent< - Partial & React.HTMLAttributes + Partial & React.HTMLAttributes > = (props) => { const { className, type, action, loop, onClick, children, ...rest } = { ...defaultProps, diff --git a/src/packages/animate/index.taro.ts b/src/packages/animate/index.taro.ts index 1f795fe571..d3d30daffd 100644 --- a/src/packages/animate/index.taro.ts +++ b/src/packages/animate/index.taro.ts @@ -1,5 +1,8 @@ import { Animate } from './animate.taro' -export type { AnimateType, AnimateAction } from './types' -export type { AnimateProps } from './animate.taro' +export type { + TaroAnimateProps as AnimateProps, + AnimateType, + AnimateAction, +} from '@/types' export default Animate diff --git a/src/packages/animate/index.ts b/src/packages/animate/index.ts index 2fec80d997..c4fa2000e1 100644 --- a/src/packages/animate/index.ts +++ b/src/packages/animate/index.ts @@ -1,5 +1,8 @@ import { Animate } from './animate' -export type { AnimateType, AnimateAction } from './types' -export type { AnimateProps } from './animate' +export type { + WebAnimateProps as AnimateProps, + AnimateType, + AnimateAction, +} from '@/types' export default Animate diff --git a/src/packages/animate/types.ts b/src/packages/animate/types.ts deleted file mode 100644 index 94cbfab579..0000000000 --- a/src/packages/animate/types.ts +++ /dev/null @@ -1,13 +0,0 @@ -export type AnimateType = - | 'shake' - | 'ripple' - | 'breath' - | 'float' - | 'slide-right' - | 'slide-left' - | 'slide-top' - | 'slide-bottom' - | 'jump' - | 'twinkle' - | 'flicker' -export type AnimateAction = 'initial' | 'click' diff --git a/src/packages/animatingnumbers/countup.taro.tsx b/src/packages/animatingnumbers/countup.taro.tsx index 55851c0345..17049af06a 100644 --- a/src/packages/animatingnumbers/countup.taro.tsx +++ b/src/packages/animatingnumbers/countup.taro.tsx @@ -8,16 +8,10 @@ import React, { } from 'react' import { View, Text } from '@tarojs/components' import { createSelectorQuery } from '@tarojs/taro' -import { BasicComponent, ComponentDefaults } from '@/utils/typings' +import { ComponentDefaults } from '@/utils/typings' import { mergeProps } from '@/utils/merge-props' +import { TaroCountUpProps } from '@/types' -export interface CountUpProps extends BasicComponent { - length: number - value: string - delay?: number - duration: number - thousands: boolean -} const defaultProps = { ...ComponentDefaults, length: 0, @@ -25,8 +19,10 @@ const defaultProps = { delay: 300, duration: 1, thousands: false, -} as CountUpProps -export const CountUp: FunctionComponent> = (props) => { +} as TaroCountUpProps +export const CountUp: FunctionComponent> = ( + props +) => { const { length, value, diff --git a/src/packages/animatingnumbers/countup.tsx b/src/packages/animatingnumbers/countup.tsx index 1cdfad58b3..fee59652a9 100644 --- a/src/packages/animatingnumbers/countup.tsx +++ b/src/packages/animatingnumbers/countup.tsx @@ -6,16 +6,10 @@ import React, { useMemo, useRef, } from 'react' -import { BasicComponent, ComponentDefaults } from '@/utils/typings' +import { ComponentDefaults } from '@/utils/typings' import { mergeProps } from '@/utils/merge-props' +import { WebCountUpProps } from '@/types' -export interface CountUpProps extends BasicComponent { - length: number - value: string - delay?: number - duration: number - thousands: boolean -} const defaultProps = { ...ComponentDefaults, length: 0, @@ -23,8 +17,8 @@ const defaultProps = { delay: 300, duration: 1, thousands: false, -} as CountUpProps -export const CountUp: FunctionComponent> = (props) => { +} as WebCountUpProps +export const CountUp: FunctionComponent> = (props) => { const { length, value, diff --git a/src/packages/audio/audio.taro.tsx b/src/packages/audio/audio.taro.tsx index 84410060d7..aee3303550 100644 --- a/src/packages/audio/audio.taro.tsx +++ b/src/packages/audio/audio.taro.tsx @@ -1,37 +1,17 @@ -import React, { - useState, - useRef, - CSSProperties, - FunctionComponent, -} from 'react' - +import React, { useState, useRef, FunctionComponent } from 'react' import { createInnerAudioContext, InnerAudioContext } from '@tarojs/taro' import { Service } from '@nutui/icons-react-taro' import { View } from '@tarojs/components' import Range from '@/packages/range/index.taro' import Button from '@/packages/button/index.taro' import { useConfig } from '@/packages/configprovider/index.taro' -import { BasicComponent, ComponentDefaults } from '@/utils/typings' - -export interface AudioProps extends BasicComponent { - className?: string - style?: CSSProperties - url: string - autoplay?: boolean - loop?: boolean - type: string - onFastBack?: (ctx: InnerAudioContext) => void - onForward?: (ctx: InnerAudioContext) => void - onPause?: any - onPlay?: any - onPlayEnd?: (ctx: InnerAudioContext) => void - onCanPlay?: (ctx: InnerAudioContext) => void -} +import { ComponentDefaults } from '@/utils/typings' +import { TaroAudioProps } from '@/types' const defaultProps = { ...ComponentDefaults, className: '', - url: '', + src: '', style: {}, autoplay: false, loop: false, @@ -42,7 +22,7 @@ const defaultProps = { onPlay: (ctx: InnerAudioContext) => {}, onPlayEnd: (ctx: InnerAudioContext) => {}, onCanPlay: (ctx: InnerAudioContext) => {}, -} as AudioProps +} as TaroAudioProps export const Audio: FunctionComponent< Partial & (React.HTMLAttributes | InnerAudioContext) @@ -51,7 +31,7 @@ export const Audio: FunctionComponent< const { locale } = useConfig() const { className, - url, + src, style, autoplay, loop, @@ -85,7 +65,7 @@ export const Audio: FunctionComponent< const audioRef = useRef(createInnerAudioContext()) const audioCtx = audioRef.current - audioCtx.src = url + audioCtx.src = src audioCtx.autoplay = autoplay || false audioCtx.loop = loop || false audioCtx.onPause(() => { diff --git a/src/packages/audio/audio.tsx b/src/packages/audio/audio.tsx index 1b900095fb..34c2220910 100644 --- a/src/packages/audio/audio.tsx +++ b/src/packages/audio/audio.tsx @@ -5,23 +5,8 @@ import classNames from 'classnames' import Range from '@/packages/range' import Button from '@/packages/button' import { useConfig } from '@/packages/configprovider' - -import { BasicComponent, ComponentDefaults } from '@/utils/typings' - -export interface AudioProps extends BasicComponent { - src: string - muted: boolean - autoPlay: boolean - loop: boolean - preload: string - type: string - onBack: (e: HTMLAudioElement) => void - onForward: (e: HTMLAudioElement) => void - onPause: (e: SyntheticEvent) => void - onEnd: (e: SyntheticEvent) => void - onMute: (e: HTMLAudioElement) => void - onCanPlay: (e: SyntheticEvent) => void -} +import { ComponentDefaults } from '@/utils/typings' +import { WebAudioProps } from '@/types' const defaultProps = { ...ComponentDefaults, @@ -37,9 +22,9 @@ const defaultProps = { onEnd: (e: SyntheticEvent) => {}, onMute: (e: HTMLAudioElement) => {}, onCanPlay: (e: SyntheticEvent) => {}, -} as AudioProps +} as WebAudioProps export const Audio: FunctionComponent< - Partial & React.HTMLAttributes + Partial & React.HTMLAttributes > = (props) => { const { locale } = useConfig() const { diff --git a/src/packages/audio/doc.taro.md b/src/packages/audio/doc.taro.md index 17eb0330e6..fc6290c425 100644 --- a/src/packages/audio/doc.taro.md +++ b/src/packages/audio/doc.taro.md @@ -23,7 +23,7 @@ const App = () => { <>