Skip to content

Commit

Permalink
fix(typings): base components props intersection with html components…
Browse files Browse the repository at this point in the history
… props
  • Loading branch information
supersnager committed Jun 15, 2022
1 parent 4511c3e commit 6637245
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 9 deletions.
3 changes: 1 addition & 2 deletions src/components/Message/Message.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,7 @@ declare const Message: {
TextContent: typeof MessageTextContent;
ImageContent: typeof MessageImageContent;
CustomContent: typeof MessageCustomContent;
Footer:typeof MessageFooter;

Footer:typeof MessageFooter;
};

export {
Expand Down
6 changes: 3 additions & 3 deletions src/components/MessageInput/MessageInput.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@ export interface MessageInputProps {
fancyScroll?: boolean;
activateAfterChange?: boolean;
autoFocus?: boolean;
onChange: (innerHtml: string, textContent: string, innerText: string, nodes: NodeList) => void;
onSend: (innerHtml: string, textContent: string, innerText: string, nodes: NodeList) => void;
onChange?: (innerHtml: string, textContent: string, innerText: string, nodes: NodeList) => void;
onSend?: (innerHtml: string, textContent: string, innerText: string, nodes: NodeList) => void;
sendButton?: boolean;
attachButton?: boolean;
attachDisabled?: boolean;
onAttachClick: (evt: MouseEvent<HTMLButtonElement>) => void;
onAttachClick?: (evt: MouseEvent<HTMLButtonElement>) => void;
}

export declare const MessageInput: (props: ChatComponentPropsRef<MessageInputProps, "div">) => ReactElement;
Expand Down
10 changes: 6 additions & 4 deletions src/types/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,16 @@ import type {
/* eslint-disable @typescript-eslint/no-explicit-any */
export type EmptyProps = Record<never, any>;

type ElementTypeOrHTMLElement = ElementType | HTMLElement;
export type ChatComponentProps<P,T extends ElementTypeOrHTMLElement> = P & (T extends ElementType ? Omit<ComponentPropsWithoutRef<T>, "children"> : Omit<HTMLAttributes<T>, "children">);
export type ElementTypeOrHTMLElement = ElementType | HTMLElement;
export type ChatComponentProps<P,T extends ElementTypeOrHTMLElement> =
P & (T extends ElementType ? Omit<ComponentPropsWithoutRef<T>, "children" | keyof P> : Omit<HTMLAttributes<T>, "children" | keyof P>);

export type ChatComponentPropsRef<P,T extends ElementTypeOrHTMLElement> = P & (T extends ElementType ? Omit<ComponentPropsWithRef<T>, "children"> : Omit<DetailedHTMLProps<HTMLAttributes<T>,T>, "children">);
export type ChatComponentPropsRef<P,T extends ElementTypeOrHTMLElement> =
P & (T extends ElementType ? Omit<ComponentPropsWithRef<T>, "children" | keyof P > : Omit<DetailedHTMLProps<HTMLAttributes<T>,T>, "children" | keyof P>);

export type ChatComponentPropsChildren<P,T extends ElementTypeOrHTMLElement> = PropsWithChildren<ChatComponentProps<P,T>>;

export type ChatComponentPropsChildrenRef<P,T extends ElementTypeOrHTMLElement> = PropsWithChildren<ChatComponentPropsRef<P,T>>;
export type ChatComponentPropsChildrenRef<P,T extends ElementTypeOrHTMLElement> = PropsWithChildren<ChatComponentPropsRef<P,T>>;

export {Size, UserStatus, MessageType} from "./unions";
export * from "../components/Avatar/Avatar";
Expand Down

0 comments on commit 6637245

Please sign in to comment.