add animations

Change-Id: I55d77e10e680d9d72f7fefd4a3e4e2b193fad11d
diff --git a/client/src/components/AccountPreferences.js b/client/src/components/AccountPreferences.js
index 7c7298d..363df68 100644
--- a/client/src/components/AccountPreferences.js
+++ b/client/src/components/AccountPreferences.js
@@ -9,6 +9,7 @@
 import ConversationsOverviewCard from './ConversationsOverviewCard'
 
 import authManager from '../AuthManager'
+import { motion } from 'framer-motion'
 
 const useStyles = makeStyles(theme => ({
   root: {
@@ -31,6 +32,18 @@
   }
 }))
 
+const transition = { duration: 0.3, ease: [0.43, 0.13, 0.23, 0.96] }
+
+const thumbnailVariants = {
+  initial: { scale: 0.9, opacity: 0 },
+  enter: { scale: 1, opacity: 1, transition },
+  exit: {
+    scale: 0.5,
+    opacity: 0,
+    transition: { duration: 1.5, ...transition }
+  }
+}
+
 export default function AccountPreferences(props) {
   const classes = useStyles()
   const account = props.account
@@ -68,17 +81,28 @@
   }
 
   return (
-    <React.Fragment>
-      <Typography variant="h2" component="h2" gutterBottom>{alias}</Typography>
+    <motion.div
+        initial="initial"
+        animate="enter"
+        exit="exit"
+        variants={{
+          enter: { transition: { staggerChildren: 0.05 } },
+          exit: { transition: { staggerChildren: 0.02 } }
+        }}
+      >
+      <motion.div variants={thumbnailVariants}><Typography variant="h2" component="h2" gutterBottom>{alias}</Typography></motion.div>
       <Grid container spacing={3} style={{ marginBottom: 16 }}>
         {isJamiAccount &&
-          <Grid item xs={12}><JamiIdCard account={account} /></Grid>}
+          <Grid item xs={12}><motion.div variants={thumbnailVariants}><JamiIdCard account={account} /></motion.div></Grid>}
 
         <Grid item xs={12} sm={6}>
+        <motion.div variants={thumbnailVariants}>
           <ConversationsOverviewCard accountId={account.getId()} />
+          </motion.div>
         </Grid>
 
         <Grid item xs={12} sm={6}>
+        <motion.div variants={thumbnailVariants}>
           <Card>
             <CardContent>
               <Typography className={classes.title} color="textSecondary" gutterBottom>
@@ -89,10 +113,13 @@
               </Typography>
             </CardContent>
           </Card>
+          </motion.div>
         </Grid>
+
       </Grid>
 
-      <List subheader={<ListSubheader>Settings</ListSubheader>}>
+      <List subheader={<motion.div variants={thumbnailVariants}><ListSubheader>Settings</ListSubheader></motion.div>}>
+      <motion.div variants={thumbnailVariants}>
         <ListItem>
           <ListItemIcon>
             <GroupRounded />
@@ -107,6 +134,8 @@
             />
           </ListItemSecondaryAction>
         </ListItem>
+        </motion.div>
+        <motion.div variants={thumbnailVariants}>
         <ListItem>
           <ListItemIcon>
             <PhoneCallbackRounded />
@@ -121,7 +150,8 @@
             />
           </ListItemSecondaryAction>
         </ListItem>
-
+        </motion.div>
+        <motion.div variants={thumbnailVariants}>
         <Paper className={classes.paper}>
           <Toolbar>
             <Typography className={classes.title} variant="h6">
@@ -157,7 +187,8 @@
               ))}
           </List>
         </Paper>
+        </motion.div>
       </List>
 
-    </React.Fragment>)
+    </motion.div>)
 }