summaryrefslogtreecommitdiff
path: root/components/comment.js
diff options
context:
space:
mode:
authorAnthony Wang2023-02-15 16:22:43 -0500
committerAnthony Wang2023-02-15 16:22:43 -0500
commit091ff04c2420c8549ff581399212b4e3346864ee (patch)
tree746ad8767db3f3eab288eab4f08b74c37742777e /components/comment.js
parentfb3c976380e704a1c129f141f0bdb7f5f4576611 (diff)
Delete all files except for demo
Diffstat (limited to 'components/comment.js')
-rw-r--r--components/comment.js71
1 files changed, 71 insertions, 0 deletions
diff --git a/components/comment.js b/components/comment.js
new file mode 100644
index 0000000..d838ee1
--- /dev/null
+++ b/components/comment.js
@@ -0,0 +1,71 @@
+import LikeButton from './like-button.js'
+
+export default {
+ name: 'Comments',
+
+ components: { LikeButton },
+
+ props: ['messageID'],
+
+ methods: {
+ commentObjects(objects) {
+ console.log(111111111111)
+ console.log(objects.filter(o=>'like' in o))
+ console.log(objects.filter(o=>'comment' in o))
+ return objects.filter(o=>
+ 'comment' in o &&
+ 'timestamp' in o &&
+ o.comment == this.messageID &&
+ typeof o.timestamp == 'number')
+ .sort((a,b)=>
+ objects.filter(o=>
+ 'like' in o &&
+ o.like == a._id).length
+ < objects.filter(o=>
+ 'like' in o &&
+ o.like == b._id).length
+ )
+ },
+
+ sendComment(objects) {
+ this.$graffitiUpdate({
+ comment: this.messageID,
+ timestamp: Date.now(),
+ message: this.message,
+ _tags: [this.messageID]
+ })
+ }
+ },
+
+ template: `
+ <graffiti-objects :tags="[messageID]" v-slot="{objects}">
+ <details>
+ <summary>Comment</summary>
+ <form @submit.prevent="sendComment(objects)">
+ <input v-model="message">
+ <input type="submit" value="Submit"/>
+ </form>
+ </details>
+ <details open>
+ <summary>Collapse thread</summary>
+ <ul v-for="object in commentObjects(objects)">
+ <li>
+ <Name :of="object._by"/>
+ {{ object.message }}
+ <LikeButton :messageID="object._id" :parent="messageID"/>
+ <template v-if="object._by==$graffitiMyID">
+ <button @click="object.message+='!!';object._update()">
+ ‼️
+ </button>
+
+ <button @click="object.message='deleted';object._update()">
+ ❌
+ </button>
+ </template>
+ <Comments :messageID="object._id" />
+ </li>
+ </ul>
+ </details>
+ </graffiti-objects>`
+}
+