src/components/avatar/Avatar.js
import React from 'react';
import {StyleSheet} from 'react-native';
import SvgAvatarVetIkke from '../../svgr-components/Avatar_VetIkke';
import SvgAvatarIkkeLyst from '../../svgr-components/Avatar_IkkeLyst';
import SvgAvatarVeldigLyst from '../../svgr-components/Avatar_VeldigLyst';
import SvgAvatarLittLyst from '../../svgr-components/Avatar_LittLyst';
import SvgAnsiktIkkeLyst from '../../svgr-components/Ansikt_IkkeLyst';
import SvgAnsiktLittLyst from '../../svgr-components/Ansikt_LittLyst';
import SvgAnsiktVeldigLyst from '../../svgr-components/Ansikt_VeldigLyst';
/**
* Method for making avatar
* @param {number} mood - the mood the avatary should be in
* @param {boolean} full - true if full avatar, false if only face
* @returns {Object} The SVGR component of the avatar
*/
export default function Avatar({full, mood}) {
//Make avatar with current mood
return full ? avatar(mood) : face(mood);
}
/**
* Returns the full avatar in given mood
* @param {number} mood - the mood
* @returns SVGR component of full avatar in given mood
*/
function avatar(mood) {
switch (mood) {
case 1:
return <SvgAvatarIkkeLyst style={styles.avatar} />;
case 2:
return <SvgAvatarLittLyst style={styles.avatar} />;
case 3:
return <SvgAvatarVeldigLyst style={styles.avatar} />;
default:
return <SvgAvatarVetIkke style={styles.avatar} />;
}
}
/**
* Returns the avatar face in given mood
* @param {number} mood - the mood
* @returns SVGR component of avatar face in given mood
*/
function face(mood) {
switch (mood) {
case 1:
return <SvgAnsiktIkkeLyst style={styles.face} />;
case 2:
return <SvgAnsiktLittLyst style={styles.face} />;
case 3:
return <SvgAnsiktVeldigLyst style={styles.face} />;
default:
return <SvgAnsiktLittLyst style={styles.face} />;
}
}
/** Local styles
* @type {Object}
*/
const styles = StyleSheet.create({
avatar: {
//Style is currently hardcoded within SVGR file
position: 'absolute',
},
face: {
//Style is currently hardcoded withing SVGR file
},
});