Skip to content

Commit

Permalink
type(Cascader): export ForwardRefCascaderType from library entry
Browse files Browse the repository at this point in the history
  • Loading branch information
MisterLuffy committed Oct 9, 2023
1 parent 207d659 commit 0a81338
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 19 deletions.
15 changes: 2 additions & 13 deletions components/Cascader/cascader.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import SearchPanel from './panel/search-panel';
import { ConfigContext } from '../ConfigProvider';
import Store from './base/store';
import SelectView, { SelectViewHandle } from '../_class/select-view';
import { CascaderProps, OptionProps, InputValueChangeReason } from './interface';
import { CascaderProps, OptionProps, InputValueChangeReason, CascaderType } from './interface';
import cs from '../_util/classNames';
import useMergeValue from '../_util/hooks/useMergeValue';
import useUpdate from '../_util/hooks/useUpdate';
Expand Down Expand Up @@ -483,20 +483,9 @@ function Cascader<T extends OptionProps>(baseProps: CascaderProps<T>, ref) {
);
}

interface ForwardRefCascaderType
extends React.ForwardRefExoticComponent<
React.PropsWithoutRef<CascaderProps> & React.RefAttributes<SelectViewHandle>
> {
<T = any>(
props: React.PropsWithChildren<CascaderProps<T>> & {
ref?: React.Ref<SelectViewHandle>;
}
): React.ReactElement;
}

const CascaderComponent = forwardRef<SelectViewHandle, CascaderProps<any>>(
Cascader
) as ForwardRefCascaderType;
) as CascaderType;

CascaderComponent.displayName = 'Cascader';

Expand Down
21 changes: 16 additions & 5 deletions components/Cascader/interface.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { ReactNode, CSSProperties } from 'react';
import React, { ReactNode, CSSProperties } from 'react';
import Store from './base/store';
import { TriggerProps } from '../Trigger';
import { SelectViewCommonProps } from '../_class/select-view';
import { NodeProps } from './base/node';
import { VirtualListProps } from '../_class/VirtualList';
import type { NodeProps } from './base/node';
import type { TriggerProps } from '../Trigger';
import type { SelectViewCommonProps, SelectViewHandle } from '../_class/select-view';
import type { VirtualListProps } from '../_class/VirtualList';

/**
* @title Cascader
Expand Down Expand Up @@ -318,3 +318,14 @@ export interface CascaderPanelProps<T> {
next?: ReactNode;
};
}

export interface CascaderType
extends React.ForwardRefExoticComponent<
React.PropsWithoutRef<CascaderProps> & React.RefAttributes<SelectViewHandle>
> {
<T = any>(
props: React.PropsWithChildren<CascaderProps<T>> & {
ref?: React.Ref<SelectViewHandle>;
}
): React.ReactElement;
}
2 changes: 1 addition & 1 deletion components/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ export { default as Card } from './Card';
export type { CarouselProps } from './Carousel/interface';
export { default as Carousel } from './Carousel';

export type { CascaderProps } from './Cascader/interface';
export type { CascaderProps, CascaderType } from './Cascader/interface';
export { default as Cascader } from './Cascader';

export type { CheckboxProps, CheckboxGroupProps } from './Checkbox/interface';
Expand Down

0 comments on commit 0a81338

Please sign in to comment.