unoffical wafrn mirror
wafrn.net
atproto
social-network
activitypub
1import { Component, inject } from "@angular/core";
2import { MatButtonModule } from "@angular/material/button";
3import { DeletePostService } from "src/app/services/delete-post.service";
4import { MessageService } from "src/app/services/message.service";
5import {
6 MatDialogContent,
7 MatDialogTitle,
8 MatDialogActions,
9 MatDialogClose,
10 MatDialogRef,
11 MAT_DIALOG_DATA,
12} from "@angular/material/dialog";
13import { LoaderComponent } from "../loader/loader.component";
14@Component({
15 selector: "app-delete-post",
16 templateUrl: "./delete-post.component.html",
17 styleUrls: ["./delete-post.component.scss"],
18 imports: [MatButtonModule, MatDialogTitle, LoaderComponent],
19})
20export class DeletePostComponent {
21 private deletePostService = inject(DeletePostService);
22 private messages = inject(MessageService);
23 private dialogRef = inject<MatDialogRef<DeletePostComponent>>(MatDialogRef);
24 data = inject<{
25 id: string;
26 }>(MAT_DIALOG_DATA);
27
28 postToDelete: string;
29 deleting = false;
30
31 constructor() {
32 const data = this.data;
33
34 this.postToDelete = data.id;
35 }
36
37 cancelDelete() {
38 this.dialogRef.close();
39 }
40
41 async deletePost() {
42 this.deleting = true;
43 if (this.postToDelete) {
44 try {
45 let res = await this.deletePostService.deletePost(this.postToDelete);
46 if (res) {
47 this.messages.add({
48 severity: "success",
49 summary:
50 "The post has been deleted and now the page will be reloaded",
51 });
52 this.dialogRef.close();
53 setTimeout(() => {
54 window.location.reload();
55 }, 1000);
56 } else {
57 this.messages.add({
58 severity: "error",
59 summary:
60 "There was an error deleting the post. Please, try again and let us know about the issue",
61 });
62 this.dialogRef.close();
63 }
64 } catch (err) {
65 console.error(err);
66 this.messages.add({
67 severity: "error",
68 summary:
69 "There was an error deleting the post. Please, try again and let us know about the issue",
70 });
71 this.dialogRef.close();
72 }
73 }
74 this.deleting = false;
75 }
76}