Indicate when HTML Attributes can be passed

This commit is contained in:
Vincent
2019-04-12 12:23:28 +02:00
parent 01fd72c035
commit a2dfe8fb4f
2 changed files with 15 additions and 7 deletions

View File

@@ -8,9 +8,10 @@ import * as React from 'react';
export interface LoginButtonProps {
popup: string;
className?: string;
}
export class LoginButton extends React.Component<LoginButtonProps> {}
export class LogoutButton extends React.Component {}
export class LogoutButton extends React.Component<{ className?: string; }> {}
export interface AuthButtonProps extends LoginButtonProps {
login: string;
logout: string;
@@ -33,13 +34,20 @@ export function useLDflex(expression: string, listMode?: false): [LDflexValue, b
export class Value extends React.Component<{src: string}> {}
export interface ListProps {
src: string;
children?: (listItem: LDflexValue) => JSX.Element;
offset?: number;
limit?: number;
// dtslint does not appear to understand that `T` is used in the type guard.
// See https://github.com/Microsoft/dtslint/issues/228
// tslint:disable-next-line no-unnecessary-generics
filter?: <T extends LDflexValue>(item: LDflexValue, index: number, array: LDflexValue[]) => item is T;
container?: (items: JSX.Element) => JSX.Element;
children?: (listItem: LDflexValue, index: number) => JSX.Element;
}
export class List extends React.Component<ListProps> {}
export class Image extends React.Component<{ src: string; defaultSrc?: string; }> {}
export class Image extends React.Component<{ src: string; defaultSrc?: string; } & React.HTMLAttributes<HTMLImageElement>> {}
export class Label extends React.Component<{ src: string; }> {}
export class Link extends React.Component<{ href: string; }> {}
export class Link extends React.Component<{ href: string; } & React.HTMLAttributes<HTMLAnchorElement>> {}
export class LiveUpdate extends React.Component<{ subscribe?: '*' | string | string[]; }> {}
export class Name extends React.Component<{ src: string; }> {}
@@ -51,7 +59,7 @@ export interface ActivityButtonProps {
activateLabel?: string | [string, string, React.ReactNode];
deactivateLabel?: string | [string, string, React.ReactNode];
}
export class ActivityButton extends React.Component<ActivityButtonProps> {}
export class ActivityButton extends React.Component<ActivityButtonProps & React.HTMLAttributes<HTMLButtonElement>> {}
export class Like extends ActivityButton {}
export class LikeButton extends Like {}
export class Dislike extends ActivityButton {}

View File

@@ -14,11 +14,11 @@ export const TestElement: React.FC = () => {
return (
<>
<LoginButton popup="popopfile.html"/>
<LogoutButton/>
<LogoutButton className="logoutButton"/>
<AuthButton popup="popufile.html" login="Log in" logout="Log out"/>
<LoggedIn>You are logged in</LoggedIn>
<LoggedOut>You are logged out</LoggedOut>
<Like>Like this page</Like>
<Like onSubmit={() => undefined}>Like this page</Like>
</>
);
};