xverse-components-character-creator
Version:
xverse components character-creator
77 lines (76 loc) • 6.61 kB
TypeScript
import { SyntheticEvent } from 'react';
import { IAvatarComponent } from '@xverse/core';
import { EType, IAvatarUnitsComponent, SliderListType, IDiyFaceItem, IClothesItem, FaceType } from './config';
import { ICharacterCreatorProps } from './types';
export declare const useCharacterCreator: (props: Omit<ICharacterCreatorProps, "className" | "navStyle" | "navActiveStyle" | "diyFaceItemActiveStyle" | "clothesItemStyle" | "clothesItemActiveStyle" | "bottomCoverStyle" | "backBtnStyle" | "avatarGender" | "lockedImgStyle" | "saveButtonProps" | "switchIconImageUrl" | "onClickPrivateRule">) => {
visible: boolean;
currentType: EType;
avatars: {
avatarId: string;
sexImageUrl: string;
}[];
delay3DContent: boolean;
hasAvatarSelect: boolean;
diyFaceModelMap: Record<"Face_Whole_Height" | "Face_Applezone_Width" | "Face_Applezone_VerticalPos" | "Face_Applezone_Thick" | "Face_Cheek_Width" | "Face_Cheek_VerticalPos" | "Face_Cheek_Thick" | "Face_LowerJaw_Width" | "Face_LowerJaw_VerticalPos" | "Face_Jaw_Wdith" | "Face_Jaw_Height" | "Face_Jaw_ZPos" | "EyeBrow_Whole_Margin" | "EyeBrow_Whole_VerticalPos" | "EyeBrow_Inner_HorizonPos" | "EyeBrow_Inner_VerticalPos" | "EyeBrow_Middle_HorizonPos" | "EyeBrow_Middle_VerticalPos" | "EyeBrow_Outter_HorizonPos" | "EyeBrow_Outter_VerticalPos" | "Eye_Whole_Scale" | "Eye_Whole_Margin" | "Eye_Whole_VerticalPos" | "Eye_Whole2_ZPos" | "Eye_Whole2_Rotate" | "Eye_Whole2_Eyelid" | "Eye_CornInner_Margin" | "Eye_CornInner_VerticalPos" | "Eye_CornOutter_Margin" | "Eye_CornOutter_VerticalPos" | "Eye_UpEyelid_Shape" | "Eye_UpEyelid_VerticalPos" | "Eye_LowEyelid_Shape" | "Eye_LowEyelid_VerticalPos" | "Nose_Whole_Width" | "Nose_Whole_Height" | "Nose_NasalTip_Scale" | "Nose_NasalTip_VerticalPos" | "Nose_NasalTip_ZPos" | "Nose_NoseWing_Width" | "Nose_NoseWing_VerticalPos" | "Nose_NoseBridge_Width" | "Nose_NoseBridge_ZPos" | "Mouth_Whole_Scale" | "Mouth_Whole_VerticalPos" | "Mouth_Whole_ZPos" | "Mouth_UpLip_Width" | "Mouth_UpLip_Height" | "Mouth_Lip_MShape" | "Mouth_Lip_VerticalPos" | "Mouth_LowLip_Width" | "Mouth_LowLip_Height" | "Mouth_Corn_Width" | "Mouth_Corn_VerticalPos", number>;
modelCurrent: "Face_Whole" | "Face_Applezone" | "Face_Cheek" | "Face_LowerJaw" | "Face_Jaw" | "Eye_Whole" | "Eye_Whole2" | "Eye_CornInner" | "Eye_CornOutter" | "Eye_UpEyelid" | "Eye_LowEyelid" | "EyeBrow_Whole" | "EyeBrow_Inner" | "EyeBrow_Middle" | "EyeBrow_Outter" | "Nose_Whole" | "Nose_NasalTip" | "Nose_NoseWing" | "Nose_NoseBridge" | "Mouth_Whole" | "Mouth_UpLip" | "Mouth_Lip" | "Mouth_LowLip" | "Mouth_Corn";
isOpenCamera: boolean;
hasSkin: boolean;
hasDiyFace: boolean;
hasDressUp: boolean;
hasAIFace: boolean;
firstNav: {
DressUp: {
defaultImage: string;
activeImage: string;
};
DiyFace: {
defaultImage: string;
activeImage: string;
};
AIFace: {
defaultImage: string;
activeImage: string;
};
Skin: {
defaultImage: string;
activeImage: string;
};
};
currentAvatarId: any;
diyFaceCurrentHistoryRef: import("react").MutableRefObject<number>;
canNext: boolean;
canRedo: boolean;
avatarComponents: IAvatarUnitsComponent[];
lockedItemSelect: boolean;
dressUpNavInfo: IClothesItem[];
realDiyFaceList: FaceType[];
currNav: number;
diyFaceModel: {
FaceModel: IDiyFaceItem;
EyeBrowModel: IDiyFaceItem;
EyeModel: IDiyFaceItem;
MouthModel: IDiyFaceItem;
NoseModel: IDiyFaceItem;
};
selectComponents: IAvatarComponent[];
lockedComponents: string;
skinActiveNum: number;
diyFaceOn3D: (key: SliderListType, val: number) => void;
setModelCurrent: import("react").Dispatch<import("react").SetStateAction<"Face_Whole" | "Face_Applezone" | "Face_Cheek" | "Face_LowerJaw" | "Face_Jaw" | "Eye_Whole" | "Eye_Whole2" | "Eye_CornInner" | "Eye_CornOutter" | "Eye_UpEyelid" | "Eye_LowEyelid" | "EyeBrow_Whole" | "EyeBrow_Inner" | "EyeBrow_Middle" | "EyeBrow_Outter" | "Nose_Whole" | "Nose_NasalTip" | "Nose_NoseWing" | "Nose_NoseBridge" | "Mouth_Whole" | "Mouth_UpLip" | "Mouth_Lip" | "Mouth_LowLip" | "Mouth_Corn">>;
dressUpComponentClickHandle: (event: SyntheticEvent<HTMLDivElement>) => Promise<void>;
setIsOpenCamera: import("react").Dispatch<import("react").SetStateAction<boolean>>;
setDiyFaceCurrentHistory: import("react").Dispatch<import("react").SetStateAction<number>>;
exitHandle: () => Promise<void>;
setHistoryDiyFaceMap: import("react").Dispatch<import("react").SetStateAction<Record<"Face_Whole_Height" | "Face_Applezone_Width" | "Face_Applezone_VerticalPos" | "Face_Applezone_Thick" | "Face_Cheek_Width" | "Face_Cheek_VerticalPos" | "Face_Cheek_Thick" | "Face_LowerJaw_Width" | "Face_LowerJaw_VerticalPos" | "Face_Jaw_Wdith" | "Face_Jaw_Height" | "Face_Jaw_ZPos" | "EyeBrow_Whole_Margin" | "EyeBrow_Whole_VerticalPos" | "EyeBrow_Inner_HorizonPos" | "EyeBrow_Inner_VerticalPos" | "EyeBrow_Middle_HorizonPos" | "EyeBrow_Middle_VerticalPos" | "EyeBrow_Outter_HorizonPos" | "EyeBrow_Outter_VerticalPos" | "Eye_Whole_Scale" | "Eye_Whole_Margin" | "Eye_Whole_VerticalPos" | "Eye_Whole2_ZPos" | "Eye_Whole2_Rotate" | "Eye_Whole2_Eyelid" | "Eye_CornInner_Margin" | "Eye_CornInner_VerticalPos" | "Eye_CornOutter_Margin" | "Eye_CornOutter_VerticalPos" | "Eye_UpEyelid_Shape" | "Eye_UpEyelid_VerticalPos" | "Eye_LowEyelid_Shape" | "Eye_LowEyelid_VerticalPos" | "Nose_Whole_Width" | "Nose_Whole_Height" | "Nose_NasalTip_Scale" | "Nose_NasalTip_VerticalPos" | "Nose_NasalTip_ZPos" | "Nose_NoseWing_Width" | "Nose_NoseWing_VerticalPos" | "Nose_NoseBridge_Width" | "Nose_NoseBridge_ZPos" | "Mouth_Whole_Scale" | "Mouth_Whole_VerticalPos" | "Mouth_Whole_ZPos" | "Mouth_UpLip_Width" | "Mouth_UpLip_Height" | "Mouth_Lip_MShape" | "Mouth_Lip_VerticalPos" | "Mouth_LowLip_Width" | "Mouth_LowLip_Height" | "Mouth_Corn_Width" | "Mouth_Corn_VerticalPos", number>[]>>;
typeChangeClickHandle2: (type: EType) => void;
typeChangeClickHandle: (event: SyntheticEvent<HTMLDivElement>) => void;
diyAllFaceData: (data: Record<SliderListType, number>) => void;
changeNavHandle: (event: SyntheticEvent<HTMLDivElement>) => void;
saveHandle: () => Promise<void>;
redoHandle: () => void;
nextHandle: () => Promise<void>;
refreshHandle: () => Promise<void>;
changeAvatarId: () => Promise<void>;
diyFaceClickHandle: (sliderValue: number, tabType: SliderListType) => void;
handleSkinClick: (index: number) => Promise<void>;
};