This repository has been archived by the owner on May 13, 2024. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 63
/
Comment.vue
81 lines (75 loc) · 1.49 KB
/
Comment.vue
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<template>
<Vssue v-if="$service.comment.service === 'vssue'" v-bind="vssueProps" />
<Disqus
v-else-if="$service.comment.service === 'disqus'"
v-bind="disqusProps"
/>
</template>
<script>
import identity from 'lodash/identity';
import pickBy from 'lodash/pickBy';
export default {
props: {
// vssue's props
title: {
type: [String, Function],
required: false,
},
issueId: {
type: [String, Number],
required: false,
},
options: {
type: Object,
required: false,
},
// vue-disqus's props
shortname: {
type: String,
required: false,
},
identifier: {
type: String,
required: false,
},
url: {
type: String,
required: false,
},
remote_auth_s3: {
type: String,
required: false,
},
api_key: {
type: String,
required: false,
},
sso_config: {
type: Object,
required: false,
},
language: {
type: String,
required: false,
},
},
computed: {
propsWithoutEmptyProperties() {
return pickBy(this.$props, identity);
},
commentProps() {
return Object.assign(
{},
this.propsWithoutEmptyProperties,
this.$frontmatter.comment
);
},
vssueProps() {
return Object.assign({ title: this.$page.title }, this.commentProps);
},
disqusProps() {
return Object.assign({ identifier: this.$page.key }, this.commentProps);
},
},
};
</script>