Skip to content

Commit d39316a

Browse files
committed
Update sample project to standalone components #197
1 parent c385bd7 commit d39316a

File tree

10 files changed

+109
-112
lines changed

10 files changed

+109
-112
lines changed

projects/firebaseui-angular-library/src/lib/firebaseui-angular-library.component.spec.ts

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,24 +14,24 @@ describe('FirebaseuiAngularLibraryComponent', () => {
1414
firebaseAuthState = new Subject();
1515

1616
TestBed.configureTestingModule({
17-
declarations: [FirebaseuiAngularLibraryComponent],
18-
providers: [
17+
imports: [FirebaseuiAngularLibraryComponent],
18+
providers: [
1919
{
20-
provide: AngularFireAuth,
21-
useValue: new class {
22-
authState = firebaseAuthState.asObservable();
23-
}()
20+
provide: AngularFireAuth,
21+
useValue: new class {
22+
authState = firebaseAuthState.asObservable();
23+
}()
2424
},
2525
{
26-
provide: FirebaseuiAngularLibraryService,
27-
useValue: new class {
28-
firebaseUiInstance = {};
29-
}
26+
provide: FirebaseuiAngularLibraryService,
27+
useValue: new class {
28+
firebaseUiInstance = {};
29+
}
3030
},
31-
{provide: 'firebaseUIAuthConfig', useValue: {main: 'MAIN', overwritten: 'MAIN'}},
32-
{provide: 'firebaseUIAuthConfigFeature', useValue: {feature: 'FEATURE', overwritten: 'FEATURE'}}
33-
]
34-
})
31+
{ provide: 'firebaseUIAuthConfig', useValue: { main: 'MAIN', overwritten: 'MAIN' } },
32+
{ provide: 'firebaseUIAuthConfigFeature', useValue: { feature: 'FEATURE', overwritten: 'FEATURE' } }
33+
]
34+
})
3535
.compileComponents();
3636
}));
3737

projects/firebaseui-angular-library/src/lib/firebaseui-angular-library.component.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,9 @@ import User = firebase.User;
1414
import UserCredential = firebase.auth.UserCredential;
1515

