diff --git a/projects/shared/src/lib/membership-options/membership-options.component.html b/projects/account/src/app/profile/membership-options/membership-options.component.html similarity index 93% rename from projects/shared/src/lib/membership-options/membership-options.component.html rename to projects/account/src/app/profile/membership-options/membership-options.component.html index 35fa699..f3c4315 100644 --- a/projects/shared/src/lib/membership-options/membership-options.component.html +++ b/projects/account/src/app/profile/membership-options/membership-options.component.html @@ -1,7 +1,7 @@ (); + public selectedMembershipType: string; + + constructor(public mediaObserver: MediaObserver, private profileService: ProfileService) { + this.mediaWatcher = mediaObserver.media$.subscribe( + (change: MediaChange) => { + this.alignVertical = ['xs', 'sm'].includes(change.mqAlias); + } + ); + } + + ngOnInit(): void { + this.profileService.selectedMembershipType.subscribe( + (membershipType) => { this.selectedMembershipType = membershipType; } + ); + this.profileService.setSelectedMembershipType( + this.accountMembership, + this.membershipTypes + ); + + } + + ngOnDestroy(): void { + this.mediaWatcher.unsubscribe(); + } + + onMembershipSelect(newMembershipType: MatButtonToggleChange) { + this.profileService.selectedMembershipType.next(newMembershipType.value); + this.membershipChange.emit(newMembershipType.value); + } + +} diff --git a/projects/account/src/app/profile/profile.module.ts b/projects/account/src/app/profile/profile.module.ts index 6661b89..256b088 100644 --- a/projects/account/src/app/profile/profile.module.ts +++ b/projects/account/src/app/profile/profile.module.ts @@ -4,42 +4,60 @@ import { FlexLayoutModule } from '@angular/flex-layout'; import { FontAwesomeModule } from '@fortawesome/angular-fontawesome'; import { + MatBottomSheetModule, MatButtonModule, + MatButtonToggleModule, MatCardModule, + MatDialogModule, MatFormFieldModule, MatInputModule, MatToolbarModule } from '@angular/material'; +import { NgxStripeModule } from 'ngx-stripe'; + import { AgreementsComponent } from './agreements/agreements.component'; import { DeleteComponent } from './delete/delete.component'; +import { environment} from '../../environments/environment'; import { LoginComponent } from './login/login.component'; +import { MembershipComponent } from './membership/membership.component'; +import { MembershipOptionsComponent } from './membership-options/membership-options.component'; +import { PaymentComponent } from './payment/payment.component'; import { ProfileComponent } from './profile.component'; import { ProfileService } from './profile.service'; -import { MembershipComponent } from './membership/membership.component'; -import { SharedModule } from 'shared'; +import { ProfileRoutingModule } from './profile-routing.module'; +import { VerifyCardDialogComponent } from './payment/verify-card-dialog.component'; @NgModule({ declarations: [ AgreementsComponent, DeleteComponent, LoginComponent, + MembershipComponent, + MembershipOptionsComponent, + PaymentComponent, ProfileComponent, - MembershipComponent + VerifyCardDialogComponent ], entryComponents: [ - LoginComponent + LoginComponent, + PaymentComponent, + VerifyCardDialogComponent ], imports: [ CommonModule, FlexLayoutModule, FontAwesomeModule, + MatBottomSheetModule, MatButtonModule, + MatButtonToggleModule, MatCardModule, + MatDialogModule, MatFormFieldModule, MatInputModule, MatToolbarModule, - SharedModule + NgxStripeModule.forRoot(environment.stripeApiKey), + ProfileRoutingModule ], providers: [ ProfileService diff --git a/projects/shared/src/lib/membership-options/membership-options.component.ts b/projects/shared/src/lib/membership-options/membership-options.component.ts deleted file mode 100644 index acb2a1c..0000000 --- a/projects/shared/src/lib/membership-options/membership-options.component.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core'; -import { MediaChange, MediaObserver } from '@angular/flex-layout'; -import { MatButtonToggleChange } from '@angular/material'; - -import { Subscription } from 'rxjs'; - -export interface MembershipType { - type: string; - rate: string; - ratePeriod: string; - stripePlan: string; -} - -@Component({ - selector: 'shared-membership-options', - templateUrl: './membership-options.component.html', - styleUrls: ['./membership-options.component.scss'] -}) -export class MembershipOptionsComponent implements OnDestroy { - @Input() accountMembership: string; - public alignVertical: boolean; - @Input() membershipTypes: MembershipType[]; - public mediaWatcher: Subscription; - @Output() membershipSelected = new EventEmitter(); - - constructor(public mediaObserver: MediaObserver) { - this.mediaWatcher = mediaObserver.media$.subscribe( - (change: MediaChange) => { - this.alignVertical = ['xs', 'sm'].includes(change.mqAlias); - } - ); - } - - onMembershipSelect(membershipType: MatButtonToggleChange) { - this.membershipSelected.emit(membershipType.value); - } - - ngOnDestroy(): void { - this.mediaWatcher.unsubscribe(); - } - -} diff --git a/projects/shared/src/lib/shared.component.ts b/projects/shared/src/lib/shared.component.ts index cfdc48a..ae82521 100644 --- a/projects/shared/src/lib/shared.component.ts +++ b/projects/shared/src/lib/shared.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from '@angular/core'; @Component({ - selector: 'lib-shared', + selector: 'shared-base', template: `

shared works! diff --git a/projects/shared/src/lib/shared.module.ts b/projects/shared/src/lib/shared.module.ts index 07b39e1..f5a586e 100644 --- a/projects/shared/src/lib/shared.module.ts +++ b/projects/shared/src/lib/shared.module.ts @@ -13,7 +13,6 @@ import { import { FacebookButtonComponent } from './facebook-button/facebook-button.component'; import { GithubButtonComponent } from './github-button/github-button.component'; import { GoogleButtonComponent } from './google-button/google-button.component'; -import { MembershipOptionsComponent } from './membership-options/membership-options.component'; import { SharedComponent } from './shared.component'; export function getAuthServiceConfigs() { @@ -38,7 +37,6 @@ export function getAuthServiceConfigs() { FacebookButtonComponent, GithubButtonComponent, GoogleButtonComponent, - MembershipOptionsComponent, SharedComponent ], imports: [ @@ -52,7 +50,6 @@ export function getAuthServiceConfigs() { FacebookButtonComponent, GithubButtonComponent, GoogleButtonComponent, - MembershipOptionsComponent, SharedComponent ], providers: [