unoffical wafrn mirror wafrn.net
atproto social-network activitypub
at angular21 76 lines 2.2 kB view raw
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}