Home Reference Source

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
    },
});