1616
@Component({
17-
selector: 'firebase-ui',
18-
template: '<div id="firebaseui-auth-container"></div>'
17+
selector: 'firebase-ui',
18+
template: '<div id="firebaseui-auth-container"></div>',
19+
standalone: true
1920
})
2021
export class FirebaseuiAngularLibraryComponent implements OnInit, OnDestroy {
2122
private static readonly COMPUTED_CALLBACKS = 'COMPUTED_CALLBACKS';

projects/firebaseui-angular-library/src/lib/firebaseui-angular-library.module.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ import {NativeFirebaseUIAuthConfig} from './firebaseui-angular-library.helper';
55
import {FirebaseuiAngularLibraryService} from './firebaseui-angular-library.service';
66

77
@NgModule({
8-
imports: [
9-
CommonModule
10-
],
11-
declarations: [FirebaseuiAngularLibraryComponent],
12-
providers: [FirebaseuiAngularLibraryService],
13-
exports: [FirebaseuiAngularLibraryComponent]
8+
imports: [
9+
CommonModule,
10+
FirebaseuiAngularLibraryComponent
11+
],
12+
providers: [FirebaseuiAngularLibraryService],
13+
exports: [FirebaseuiAngularLibraryComponent]
1414
})
1515
export class FirebaseUIModule {
1616
static forRoot(firebaseUiAuthConfig: NativeFirebaseUIAuthConfig): ModuleWithProviders<FirebaseUIModule> {

src/app/app.component.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
import { Component } from '@angular/core';
2+
import { RouterOutlet } from '@angular/router';
23

34
@Component({
4-
selector: 'fbui-ng-root',
5-
templateUrl: './app.component.html',
6-
styleUrls: ['./app.component.scss']
5+
selector: 'fbui-ng-root',
6+
templateUrl: './app.component.html',
7+
styleUrls: ['./app.component.scss'],
8+
standalone: true,
9+
imports: [RouterOutlet]
710
})
811
export class AppComponent {
912

src/app/app.module.ts

Lines changed: 0 additions & 58 deletions
This file was deleted.

src/app/main/main.component.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
import {Component, OnInit} from '@angular/core';
22
import {AngularFireAuth} from '@angular/fire/compat/auth';
3-
import {FirebaseUISignInFailure, FirebaseUISignInSuccessWithAuthResult} from 'firebaseui-angular';
4-
import {Router} from '@angular/router';
3+
import { FirebaseUISignInFailure, FirebaseUISignInSuccessWithAuthResult, FirebaseUIModule } from 'firebaseui-angular';
4+
import { Router, RouterLink } from '@angular/router';
55

66
@Component({
7-
selector: 'fbui-ng-main',
8-
templateUrl: './main.component.html',
9-
styleUrls: ['./main.component.scss']
7+
selector: 'fbui-ng-main',
8+
templateUrl: './main.component.html',
9+
styleUrls: ['./main.component.scss'],
10+
standalone: true,
11+
imports: [FirebaseUIModule, RouterLink]
1012
})
1113
export class MainComponent implements OnInit {
1214

src/app/main/main.module.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@ const routes: Routes = [
99
];
1010

1111
@NgModule({
12-
imports: [
13-
CommonModule,
14-
FirebaseUIModule.forFeature({tosUrl: 'MAIN_MODULE'}),
15-
RouterModule.forChild(routes)
16-
],
17-
declarations: [MainComponent]
12+
imports: [
13+
CommonModule,
14+
FirebaseUIModule.forFeature({ tosUrl: 'MAIN_MODULE' }),
15+
RouterModule.forChild(routes),
16+
MainComponent
17+
]
1818
})
1919
export class MainModule {
2020
}

src/app/second-page/second-page.component.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
import {Component, OnInit} from '@angular/core';
22
import {AngularFireAuth} from '@angular/fire/compat/auth';
3-
import {FirebaseUISignInSuccessWithAuthResult} from 'firebaseui-angular';
3+
import { FirebaseUISignInSuccessWithAuthResult, FirebaseUIModule } from 'firebaseui-angular';
4+
import { RouterLink } from '@angular/router';
45

56
@Component({
6-
selector: 'fbui-ng-second-page',
7-
templateUrl: './second-page.component.html',
8-
styleUrls: ['./second-page.component.scss']
7+
selector: 'fbui-ng-second-page',
8+
templateUrl: './second-page.component.html',
9+
styleUrls: ['./second-page.component.scss'],
10+
standalone: true,
11+
imports: [FirebaseUIModule, RouterLink]
912
})
1013
export class SecondPageComponent implements OnInit {
1114

src/app/second-page/second.module.ts

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,16 @@ const routes: Routes = [
1010

1111

1212
@NgModule({
13-
imports: [
14-
CommonModule,
15-
FirebaseUIModule.forFeature({
16-
signInOptions: [
17-
firebase.auth.GoogleAuthProvider.PROVIDER_ID]
18-
}),
19-
RouterModule.forChild(routes)
20-
],
21-
declarations: [SecondPageComponent]
13+
imports: [
14+
CommonModule,
15+
FirebaseUIModule.forFeature({
16+
signInOptions: [
17+
firebase.auth.GoogleAuthProvider.PROVIDER_ID
18+
]
19+
}),
20+
RouterModule.forChild(routes),
21+
SecondPageComponent
22+
]
2223
})
2324
export class SecondModule {
2425
}

src/main.ts

Lines changed: 50 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,57 @@
1-
import { enableProdMode } from '@angular/core';
2-
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
1+
import {enableProdMode, importProvidersFrom} from '@angular/core';
2+
3+
4+
import {environment} from './environments/environment';
5+
import {AppComponent} from './app/app.component';
6+
import {firebase, firebaseui, FirebaseUIModule} from 'firebaseui-angular';
7+
import {AngularFireAuthModule} from '@angular/fire/compat/auth';
8+
import {AngularFireModule} from '@angular/fire/compat';
9+
import {AppRoutingModule} from './app/app-routing.module';
10+
import {FormsModule} from '@angular/forms';
11+
import {bootstrapApplication, BrowserModule} from '@angular/platform-browser';
12+
13+
const firebaseUiAuthConfig: firebaseui.auth.Config = {
14+
signInFlow: 'popup',
15+
signInOptions: [
16+
firebase.auth.GoogleAuthProvider.PROVIDER_ID,
17+
{
18+
scopes: [
19+
'public_profile',
20+
'email',
21+
'user_likes',
22+
'user_friends'
23+
],
24+
customParameters: {
25+
'auth_type': 'reauthenticate'
26+
},
27+
provider: firebase.auth.FacebookAuthProvider.PROVIDER_ID
28+
},
29+
firebase.auth.TwitterAuthProvider.PROVIDER_ID,
30+
firebase.auth.GithubAuthProvider.PROVIDER_ID,
31+
{
32+
requireDisplayName: false,
33+
provider: firebase.auth.EmailAuthProvider.PROVIDER_ID
34+
},
35+
firebase.auth.PhoneAuthProvider.PROVIDER_ID,
36+
firebaseui.auth.AnonymousAuthProvider.PROVIDER_ID
37+
],
38+
tosUrl: '<your-tos-link>',
39+
privacyPolicyUrl: '<your-privacyPolicyUrl-link>',
40+
credentialHelper: firebaseui.auth.CredentialHelper.GOOGLE_YOLO
41+
};
342

4-
import { AppModule } from './app/app.module';
5-
import { environment } from './environments/environment';
643

744
if (environment.production) {
845
enableProdMode();
946
}
1047

11-
platformBrowserDynamic().bootstrapModule(AppModule)
48+
bootstrapApplication(AppComponent, {
49+
providers: [importProvidersFrom(
50+
BrowserModule,
51+
FormsModule,
52+
AppRoutingModule,
53+
AngularFireModule.initializeApp(environment.firebaseConfig),
54+
AngularFireAuthModule,
55+
FirebaseUIModule.forRoot(firebaseUiAuthConfig))]
56+
})
1257
.catch(err => console.log(err));

0 commit comments

Comments
 (0)