Skip to content

Commit

Permalink
Fix(web-react): Fix types in Dropdown #DS-1221
Browse files Browse the repository at this point in the history
  • Loading branch information
curdaj committed May 29, 2024
1 parent 48d3080 commit b6a78d1
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 8 deletions.
13 changes: 7 additions & 6 deletions packages/web-react/src/components/Dropdown/DropdownTrigger.tsx
Original file line number Diff line number Diff line change
@@ -1,21 +1,22 @@
import classNames from 'classnames';
import React, { ElementType } from 'react';
import React, { ElementType, ReactNode } from 'react';
import { useStyleProps } from '../../hooks';
import { StyleProps } from '../../types';
import { useDropdownContext } from './DropdownContext';
import { useDropdownAriaProps } from './useDropdownAriaProps';
import { useDropdownStyleProps } from './useDropdownStyleProps';

interface DropdownTriggerProps extends StyleProps {
elementType?: ElementType | string;
children: string | React.ReactNode | ((props: { isOpen: boolean }) => React.ReactNode);
}
type DropdownTriggerProps<E extends ElementType> = {
elementType?: E;
children: string | ReactNode | ((props: { isOpen: boolean }) => ReactNode);
} & React.ComponentPropsWithRef<E> &
StyleProps;

const defaultProps = {
elementType: 'button',
};

export const DropdownTrigger = (props: DropdownTriggerProps) => {
export const DropdownTrigger = <T extends ElementType = 'button'>(props: DropdownTriggerProps<T>) => {
const propsWithDefaults = { ...defaultProps, ...props };
const { elementType = 'button', children, ...rest } = propsWithDefaults;
const { id, isOpen, onToggle, fullWidthMode, triggerRef } = useDropdownContext();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@ const DropdownVariousItems = () => {

return (
<Dropdown id="DropdownVariousItems" isOpen={isOpen} onToggle={onToggle}>
<DropdownTrigger elementType={Button}>Button as anchor</DropdownTrigger>
<DropdownTrigger elementType={Button} color="primary">
Button as anchor
</DropdownTrigger>
<DropdownPopover>
<Item elementType="a" href="#" label="Plain text" />
<Item elementType="a" href="#" label="Item with icon" iconName="info" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,6 @@ const ModalDefault = () => {
provident unde. Eveniet, iste, molestiae?
</p>
<Dropdown id="dropdown-in-modal" isOpen={isDropdownOpen} onToggle={handleDropdownToggle}>
{/* @ts-expect-error -- TS2322: Property color does not exist on type … */}
<DropdownTrigger elementType={Button} color="secondary">
Dropdown
</DropdownTrigger>
Expand Down

0 comments on commit b6a78d1

Please sign in to comment.