react-instagram-embed
Version:
React embedding Instagram posts component
47 lines (46 loc) • 1.36 kB
TypeScript
import * as React from 'react';
import { SetRequired } from 'type-fest';
interface DefaultProps<T extends React.ElementType = 'div'> {
hideCaption: boolean;
containerTagName: T;
protocol: string;
injectScript: boolean;
}
declare type Html = string;
interface Response {
html: Html;
}
interface State {
html: Html | null;
}
declare type PropsInternal = SetRequired<Props, keyof DefaultProps>;
export interface Props<T extends React.ElementType = 'div'> extends Partial<DefaultProps<T>> {
url: string;
clientAccessToken: string;
maxWidth?: number;
className?: string;
onLoading?(): void;
onSuccess?(response: Response): void;
onAfterRender?(): void;
onFailure?(error: Error): void;
}
export default class InstagramEmbed extends React.Component<PropsInternal, State> {
static defaultProps: DefaultProps;
private request;
private timer?;
constructor(props: PropsInternal);
componentDidMount(): void;
componentDidUpdate(prevProps: PropsInternal): void;
componentWillUnmount(): void;
render(): React.ReactNode;
cancel: () => void;
private fetchEmbed;
private omitComponentProps;
private injectScript;
private checkAPI;
private getQueryParams;
private handleFetchSuccess;
private handleFetchFailure;
private createRequestPromise;
}
export {};