decentraland-ui
Version:
Decentraland's UI components and styles
65 lines (64 loc) • 2.14 kB
TypeScript
import * as React from 'react';
import { IPreviewController } from '@dcl/schemas/dist/dapps/preview';
import './EmoteControls.css';
export declare type EmoteControlsProps = {
wearablePreviewId: string;
className?: string;
hideFrameInput?: boolean;
hideProgressInput?: boolean;
hidePlayButton?: boolean;
hideSoundButton?: boolean;
wearablePreviewController?: IPreviewController;
renderPlayButton?: (props: {
isPlaying: boolean;
onPlay: () => Promise<void>;
onPause: () => Promise<void>;
onToggle: () => Promise<void>;
}) => React.ReactNode;
renderSoundButton?: (props: {
isSoundEnabled: boolean;
hasSound: boolean;
onToggle: () => void;
}) => React.ReactNode;
renderProgressBar?: (props: {
frame: number;
length: number;
onChange: (value: number) => Promise<void>;
onMouseUp: () => Promise<void>;
}) => React.ReactNode;
renderFrameInput?: (props: {
frame: number;
onChange: (value: number) => Promise<void>;
}) => React.ReactNode;
};
declare type EmoteControlsState = {
frame: number;
isPlaying: boolean;
playingIntervalId?: number;
length?: number;
isSoundEnabled: boolean;
hasSound: boolean;
shouldResumePlaying: boolean;
isChangingFrame: boolean;
};
export declare class EmoteControls extends React.PureComponent<EmoteControlsProps, EmoteControlsState> {
previewController: IPreviewController | undefined;
state: EmoteControlsState;
handleAnimationLoop: () => void;
handleAnimationEnd: () => void;
handleAnimationPause: () => void;
handleAnimationPlay: () => Promise<void>;
handleAnimationPlaying: ({ length }: {
length: any;
}) => void;
componentDidMount(): void;
handlePlay: () => Promise<void>;
handlePause: () => Promise<void>;
handlePlayPause: () => Promise<void>;
handleSoundToggle: () => void;
handleFrameChange: (value: number) => Promise<void>;
handleMouseUp: () => Promise<void>;
componentDidUpdate(): Promise<void>;
render(): JSX.Element;
}
export {};