From c66dac51ce5170d375d9c739525e8ee6732ade4d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Berna=20T=C3=BClek?= <berna.tuelek@mni.thm.de>
Date: Sun, 14 Apr 2019 18:16:01 +0200
Subject: [PATCH] Improve rubberBand animation

---
 .../shared/comment/comment.component.html     | 49 ++++++++++---------
 .../shared/comment/comment.component.ts       |  8 +--
 2 files changed, 29 insertions(+), 28 deletions(-)

diff --git a/src/app/components/shared/comment/comment.component.html b/src/app/components/shared/comment/comment.component.html
index 5dc2c64f7..23494d799 100644
--- a/src/app/components/shared/comment/comment.component.html
+++ b/src/app/components/shared/comment/comment.component.html
@@ -1,29 +1,30 @@
 <mat-card class="card-container" [@slide]>
-  <div fxLayout="column">
-    <div fxLayout="row">
-      <span class="fill-remaining-space"></span>
-      <button mat-icon-button *ngIf="comment.correct || !isStudent" [disabled]="isStudent" (click)="setCorrect(comment)" [matTooltip]="comment.correct ? 'Unmark as correct' : 'Mark as correct'">
-        <mat-icon [ngClass]="{true : 'correct-icon', false: 'incorrect-icon'}[comment.correct]">check_circle</mat-icon>
-      </button>
-      <button mat-icon-button *ngIf="comment.favorite || !isStudent" [disabled]="isStudent" (click)="setFavorite(comment)" [matTooltip]="comment.favorite ? 'Mark as not favorite' : 'Mark as favorite'">
-        <mat-icon [ngClass]="{true: 'favorite-icon', false: 'not-favorite-icon'}[comment.favorite]">star</mat-icon>
-      </button>
-      <button mat-icon-button [disabled]="isStudent" (click)="setRead(comment)" [matTooltip]="comment.read ? 'Mark  as unread' : 'Mark as read'">
-        <mat-icon [ngClass]="{true: 'read-icon', false: 'unread-icon'}[comment.read]">visibility</mat-icon>
-      </button>
-    </div>
-    <div fxLayout="row">
-      <div class="body" (click)="openPresentDialog(comment.body)">{{comment.body}}</div>
-      <span class="fill-remaining-space"></span>
-      <div fxLayout="column">
-        <button mat-icon-button [disabled]="!isStudent" (click)="voteUp(comment)" (tap)="startAnimation('rubberBand')" [@rubberBand]="animationState" (@rubberBand.done)="resetAnimationState()">
-          <mat-icon class="voting-icon" [ngClass]="{'upvoted' : hasVoted === 1}" >keyboard_arrow_up</mat-icon>
+    <div fxLayout="column">
+      <div fxLayout="row">
+        <span class="fill-remaining-space"></span>
+        <button mat-icon-button *ngIf="comment.correct || !isStudent" [disabled]="isStudent" (click)="setCorrect(comment)" [matTooltip]="comment.correct ? 'Unmark as correct' : 'Mark as correct'">
+          <mat-icon [ngClass]="{true : 'correct-icon', false: 'incorrect-icon'}[comment.correct]">check_circle</mat-icon>
+        </button>
+        <button mat-icon-button *ngIf="comment.favorite || !isStudent" [disabled]="isStudent" (click)="setFavorite(comment)" [matTooltip]="comment.favorite ? 'Mark as not favorite' : 'Mark as favorite'">
+          <mat-icon [ngClass]="{true: 'favorite-icon', false: 'not-favorite-icon'}[comment.favorite]">star</mat-icon>
         </button>
-        <h2>{{comment.score}}</h2>
-        <button mat-icon-button [disabled]="!isStudent" (click)="voteDown(comment)" (tap)="startAnimation('rubberBand')" [@rubberBand]="animationState" (@rubberBand.done)="resetAnimationState()">
-          <mat-icon class="voting-icon" [ngClass]="{'downvoted' : hasVoted === -1}">keyboard_arrow_down</mat-icon>
+        <button mat-icon-button [disabled]="isStudent" (click)="setRead(comment)" [matTooltip]="comment.read ? 'Mark  as unread' : 'Mark as read'">
+          <mat-icon [ngClass]="{true: 'read-icon', false: 'unread-icon'}[comment.read]">visibility</mat-icon>
         </button>
       </div>
+      <div fxLayout="row">
+        <div class="body" (click)="openPresentDialog(comment.body)">{{comment.body}}</div>
+        <span class="fill-remaining-space"></span>
+        <div fxLayout="column" (tap)="startAnimation('rubberBand')" [@rubberBand]="animationState" (@rubberBand.done)="resetAnimationState()">
+          <button mat-icon-button [disabled]="!isStudent" (click)="voteUp(comment)" >
+            <mat-icon class="voting-icon" [ngClass]="{'upvoted' : hasVoted === 1}">keyboard_arrow_up</mat-icon>
+          </button>
+          <h2>{{comment.score}}</h2>
+          <button mat-icon-button [disabled]="!isStudent" (click)="voteDown(comment)">
+            <mat-icon class="voting-icon" [ngClass]="{'downvoted' : hasVoted === -1}">keyboard_arrow_down</mat-icon>
+          </button>
+        </div>
+      </div>
     </div>
-  </div>
-</mat-card>
\ No newline at end of file
+  </mat-card>
+  
\ No newline at end of file
diff --git a/src/app/components/shared/comment/comment.component.ts b/src/app/components/shared/comment/comment.component.ts
index dacdf4995..66ac86883 100644
--- a/src/app/components/shared/comment/comment.component.ts
+++ b/src/app/components/shared/comment/comment.component.ts
@@ -14,9 +14,9 @@ import { trigger, transition, style, animate, state, keyframes } from '@angular/
 
 export const rubberBand = [
   style({ transform: 'scale3d(1, 1, 1)', offset: 0 }),
-  style({ transform: 'scale3d(1.25, 0.75, 1)', offset: .3 }),
-  style({ transform: 'scale3d(0.75, 1.25, 1)', offset: .4 }),
-  style({ transform: 'scale3d(1.15, 0.85, 1)', offset: .5 }),
+  style({ transform: 'scale3d(1.05, 0.75, 1)', offset: .3 }),
+  style({ transform: 'scale3d(0.75, 1.05, 1)', offset: .4 }),
+  style({ transform: 'scale3d(1.05, 0.95, 1)', offset: .5 }),
   style({ transform: 'scale3d(0.95, 1.05, 1)', offset: .65 }),
   style({ transform: 'scale3d(1.05, 0.95, 1)', offset: .75 }),
   style({ transform: 'scale3d(1, 1, 1)', offset: 1 })
@@ -32,7 +32,7 @@ export const rubberBand = [
       transition('void <=> *', animate(700)),
     ]),
     trigger('rubberBand', [
-      transition('* => rubberBand', animate(900, keyframes(rubberBand))),
+      transition('* => rubberBand', animate(1000, keyframes(rubberBand))),
     ])
   ]
 })
-- 
GitLab