Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions apps/mobile/src/app/app.component.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Component, OnInit } from '@angular/core';
import { Component, OnInit, inject } from '@angular/core';
import { SwUpdate } from '@angular/service-worker';
import { ToastService } from '@task-ninja/mobile/shared/data-access';

Expand All @@ -8,7 +8,8 @@ import { ToastService } from '@task-ninja/mobile/shared/data-access';
styleUrls: ['app.component.scss'],
})
export class AppComponent implements OnInit {
constructor(private swUpdate: SwUpdate, private toastService: ToastService) {}
private readonly swUpdate = inject(SwUpdate);
private readonly toastService = inject(ToastService);

async ngOnInit() {
this.swUpdate.versionUpdates.subscribe(async (res) => {
Expand Down
5 changes: 3 additions & 2 deletions libs/mobile/auth/data-access/src/lib/services/auth.service.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Injectable } from '@angular/core';
import { Injectable, inject } from '@angular/core';
import {
Auth,
UserCredential,
Expand All @@ -13,7 +13,8 @@ import { Firestore, doc, setDoc } from '@angular/fire/firestore';
providedIn: 'root',
})
export class AuthService {
constructor(private auth: Auth, private firestore: Firestore) {}
private readonly auth = inject(Auth);
private readonly firestore = inject(Firestore);

async signUp(
email: string,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Component } from '@angular/core';
import { Component, inject } from '@angular/core';
import {
AbstractControl,
FormBuilder,
Expand All @@ -15,20 +15,18 @@ import { ToastService } from '@task-ninja/mobile/shared/data-access';
styleUrls: ['./password-reset.page.scss'],
})
export class PasswordResetPageComponent {
private readonly formBuilder = inject(FormBuilder);
private readonly authService = inject(AuthService);
private readonly toastService = inject(ToastService);
private readonly router = inject(Router);

passwordResetForm: FormGroup = this.formBuilder.group({
email: [null, [Validators.required, Validators.email]],
});

currentYear: number = new Date().getFullYear();
submitAttempt = false;

constructor(
private formBuilder: FormBuilder,
private authService: AuthService,
private toastService: ToastService,
private router: Router
) {}

// Maybe rename this function into formControls
// to make it more readable in the future
get f(): { [key: string]: AbstractControl } {
Expand Down
16 changes: 7 additions & 9 deletions libs/mobile/auth/feature/signin/src/lib/signin.page.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Component } from '@angular/core';
import { Component, inject } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { Router } from '@angular/router';
import { LoadingController } from '@ionic/angular';
Expand All @@ -11,6 +11,12 @@ import { ToastService } from '@task-ninja/mobile/shared/data-access';
styleUrls: ['./signin.page.scss'],
})
export class SigninPageComponent {
private readonly authService = inject(AuthService);
private readonly loadingController = inject(LoadingController);
private readonly formBuilder = inject(FormBuilder);
private readonly toastService = inject(ToastService);
private readonly router = inject(Router);

currentYear: number = new Date().getFullYear();
submitAttempt = false;

Expand All @@ -22,14 +28,6 @@ export class SigninPageComponent {
],
});

constructor(
private authService: AuthService,
private loadingController: LoadingController,
private formBuilder: FormBuilder,
private toastService: ToastService,
private router: Router
) {}

// Sign in
async signIn() {
this.submitAttempt = true;
Expand Down
16 changes: 7 additions & 9 deletions libs/mobile/auth/feature/signup/src/lib/signup.page.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Component } from '@angular/core';
import { Component, inject } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { Router } from '@angular/router';
import { LoadingController } from '@ionic/angular';
Expand All @@ -11,6 +11,12 @@ import { ToastService } from '@task-ninja/mobile/shared/data-access';
styleUrls: ['./signup.page.scss'],
})
export class SignupPageComponent {
private readonly authService = inject(AuthService);
private readonly loadingController = inject(LoadingController);
private readonly formBuilder = inject(FormBuilder);
private readonly toastService = inject(ToastService);
private readonly router = inject(Router);

currentYear: number = new Date().getFullYear();
submitAttempt = false;

Expand All @@ -27,14 +33,6 @@ export class SignupPageComponent {
],
});

