File

src/module/components/legality-dialog/legality-dialog.component.ts

Metadata

selector ngx-auth-firebaseui-legality-dialog
styleUrls ./legality-dialog.component.scss
templateUrl ./legality-dialog.component.html

Index

Properties
Methods
Accessors

Constructor

constructor(dialogRef: MatDialogRef, data: LegalityDialogParams)
Parameters :
Name Type Optional
dialogRef MatDialogRef<LegalityDialogComponent> No
data LegalityDialogParams No

Methods

closeDialog
closeDialog()
Returns : void

Properties

Private _disableConfirmActionButton
Default value : false
checkPrivacyPolicy
Type : boolean
checkTOS
Type : boolean
Public data
Type : LegalityDialogParams
Decorators :
@Inject(MAT_DIALOG_DATA)
Public dialogRef
Type : MatDialogRef<LegalityDialogComponent>

Accessors

disableConfirmActionButton
getdisableConfirmActionButton()
import {Component, Inject} from '@angular/core';
import {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material';
import {LegalityDialogParams, LegalityDialogResult} from '../../interfaces/legality.dialog.intreface';

@Component({
  selector: 'ngx-auth-firebaseui-legality-dialog',
  templateUrl: './legality-dialog.component.html',
  styleUrls: ['./legality-dialog.component.scss']
})
export class LegalityDialogComponent {

  checkTOS: boolean;
  checkPrivacyPolicy: boolean;
  private _disableConfirmActionButton = false;

  constructor(public dialogRef: MatDialogRef<LegalityDialogComponent>,
              @Inject(MAT_DIALOG_DATA) public data: LegalityDialogParams) {
  }


  get disableConfirmActionButton(): boolean {
    if (this.data.tosUrl && this.data.privacyPolicyUrl) {
      this._disableConfirmActionButton = !(this.checkTOS && this.checkPrivacyPolicy);
    } else if (this.data.tosUrl && !this.data.privacyPolicyUrl) {
      this._disableConfirmActionButton = !this.checkTOS
    } else if (!this.data.tosUrl && this.data.privacyPolicyUrl) {
      this._disableConfirmActionButton = !this.checkPrivacyPolicy
    }
    return this._disableConfirmActionButton;
  }

  closeDialog() {
    const result: LegalityDialogResult = {
      checked: !this.disableConfirmActionButton,
      authProvider: this.data.authProvider
    };
    this.dialogRef.close(result);
  }

}
<h1 matDialogTitle>Legal requirements</h1>

<mat-dialog-content>
  <div fxLayout="column" fxLayoutAlign="start">
    <mat-checkbox *ngIf="this.data.tosUrl" [(ngModel)]="checkTOS">
      I agree to the
      <span>&nbsp;</span>
      <a target="_blank"
         [href]="this.data.tosUrl">
        Terms of Service and Conditions
      </a>
    </mat-checkbox>

    <mat-checkbox *ngIf="this.data.privacyPolicyUrl"
                  [(ngModel)]="checkPrivacyPolicy">
      I have read and agree to the
      <span>&nbsp;</span>
      <a target="_blank"
         [href]="this.data.privacyPolicyUrl">
        Privacy
      </a>
    </mat-checkbox>
  </div>
</mat-dialog-content>

<mat-dialog-actions>
  <button id="decline-action"
          mat-raised-button
          matDialogClose
          color="warn">Decline</button>
  <button id="confirm-action"
          mat-raised-button
          color="primary"
          [disabled]="disableConfirmActionButton"
          (click)="closeDialog()">Confirm
  </button>
</mat-dialog-actions>

./legality-dialog.component.scss

::ng-deep .mat-checkbox-label {
  display: flex;
  flex-wrap: wrap;
}

mat-dialog-content {
  div {
    margin-top: 1.5rem
  }
}

mat-dialog-actions {
  margin-top: 1rem;
}
Legend
Html element
Component
Html element with directive

result-matching ""

    No results matching ""