diff --git a/web/src/app/routes/dashboard/dashboard.component.html b/web/src/app/routes/dashboard/dashboard.component.html
index 30dcd41..92f4ec3 100644
--- a/web/src/app/routes/dashboard/dashboard.component.html
+++ b/web/src/app/routes/dashboard/dashboard.component.html
@@ -12,7 +12,7 @@
{{ post.title }}
@@ -31,5 +31,14 @@
>
Delete
+ @if (post.secret !== undefined) {
+
+ Copy Link
+
+ }
diff --git a/web/src/app/routes/dashboard/dashboard.component.ts b/web/src/app/routes/dashboard/dashboard.component.ts
index 3368765..857fa61 100644
--- a/web/src/app/routes/dashboard/dashboard.component.ts
+++ b/web/src/app/routes/dashboard/dashboard.component.ts
@@ -17,4 +17,8 @@ export class DashboardComponent {
delete(id: number) {
this.postsService.deletePost(id);
}
+ getPath(secret: string) {
+ const url = document.URL.replaceAll('/dashboard', '');
+ navigator.clipboard.writeText(`${url}/post/secret/${secret}`);
+ }
}
diff --git a/web/src/app/routes/post/post.component.ts b/web/src/app/routes/post/post.component.ts
index 7a54e8c..575cbe5 100644
--- a/web/src/app/routes/post/post.component.ts
+++ b/web/src/app/routes/post/post.component.ts
@@ -1,6 +1,5 @@
import { Component, inject, Input } from '@angular/core';
import { PostsService } from '../../shared/services/posts.service';
-import { JsonPipe, NgIf } from '@angular/common';
import { MarkdownComponent } from '../../components/markdown/markdown.component';
@Component({
diff --git a/web/src/app/routes/post/secret-post/secret-post.component.html b/web/src/app/routes/post/secret-post/secret-post.component.html
new file mode 100644
index 0000000..5193ad4
--- /dev/null
+++ b/web/src/app/routes/post/secret-post/secret-post.component.html
@@ -0,0 +1,7 @@
+
{{ post()?.title }}
+TL;DR; {{ post()?.tldr }}
+
+
diff --git a/web/src/app/routes/post/secret-post/secret-post.component.ts b/web/src/app/routes/post/secret-post/secret-post.component.ts
new file mode 100644
index 0000000..3c67b8d
--- /dev/null
+++ b/web/src/app/routes/post/secret-post/secret-post.component.ts
@@ -0,0 +1,28 @@
+import {
+ Component,
+ inject,
+ Input,
+ OnInit,
+ signal,
+ WritableSignal,
+} from '@angular/core';
+import { PostsService } from '../../../shared/services/posts.service';
+import { Post } from '../../../shared/interfaces/post';
+import { MarkdownComponent } from '../../../components/markdown/markdown.component';
+
+@Component({
+ selector: 'app-secret-post',
+ imports: [MarkdownComponent],
+ templateUrl: './secret-post.component.html',
+})
+export class SecretPostComponent implements OnInit {
+ @Input() secret!: string;
+ private postsService = inject(PostsService);
+ post: WritableSignal = signal(undefined);
+
+ ngOnInit(): void {
+ this.postsService.getPostBySecret(this.secret).subscribe((post) => {
+ this.post.set(post);
+ });
+ }
+}