constructor(
private authService: AuthService,
private loadingController: LoadingController,
private formBuilder: FormBuilder,
private toastService: ToastService,
private router: Router
) {}

// Sign up
async signUp() {
this.submitAttempt = true;
Expand Down
7 changes: 4 additions & 3 deletions libs/mobile/home/feature/src/lib/home.page.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Component, OnDestroy, OnInit } from '@angular/core';
import { Component, OnDestroy, OnInit, inject } from '@angular/core';
import { Auth } from '@angular/fire/auth';
import { Task, TaskService } from '@task-ninja/mobile/tasks/data-access';
import { Subject, takeUntil } from 'rxjs';
Expand All @@ -9,15 +9,16 @@ import { Subject, takeUntil } from 'rxjs';
styleUrls: ['home.page.scss'],
})
export class HomePageComponent implements OnInit, OnDestroy {
private readonly taskService = inject(TaskService);
private readonly auth = inject(Auth);

ownedTasksLoaded = false;
tasksLoaded = false;
ownedTasks: Task[] = [];
tasks: Task[] = [];
private isDestroyed$: Subject<void> = new Subject();
currentUser: string;

constructor(private taskService: TaskService, private auth: Auth) {}

ngOnInit(): void {
this.currentUser = this.auth.currentUser?.displayName as string;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import { Injectable } from '@angular/core';
import { Injectable, inject } from '@angular/core';
import { ToastController } from '@ionic/angular';

@Injectable({
providedIn: 'root',
})
export class ToastService {
constructor(public toastController: ToastController) {}
private readonly toastController = inject(ToastController);

async presentToast(
header: string,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Component } from '@angular/core';
import { Component, inject } from '@angular/core';
import { ModalController } from '@ionic/angular';
import { Category } from '@task-ninja/mobile/tasks/data-access';

Expand All @@ -8,6 +8,8 @@ import { Category } from '@task-ninja/mobile/tasks/data-access';
styleUrls: ['./filters.component.scss'],
})
export class FiltersComponent {
private readonly modalController = inject(ModalController);

customPopoverOptions: any = {
message: 'Select one',
cssClass: 'popover-in-modal',
Expand Down Expand Up @@ -43,8 +45,6 @@ export class FiltersComponent {
},
];

constructor(private modalController: ModalController) {}

// Cancel
cancel() {
// Dismiss modal
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@
>
</ion-icon>
</ion-avatar>
<p class="font-weight-500">{{ auth.currentUser?.displayName }}</p>
<p class="font-weight-500">{{ currentUser.displayName }}</p>
<ion-text color="medium">
<small>{{ auth.currentUser?.email }}</small>
<small>{{ currentUser.email }}</small>
</ion-text>
</div>

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { Component } from '@angular/core';
import { Component, inject } from '@angular/core';
import { Auth } from '@angular/fire/auth';
import { Router } from '@angular/router';
import { User } from '@firebase/auth';
import { AuthService } from '@task-ninja/mobile/auth/data-access';

@Component({
Expand All @@ -9,11 +10,14 @@ import { AuthService } from '@task-ninja/mobile/auth/data-access';
styleUrls: ['./settings.component.scss'],
})
export class SettingsComponent {
constructor(
private authService: AuthService,
private router: Router,
public auth: Auth
) {}
private readonly authService = inject(AuthService);
private readonly router = inject(Router);
private readonly auth = inject(Auth);

public currentUser: Partial<User> = {
displayName: this.auth.currentUser?.displayName,
email: this.auth.currentUser?.email,
};

async signOut() {
await this.authService.signOut();
Expand Down
10 changes: 4 additions & 6 deletions libs/mobile/tabs/feature/src/lib/tabs.page.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Component } from '@angular/core';
import { Component, inject } from '@angular/core';
import {
ActionSheetController,
IonRouterOutlet,
Expand All @@ -12,11 +12,9 @@ import { AddTaskComponent } from '@task-ninja/mobile/tasks/feature/add-task';
styleUrls: ['tabs.page.scss'],
})
export class TabsPageComponent {
constructor(
private actionSheetController: ActionSheetController,
private modalController: ModalController,
private routerOutlet: IonRouterOutlet
) {}
private readonly actionSheetController = inject(ActionSheetController);
private readonly modalController = inject(ModalController);
private readonly routerOutlet = inject(IonRouterOutlet);

async selectAction() {
const actionSheet = await this.actionSheetController.create({
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Injectable } from '@angular/core';
import { Injectable, inject } from '@angular/core';
import { Auth } from '@angular/fire/auth';
import {
FieldValue,
Expand Down Expand Up @@ -38,7 +38,8 @@ export interface Category {
providedIn: 'root',
})
export class TaskService {
constructor(private firestore: Firestore, private auth: Auth) {}
private readonly firestore = inject(Firestore);
private readonly auth = inject(Auth);

getTasks(): Observable<Task[]> {
const tasksRef = collection(this.firestore, 'tasks');
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Component, Input, OnInit } from '@angular/core';
import { Component, Input, OnInit, inject } from '@angular/core';
import {
AbstractControl,
FormBuilder,
Expand All @@ -18,6 +18,12 @@ import {
styleUrls: ['./add-task.component.scss'],
})
export class AddTaskComponent implements OnInit {
private readonly modalController = inject(ModalController);
private readonly loadingController = inject(LoadingController);
private readonly formBuilder = inject(FormBuilder);
private readonly taskService = inject(TaskService);
private readonly toastService = inject(ToastService);

@Input() type: string;
@Input() taskId: string;
@Input() selectedTask: Task;
Expand Down Expand Up @@ -57,14 +63,6 @@ export class AddTaskComponent implements OnInit {
},
];

constructor(
private modalController: ModalController,
private loadingController: LoadingController,
private formBuilder: FormBuilder,
private taskService: TaskService,
private toastService: ToastService
) {}

ngOnInit(): void {
if (this.type === 'edit-task') {
this.addTaskForm.patchValue({
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Component, OnInit } from '@angular/core';
import { Component, OnInit, inject } from '@angular/core';
import { Auth } from '@angular/fire/auth';
import { ActivatedRoute, Router } from '@angular/router';
import {
Expand All @@ -17,20 +17,18 @@ import { Observable } from 'rxjs';
styleUrls: ['./task-detail.component.scss'],
})
export class TaskDetailComponent implements OnInit {
private readonly route = inject(ActivatedRoute);
private readonly router = inject(Router);
private readonly taskService = inject(TaskService);
private readonly loadingController = inject(LoadingController);
private readonly toastService = inject(ToastService);
private readonly auth = inject(Auth);
private readonly modalController = inject(ModalController);
private readonly routerOutlet = inject(IonRouterOutlet);

selectedTask$: Observable<Task>;
selectedTaskId: string;

constructor(
private route: ActivatedRoute,
private router: Router,
private taskService: TaskService,
private loadingController: LoadingController,
private toastService: ToastService,
private auth: Auth,
private modalController: ModalController,
private routerOutlet: IonRouterOutlet
) {}

ngOnInit(): void {
this.selectedTaskId = this.route.snapshot.paramMap.get('id') as string;
this.selectedTask$ = this.taskService.getTaskById(this.selectedTaskId);
Expand Down
12 changes: 5 additions & 7 deletions libs/mobile/tasks/feature/tasks/src/lib/tasks.page.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Component, OnDestroy, OnInit } from '@angular/core';
import { Component, OnDestroy, OnInit, inject } from '@angular/core';
import { IonRouterOutlet, ModalController } from '@ionic/angular';
import { FiltersComponent } from '@task-ninja/mobile/shared/feature/filters';
import { Task, TaskService } from '@task-ninja/mobile/tasks/data-access';
Expand All @@ -10,16 +10,14 @@ import { Subject, takeUntil } from 'rxjs';
styleUrls: ['tasks.page.scss'],
})
export class TasksPageComponent implements OnInit, OnDestroy {
private readonly taskService = inject(TaskService);
private readonly modalController = inject(ModalController);
private readonly routerOutlet = inject(IonRouterOutlet);

contentLoaded = false;
tasks: Task[] = [];
private isDestroyed$: Subject<void> = new Subject();

constructor(
private taskService: TaskService,
private modalController: ModalController,
private routerOutlet: IonRouterOutlet
) {}

ngOnInit(): void {
this.taskService
.getTasks()
Expand Down