react-konami-code
Version:
Trigger an easter egg by pressing a sequence of keys. Available as a component or a custom hook. Supports timeout and input debounce/reset.
40 lines (39 loc) • 1.28 kB
TypeScript
import React from 'react';
import PropTypes from 'prop-types';
export interface KonamiProps {
className?: string;
code?: number[];
disabled?: boolean;
resetDelay?: number;
action?: (() => void) | null;
timeout?: number;
onTimeout?: (() => void) | null;
children?: React.ReactNode;
}
export interface KonamiState {
done: boolean;
input: number[];
}
declare const propTypes: {
action: PropTypes.Requireable<(...args: any[]) => any>;
className: PropTypes.Requireable<string>;
code: PropTypes.Requireable<(number | null | undefined)[]>;
disabled: PropTypes.Requireable<boolean>;
onTimeout: PropTypes.Requireable<(...args: any[]) => any>;
resetDelay: PropTypes.Requireable<number>;
timeout: PropTypes.Requireable<number>;
};
declare class Konami extends React.Component<KonamiProps, KonamiState> {
private timeoutID;
private _timer;
static defaultProps: KonamiProps;
static propTypes: typeof propTypes;
constructor(props: KonamiProps);
componentDidMount(): void;
shouldComponentUpdate(nextProps: KonamiProps, nextState: KonamiState): boolean;
componentWillUnmount(): void;
onKeyUp(e: KeyboardEvent): void;
resetInput(): void;
render(): JSX.Element;
}
export default Konami;