AvatarEditorFigurePreviewView.tsx 1.8 Ko
Télécharger le fichier
import { AvatarDirectionAngle } from '@octane/renderer';
import { FC, useState } from 'react';
import rotateSrc from '../../assets/images/avatareditor/air/rotate.png';
import { LayoutAvatarImageView } from '../../common';
import { AvatarEffectPreviewView } from '../avatar-effects/AvatarEffectPreviewView';
import { useAvatarEditor } from '../../hooks';
import { BaseButton } from '../../common/BaseButton';
import { NativeTextTree } from '../../common/native-text/NativeTextTree';
const DEFAULT_DIRECTION: number = 4;
const AVATAR_DIRECTIONS: number = 8;
export const AvatarEditorFigurePreviewView: FC<{ effectType?: number }> = (props) => {
const { effectType = 0 } = props;
const [direction, setDirection] = useState<number>(DEFAULT_DIRECTION);
const { getFigureString = null, gender = 'M' } = useAvatarEditor();
const rotateFigure = () => {
setDirection(curr => (curr + 1) % AVATAR_DIRECTIONS);
};
return (
<NativeTextTree>
<div className="octane-avatar-editor-preview-shell">
<div className="figure-preview-container">
{effectType > 0 ? (
<div className="octane-avatar-editor-effect-preview">
<AvatarEffectPreviewView direction={direction} effect={effectType} figure={getFigureString} gender={gender} height={210} />
</div>
) : (
<LayoutAvatarImageView direction={direction} figure={getFigureString} gender={gender} />
)}
</div>
<BaseButton type="button" className="octane-avatar-editor-rotate" aria-label="Rotate avatar" onClick={rotateFigure}>
<img src={rotateSrc} alt="" draggable={false} />
</BaseButton>
</div>
</NativeTextTree>
);
};
