@@ -10,6 +10,9 @@ import {MarkdownService} from 'ngx-markdown';
10
10
import { Comparator } from '../../../providers/core/utils/utils' ;
11
11
import { Resources } from '../../../providers/core/utils/resources' ;
12
12
13
+ // Web
14
+ import { WebSocialShareInput } from 'web-social-share/dist/types/types/web-social-share/web-social-share-input' ;
15
+
13
16
@Component ( {
14
17
selector : 'app-blog-post-view' ,
15
18
styleUrls : [ './blog-post-view.component.scss' ] ,
@@ -27,6 +30,9 @@ export class BlogPostViewComponent implements OnInit, OnDestroy {
27
30
post : string ;
28
31
notFound = false ;
29
32
33
+ showShare = false ;
34
+ shareOptions : WebSocialShareInput ;
35
+
30
36
constructor ( private route : ActivatedRoute ,
31
37
private sanitizer : DomSanitizer ,
32
38
private markdownService : MarkdownService ,
@@ -65,7 +71,7 @@ export class BlogPostViewComponent implements OnInit, OnDestroy {
65
71
const images : string [ ] = content . match ( / (?: \/ a s s e t s \/ b l o g \/ i m g \/ p o s t ) ( .* ) (?: j p g | g i f ) / g) ;
66
72
67
73
this . meta . updateTag ( { property : 'og:type' , content : 'article' } ) ;
68
- this . meta . updateTag ( { property : 'og:url' , content : 'https://fluster.io /blog/post/' + this . postId } ) ;
74
+ this . meta . updateTag ( { property : 'og:url' , content : this . RESOURCES . SOCIAL_SHARING . FLUSTER_WEBSITE + ' /blog/post/' + this . postId } ) ;
69
75
70
76
if ( Comparator . hasElements ( images ) ) {
71
77
this . meta . updateTag ( {
@@ -101,5 +107,51 @@ export class BlogPostViewComponent implements OnInit, OnDestroy {
101
107
resolve ( ) ;
102
108
} ) ;
103
109
}
110
+
111
+ async share ( ) : Promise < { } > {
112
+ return new Promise ( ( resolve ) => {
113
+ this . shareOptions = {
114
+ config : [ {
115
+ facebook : {
116
+ socialShareUrl : this . RESOURCES . SOCIAL_SHARING . FLUSTER_WEBSITE + + '/blog/post/' + this . postId ,
117
+ socialSharePopupWidth : 400 ,
118
+ socialSharePopupHeight : 400
119
+ }
120
+ } , {
121
+ twitter : {
122
+ socialShareUrl : this . RESOURCES . SOCIAL_SHARING . FLUSTER_WEBSITE + + '/blog/post/' + this . postId ,
123
+ socialSharePopupWidth : 300 ,
124
+ socialSharePopupHeight : 400
125
+ }
126
+ } , {
127
+ reddit : {
128
+ socialShareUrl : this . RESOURCES . SOCIAL_SHARING . FLUSTER_WEBSITE + + '/blog/post/' + this . postId ,
129
+ socialSharePopupWidth : 300 ,
130
+ socialSharePopupHeight : 500
131
+ }
132
+ } , {
133
+ linkedin : {
134
+ socialShareUrl : this . RESOURCES . SOCIAL_SHARING . FLUSTER_WEBSITE + + '/blog/post/' + this . postId
135
+ }
136
+ } , {
137
+ pinterest : {
138
+ socialShareUrl : this . RESOURCES . SOCIAL_SHARING . FLUSTER_WEBSITE + + '/blog/post/' + this . postId
139
+ }
140
+ } , {
141
+ email : {
142
+ socialShareBody : this . RESOURCES . SOCIAL_SHARING . FLUSTER_WEBSITE + + '/blog/post/' + this . postId
143
+ }
144
+ } ]
145
+ } ;
146
+
147
+ this . showShare = true ;
148
+
149
+ resolve ( ) ;
150
+ } ) ;
151
+ }
152
+
153
+ shareClose ( ) {
154
+ this . showShare = false ;
155
+ }
104
156
}
105
157
0 commit comments