Commit aa37c09d authored by Olivia Madrid's avatar Olivia Madrid

(feat): Referrals console

* go straight to ping button success tooltip on mobile
* add missing parentheses to whatsapp button
* added i18n to referrals link buttons
* removed some comments and trailing whitespace diffs
1 merge request!388epic/referrals
Pipeline #71645745 running with stages
......@@ -53,7 +53,7 @@
>
<a (click)="openReferralsModal()">
<i class="material-icons">people</i>
<span i18n>Refer Friends</span>
<span i18n="@@M__COMMON__REFER_FRIENDS">Refer Friends</span>
</a>
</li>
......
......@@ -317,140 +317,8 @@ m-register {
position: absolute;
}
}
// .m-register--stream{
// max-width:1100px;
// padding:$minds-padding !important;
// h4{
// text-transform: uppercase;
// margin: 0 auto 0;
// font-size: 14px;
// max-width: 1280px;
// text-indent: 16px;
// }
// section{
// display:block;
// padding:$minds-padding*1.5;
// height:auto;
// minds-activity{
// width:100%;
// .tabs > * {
// .minds-counter {
// display: block;
// }
// .m-wire-button{
// transform: scale(1.2) translateY(5px);
// }
// }
// }
// }
// }
// .m-register--facts{
// height:auto;
// .mdl-grid{
// max-width:990px;
// .mdl-cell{
// padding: 0 $minds-padding*2;
// text-align: center;
// }
// }
// h3{
// text-transform: uppercase;
// margin:8px 0;
// font-size: 22px;
// line-height: 24px;
// }
// i{
// font-size:94px;
// }
// }
// .m-register--features{
// min-height: 186px;
// height:auto;
// padding: 26px 0;
// .mdl-grid{
// width:90%;
// }
// .mdl-cell{
// text-align: center;
// margin:16px auto;
// cursor: pointer;
// i{
// font-size:42px;
// }
// h3{
// font-size:12px;
// margin:8px 0;
// line-height:14px;
// }
// }
// }
// .m-register-press {
// height: auto;
// .m-contents{
// margin: auto;
// text-align:center;
// div {
// display: inline-block;
// img {
// box-sizing: border-box;
// max-width: 100px;
// padding: 8px;
// filter:grayscale(91%) contrast(50%);
// transition: filter 0.5s linear;
// &:hover{
// filter:none;
// }
// }
// }
// }
// }
}
// @media screen and (max-height: 750px ) and (min-width: $max-mobile){
// .m-app-links{
// display: none !important;
// }
// }
// .m-app-links{
// padding:28px 0;
// height:auto;
// display: flex;
// flex-flow: row wrap;
// align-items:center;
// justify-content: center;
// a{
// flex:1;
// padding:8px;
// max-width: 132px;
// img{
// width:100%;
// }
// }
// }
.m-footer{
padding:28px;
min-height:150px;
......@@ -459,7 +327,6 @@ m-register {
background-color:themed($m-white);
}
.copyright{
display: block;
padding: 16px 0;
......@@ -468,65 +335,4 @@ m-register {
font-size: 11px;
font-weight:bold;
}
}
// .m-register--feature-btn{
// border: 0;
// padding: 12px;
// margin: 26px auto;
// border-radius: 5px;
// height:25px;
// width:136px;
// display:flex;
// flex-direction: row;
// align-items:center;
// text-align:center;
// i, .m-register--feature-btn--icon{
// width: auto !important;
// font-size: 22px !important;
// padding-right:12px;
// margin: 0 !important;
// vertical-align: middle;
// }
// span{
// font-size: 14px;
// text-transform: uppercase;
// letter-spacing: 4px;
// flex:1;
// font-family: Roboto;
// font-weight: 400;
// }
// }
// .m-register--fader{
// width: 100%;
// height: 500px;
// margin-top: -500px;
// /* position: absolute; */
// /* bottom: 0; */
// z-index: 9999;
// position: relative;
// pointer-events: none;
// @include m-theme(){
// background: linear-gradient(rgba(themed($m-white),0), themed($m-grey-50));
// }
// .m-register--fader--load-more{
// position: absolute;
// bottom: 0;
// width: 100%;
// height: 36px;
// text-align: center;
// text-transform: uppercase;
// letter-spacing: 2px;
// font-size: 14px;
// font-weight: 400;
// font-family: Roboto;
// cursor: pointer;
// pointer-events: all;
// }
// }
......@@ -73,7 +73,7 @@ describe('RegisterComponent', () => {
xit('should have a register prompt and the form', () => {
const h3: DebugElement = fixture.debugElement.query(By.css('h3'));
expect(h3).not.toBeNull();
//expect(h3.nativeElement.textContent).toBe('Not on Minds? Start a channel');
expect(h3.nativeElement.textContent).toBe('Not on Minds? Start a channel');
expect(fixture.debugElement.query(By.css('minds-form-register'))).not.toBeNull();
});
......
......@@ -122,9 +122,9 @@
<m-messenger--channel-button [user]="user" *ngIf="user.subscribed && session.getLoggedInUser().guid != user.guid"></m-messenger--channel-button>
<div *ngIf="session.getLoggedInUser().guid == user.guid"
(click)="openReferralsModal()">
<button class="m-btn m-btn--with-icon m-btn--slim">
<button class="m-btn m-btn--with-icon m-btn--slim">
<i class="material-icons">people</i>
<span>Refer Friends</span>
<span i18n="@@M__COMMON__REFER_FRIENDS">Refer Friends</span>
</button>
</div>
<div *ngIf="session.getLoggedInUser().guid == user.guid" class="m-channel--edit-button-wrapper" (click)="toggleEditing()">
......
......@@ -90,10 +90,10 @@
<a class="m-page--sidebar--navigation--item"
*ngIf="session.isLoggedIn()"
(click)="openReferralsModal()"
(click)="openReferralsModal()"
>
<i class="material-icons">people</i>
<span>Refer Friends</span>
<span i18n="@@M__COMMON__REFER_FRIENDS">Refer Friends</span>
</a>
<a class="m-page--sidebar--navigation--item"
......
......@@ -36,13 +36,6 @@
@include m-theme(){
color: themed($m-blue-grey-600);
}
path {
@include m-theme(){
fill: themed($m-blue-grey-600);
}
}
}
.m-token-contributions--chart--contribution-text {
......
......@@ -22,7 +22,7 @@
<div class="m-referrals-dashboard__cell m-referrals-dashboard__rewardsCol">
<span i18n="@@M_REFERRALS_DASHBOARD__HEADER_REWARDS_SIGNUP">Rewards Signup</span>
<m-tooltip icon="help" i18n="@@M_REFERRALS_DASHBOARD__REWARDS_SIGNUP_TOOLTIP">
The day the referral sets up their wallet (and you are rewarded with tokens). Click 'ping' to send a pending referral
The day the referral sets up their wallet (and you are rewarded with tokens). Click PING to send a pending referral
a notification to let them know they ought to join the rewards program.
</m-tooltip>
</div>
......@@ -64,28 +64,35 @@
>
<i *ngIf="referral.pingable" class="m-referrals-dashboard__pingIcon material-icons" [ngClass]="{'m-referrals-dashboard__pingIcon--wiggle': referral.pingInProgress}">notifications_active</i>
<i *ngIf="!referral.pingable" class="m-referrals-dashboard__pingIcon material-icons">notifications</i>
<span *ngIf="referral.pingable">ping</span>
<span *ngIf="!referral.pingable">pinged</span>
<span *ngIf="referral.pingable" i18n="@@M_REFERRALS_DASHBOARD__PING_BUTTON">ping</span>
<span *ngIf="!referral.pingable" i18n="@@M_REFERRALS_DASHBOARD__PING_STATE">pinged</span>
</button>
</div>
</div>
<ng-container *ngIf="referral.pingable">
<ng-container *ngIf="referral.pingable && !isMobileOrTablet()"
i18n="@@M_REFERRALS_DASHBOARD__PING_BUTTON_NOTICE__ENABLED"
>
Send {{ referral.prospect.username }} a notification to let them know they ought to join the rewards program
</ng-container>
<ng-container *ngIf="!referral.pingable && !referral.pingRecentlySent">
You can only ping once every 7 days
</ng-container>
<ng-container *ngIf="!referral.pingable && referral.pingRecentlySent">
<!-- Go straight to success notice when on mobile or tablet -->
<ng-container *ngIf="(!referral.pingable && referral.pingRecentlySent) || (referral.pingable && isMobileOrTablet())"
i18n="@@M_REFERRALS_DASHBOARD__PING_BUTTON_NOTICE__SENT"
>
Ping sent!
</ng-container>
<ng-container *ngIf="!referral.pingable && !referral.pingRecentlySent"
i18n="@@M_REFERRALS_DASHBOARD__PING_BUTTON_NOTICE__DISABLED"
>
You can only ping once every 7 days
</ng-container>
</m-tooltip>
</div>
</ng-template>
</div>
</ng-container>
<div *ngIf="noResults" class="m-referrals-dashboard__row m-referrals-dashboard__footer m-referrals-dashboard__notice">
<div class="m-referrals-dashboard__cell" i18n="@@M_REFERRALS_DASHBOARD__NOTICE">You don't have any referrals yet.</div>
<div *ngIf="noInitResults" class="m-referrals-dashboard__row m-referrals-dashboard__footer m-referrals-dashboard__notice">
<div class="m-referrals-dashboard__cell" i18n="@@M_REFERRALS_DASHBOARD__NOTICE__NO_REFERRALS">You don't have any referrals yet.</div>
</div>
<div *ngIf="!fewerResultsThanLimit" class="m-referrals-dashboard__row m-referrals-dashboard__footer">
<div class="m-referrals-dashboard__cell">
......@@ -94,4 +101,4 @@
</div>
</div>
</div>
</div>
\ No newline at end of file
</div>
import { Component, OnInit, OnDestroy } from '@angular/core';
import { Client } from '../../../../../services/api/client';
import isMobileOrTablet from '../../../../../helpers/is-mobile-or-tablet';
@Component({
selector: 'm-referrals--dashboard',
......@@ -14,7 +15,7 @@ export class ReferralsDashboardComponent implements OnInit, OnDestroy {
limit = 12;
moreData = true;
inProgress = false;
noResults = false;
noInitResults = false;
fewerResultsThanLimit = false;
timeoutIds: number[] = [];
......@@ -56,7 +57,7 @@ export class ReferralsDashboardComponent implements OnInit, OnDestroy {
// If no results on initial load, show notice instead of empty table
if (init) {
this.noResults = true;
this.noInitResults = true;
}
return;
}
......@@ -87,6 +88,7 @@ export class ReferralsDashboardComponent implements OnInit, OnDestroy {
}
referral.pingInProgress = true;
// Trigger the ping notification
this.client.put(`api/v2/referrals/` + referral.prospect.guid)
.then((response: any) => {
......@@ -115,6 +117,11 @@ export class ReferralsDashboardComponent implements OnInit, OnDestroy {
});
}
// Go straight to 'ping sent' tooltip notice on click ping button when using mobile or tablet
isMobileOrTablet() {
return isMobileOrTablet();
}
ngOnDestroy(){
// Clear any remaining timeouts
this.timeoutIds.forEach(id => clearTimeout(id));
......
......@@ -44,7 +44,8 @@
<div class="m-referrals-links__share">
<h4 i18n="@@M_REFERRALS__SHARE_HEADER">More ways to share</h4>
<div class="m-referrals-links__shareButtons">
<button i18n-title="@@M_REFERRALS__SHARE_BUTTON_TWITTER" title="Twitter" class="m-referrals-links__shareButton m-referrals-links__shareButton--twitter"
<button i18n-title="@@M_REFERRALS__SHARE_BUTTON_TWITTER" title="Twitter"
class="m-referrals-links__shareButton m-referrals-links__shareButton--twitter"
(click)="openTwitter()"
>
<svg viewBox="0 0 24 24">
......@@ -52,7 +53,8 @@
</svg>
</button>
<button i18n-title="@@M_REFERRALS__SHARE_BUTTON_FACEBOOK" title="Facebook" class="m-referrals-links__shareButton m-referrals-links__shareButton--facebook"
<button i18n-title="@@M_REFERRALS__SHARE_BUTTON_FACEBOOK" title="Facebook"
class="m-referrals-links__shareButton m-referrals-links__shareButton--facebook"
(click)="openFacebook()"
>
<svg viewBox="0 0 32 32">
......@@ -60,7 +62,8 @@
</svg>
</button>
<button i18n-title="@@M_REFERRALS__SHARE_BUTTON_MESSENGER" title="Messenger" class="m-referrals-links__shareButton m-referrals-links__shareButton--messenger"
<button i18n-title="@@M_REFERRALS__SHARE_BUTTON_MESSENGER" title="Messenger"
class="m-referrals-links__shareButton m-referrals-links__shareButton--messenger"
*ngIf="isMobileOrTablet()"
(click)="openMessenger()"
>
......@@ -69,16 +72,18 @@
</svg>
</button>
<button i18n-title="@@M_REFERRALS__SHARE_BUTTON_Whatsapp" title="Whatsapp" class="m-referrals-links__shareButton m-referrals-links__shareButton--whatsapp"
<button i18n-title="@@M_REFERRALS__SHARE_BUTTON_Whatsapp" title="Whatsapp"
class="m-referrals-links__shareButton m-referrals-links__shareButton--whatsapp"
*ngIf="isMobileOrTablet()"
(click)="openWhatsapp"
(click)="openWhatsapp()"
>
<svg viewBox="0 0 32 32">
<path d="m23.37 21.18c-.31.87-1.8 1.66-2.52 1.77-.65.1-1.46.14-2.35-.15a21.13 21.13 0 0 1 -2.13-.78c-3.74-1.61-6.19-5.36-6.38-5.61s-1.52-2.01-1.52-3.84.97-2.73 1.31-3.1.75-.46 1-.46.5 0 .71.01c.23.01.54-.09.84.64.31.75 1.06 2.57 1.15 2.76.09.18.16.4.03.65-.12.25-.19.4-.37.62-.19.22-.39.48-.56.65-.19.19-.38.39-.16.76s.97 1.59 2.08 2.58c1.43 1.26 2.63 1.66 3 1.84.37.19.59.16.81-.09s.93-1.09 1.18-1.46.5-.31.84-.19 2.18 1.02 2.55 1.21.62.28.72.43c.09.16.09.9-.22 1.77m3.26-15.82a14.88 14.88 0 0 0 -10.57-4.36c-8.23 0-14.94 6.67-14.94 14.87a14.78 14.78 0 0 0 1.99 7.43l-2.12 7.7 7.92-2.07a14.98 14.98 0 0 0 7.14 1.81h.01c8.23 0 14.93-6.67 14.94-14.87a14.74 14.74 0 0 0 -4.37-10.53" fill-rule="evenodd"></path>
</svg>
</button>
<button i18n-title="@@M_REFERRALS__SHARE_BUTTON_SMS" title="SMS" class="m-referrals-links__shareButton m-referrals-links__shareButton--sms"
<button i18n-title="@@M_REFERRALS__SHARE_BUTTON_SMS" title="SMS"
class="m-referrals-links__shareButton m-referrals-links__shareButton--sms"
*ngIf="isMobile()"
(click)="openSMS()"
>
......@@ -87,7 +92,8 @@
</svg>
</button>
<button i18n-title="@@M_REFERRALS__SHARE_BUTTON_EMAIL" title="Email" class="m-referrals-links__shareButton m-referrals-links__shareButton--email"
<button i18n-title="@@M_REFERRALS__SHARE_BUTTON_EMAIL" title="Email"
class="m-referrals-links__shareButton m-referrals-links__shareButton--email"
(click)= "openEmail()"
>
<svg viewBox="0 0 32 32">
......@@ -99,7 +105,7 @@
<div class="m-referrals-links__modalShow m-referrals-links__modalButton">
<a [routerLink]="['/wallet/tokens/referrals']" (click)="closeModal()">
<button class="m-btn m-btn--slim m-btn--action">
<span>Go to Referrals Console</span>
<span i18n-title="@@M_REFERRALS__LINKS_CONSOLE_BUTTON">Go to Referrals Console</span>
</button>
</a>
</div>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment