53 lines
1.1 KiB
JavaScript
53 lines
1.1 KiB
JavaScript
|
import Status from '../status/status.vue'
|
||
|
|
||
|
const debug = console.log
|
||
|
|
||
|
const ThreadTree = {
|
||
|
components: {
|
||
|
Status
|
||
|
},
|
||
|
name: 'ThreadTree',
|
||
|
props: {
|
||
|
depth: Number,
|
||
|
status: Object,
|
||
|
inProfile: Boolean,
|
||
|
conversation: Array,
|
||
|
collapsable: Boolean,
|
||
|
isExpanded: Boolean,
|
||
|
pinnedStatusIdsObject: Object,
|
||
|
profileUserId: String,
|
||
|
|
||
|
focused: Function,
|
||
|
getHighlight: Function,
|
||
|
getReplies: Function,
|
||
|
setHighlight: Function,
|
||
|
toggleExpanded: Function
|
||
|
},
|
||
|
computed: {
|
||
|
reverseLookupTable () {
|
||
|
return this.conversation.reduce((table, status, index) => {
|
||
|
table[status.id] = index
|
||
|
return table
|
||
|
}, {})
|
||
|
},
|
||
|
currentReplies () {
|
||
|
debug('status:', this.status)
|
||
|
debug('getReplies:', this.getReplies(this.status.id))
|
||
|
return this.getReplies(this.status.id).map(({ id }) => this.statusById(id))
|
||
|
},
|
||
|
},
|
||
|
methods: {
|
||
|
statusById (id) {
|
||
|
return this.conversation[this.reverseLookupTable[id]]
|
||
|
},
|
||
|
collapseThread () {
|
||
|
},
|
||
|
showThread () {
|
||
|
},
|
||
|
showAllSubthreads () {
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
export default ThreadTree
|