From cf3fc97202588e835ade5d6ab1a3c087e46958ad Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 11 Jul 2020 10:13:11 +0900 Subject: Deck (#6504) * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip --- src/client/components/deck/antenna-column.vue | 80 ++++ src/client/components/deck/column-core.vue | 50 +++ src/client/components/deck/column.vue | 426 ++++++++++++++++++ src/client/components/deck/direct-column.vue | 39 ++ src/client/components/deck/list-column.vue | 87 ++++ src/client/components/deck/mentions-column.vue | 39 ++ .../components/deck/notifications-column.vue | 69 +++ src/client/components/deck/tl-column.vue | 141 ++++++ src/client/components/deck/widgets-column.vue | 151 +++++++ src/client/components/error.vue | 2 +- src/client/components/form-window.vue | 71 +++ src/client/components/modal.vue | 9 +- src/client/components/note-header.vue | 1 - src/client/components/note.vue | 118 ++--- src/client/components/sidebar.vue | 488 +++++++++++++++++++++ src/client/components/timeline.vue | 12 +- src/client/components/ui/container.vue | 38 +- src/client/components/ui/input.vue | 15 +- src/client/components/ui/select.vue | 6 +- src/client/components/ui/switch.vue | 2 +- src/client/components/ui/textarea.vue | 4 +- src/client/components/window.vue | 7 +- 22 files changed, 1770 insertions(+), 85 deletions(-) create mode 100644 src/client/components/deck/antenna-column.vue create mode 100644 src/client/components/deck/column-core.vue create mode 100644 src/client/components/deck/column.vue create mode 100644 src/client/components/deck/direct-column.vue create mode 100644 src/client/components/deck/list-column.vue create mode 100644 src/client/components/deck/mentions-column.vue create mode 100644 src/client/components/deck/notifications-column.vue create mode 100644 src/client/components/deck/tl-column.vue create mode 100644 src/client/components/deck/widgets-column.vue create mode 100644 src/client/components/form-window.vue create mode 100644 src/client/components/sidebar.vue (limited to 'src/client/components') diff --git a/src/client/components/deck/antenna-column.vue b/src/client/components/deck/antenna-column.vue new file mode 100644 index 0000000000..83fe14f2cc --- /dev/null +++ b/src/client/components/deck/antenna-column.vue @@ -0,0 +1,80 @@ + + + + + diff --git a/src/client/components/deck/column-core.vue b/src/client/components/deck/column-core.vue new file mode 100644 index 0000000000..44f19e7eda --- /dev/null +++ b/src/client/components/deck/column-core.vue @@ -0,0 +1,50 @@ + + + diff --git a/src/client/components/deck/column.vue b/src/client/components/deck/column.vue new file mode 100644 index 0000000000..f7620e5749 --- /dev/null +++ b/src/client/components/deck/column.vue @@ -0,0 +1,426 @@ + + + + + diff --git a/src/client/components/deck/direct-column.vue b/src/client/components/deck/direct-column.vue new file mode 100644 index 0000000000..f340048d6a --- /dev/null +++ b/src/client/components/deck/direct-column.vue @@ -0,0 +1,39 @@ + + + diff --git a/src/client/components/deck/list-column.vue b/src/client/components/deck/list-column.vue new file mode 100644 index 0000000000..a3576e8d67 --- /dev/null +++ b/src/client/components/deck/list-column.vue @@ -0,0 +1,87 @@ + + + + + diff --git a/src/client/components/deck/mentions-column.vue b/src/client/components/deck/mentions-column.vue new file mode 100644 index 0000000000..19e49d2a89 --- /dev/null +++ b/src/client/components/deck/mentions-column.vue @@ -0,0 +1,39 @@ + + + diff --git a/src/client/components/deck/notifications-column.vue b/src/client/components/deck/notifications-column.vue new file mode 100644 index 0000000000..58873aa130 --- /dev/null +++ b/src/client/components/deck/notifications-column.vue @@ -0,0 +1,69 @@ + + + diff --git a/src/client/components/deck/tl-column.vue b/src/client/components/deck/tl-column.vue new file mode 100644 index 0000000000..c3ee67af3a --- /dev/null +++ b/src/client/components/deck/tl-column.vue @@ -0,0 +1,141 @@ + + + + + diff --git a/src/client/components/deck/widgets-column.vue b/src/client/components/deck/widgets-column.vue new file mode 100644 index 0000000000..37b17451ec --- /dev/null +++ b/src/client/components/deck/widgets-column.vue @@ -0,0 +1,151 @@ + + + + + diff --git a/src/client/components/error.vue b/src/client/components/error.vue index b1d91fb3ef..90efa700b2 100644 --- a/src/client/components/error.vue +++ b/src/client/components/error.vue @@ -40,7 +40,7 @@ export default Vue.extend({ > img { vertical-align: bottom; - height: 150px; + height: 128px; margin-bottom: 16px; border-radius: 16px; } diff --git a/src/client/components/form-window.vue b/src/client/components/form-window.vue new file mode 100644 index 0000000000..25eee91647 --- /dev/null +++ b/src/client/components/form-window.vue @@ -0,0 +1,71 @@ + + + + + diff --git a/src/client/components/modal.vue b/src/client/components/modal.vue index 1a9d98a8cc..f941d4d503 100644 --- a/src/client/components/modal.vue +++ b/src/client/components/modal.vue @@ -1,10 +1,10 @@ @@ -14,6 +14,11 @@ import Vue from 'vue'; export default Vue.extend({ props: { + canClose: { + type: Boolean, + required: false, + default: true, + }, }, data() { return { diff --git a/src/client/components/note-header.vue b/src/client/components/note-header.vue index 93cf2cdf39..039287818f 100644 --- a/src/client/components/note-header.vue +++ b/src/client/components/note-header.vue @@ -54,7 +54,6 @@ export default Vue.extend({ margin: 0 .5em 0 0; padding: 0; overflow: hidden; - color: var(--noteHeaderName); font-size: 1em; font-weight: bold; text-decoration: none; diff --git a/src/client/components/note.vue b/src/client/components/note.vue index 118fef661c..badb9f12f3 100644 --- a/src/client/components/note.vue +++ b/src/client/components/note.vue @@ -724,61 +724,6 @@ export default Vue.extend({ transition: box-shadow 0.1s ease; overflow: hidden; - &.max-width_500px { - font-size: 0.9em; - } - - &.max-width_450px { - > .renote { - padding: 8px 16px 0 16px; - } - - > .article { - padding: 14px 16px 9px; - - > .avatar { - margin: 0 10px 8px 0; - width: 50px; - height: 50px; - } - } - } - - &.max-width_350px { - > .article { - > .main { - > .footer { - > .button { - &:not(:last-child) { - margin-right: 18px; - } - } - } - } - } - } - - &.max-width_300px { - font-size: 0.825em; - - > .article { - > .avatar { - width: 44px; - height: 44px; - } - - > .main { - > .footer { - > .button { - &:not(:last-child) { - margin-right: 12px; - } - } - } - } - } - } - &:focus { outline: none; box-shadow: 0 0 0 3px var(--focus); @@ -797,10 +742,6 @@ export default Vue.extend({ white-space: pre; color: #d28a3f; - @media (max-width: 450px) { - padding: 8px 16px 0 16px; - } - > [data-icon] { margin-right: 4px; } @@ -985,5 +926,64 @@ export default Vue.extend({ > .reply { border-top: solid 1px var(--divider); } + + &.max-width_500px { + font-size: 0.9em; + } + + &.max-width_450px { + > .renote { + padding: 8px 16px 0 16px; + } + + > .info { + padding: 8px 16px 0 16px; + } + + > .article { + padding: 14px 16px 9px; + + > .avatar { + margin: 0 10px 8px 0; + width: 50px; + height: 50px; + } + } + } + + &.max-width_350px { + > .article { + > .main { + > .footer { + > .button { + &:not(:last-child) { + margin-right: 18px; + } + } + } + } + } + } + + &.max-width_300px { + font-size: 0.825em; + + > .article { + > .avatar { + width: 44px; + height: 44px; + } + + > .main { + > .footer { + > .button { + &:not(:last-child) { + margin-right: 12px; + } + } + } + } + } + } } diff --git a/src/client/components/sidebar.vue b/src/client/components/sidebar.vue new file mode 100644 index 0000000000..3ddef7d127 --- /dev/null +++ b/src/client/components/sidebar.vue @@ -0,0 +1,488 @@ + + + + + diff --git a/src/client/components/timeline.vue b/src/client/components/timeline.vue index bd1901a624..ce0fd95caf 100644 --- a/src/client/components/timeline.vue +++ b/src/client/components/timeline.vue @@ -17,9 +17,11 @@ export default Vue.extend({ required: true }, list: { + type: String, required: false }, antenna: { + type: String, required: false }, sound: { @@ -53,6 +55,8 @@ export default Vue.extend({ const _note = JSON.parse(JSON.stringify(note)); // deepcopy (this.$refs.tl as any).prepend(_note); + this.$emit('note'); + if (this.sound) { this.$root.sound(note.userId === this.$store.state.i.id ? 'noteMy' : 'note'); } @@ -77,10 +81,10 @@ export default Vue.extend({ if (this.src == 'antenna') { endpoint = 'antennas/notes'; this.query = { - antennaId: this.antenna.id + antennaId: this.antenna }; this.connection = this.$root.stream.connectToChannel('antenna', { - antennaId: this.antenna.id + antennaId: this.antenna }); this.connection.on('note', prepend); } else if (this.src == 'home') { @@ -106,10 +110,10 @@ export default Vue.extend({ } else if (this.src == 'list') { endpoint = 'notes/user-list-timeline'; this.query = { - listId: this.list.id + listId: this.list }; this.connection = this.$root.stream.connectToChannel('userList', { - listId: this.list.id + listId: this.list }); this.connection.on('note', prepend); this.connection.on('userAdded', onUserAdded); diff --git a/src/client/components/ui/container.vue b/src/client/components/ui/container.vue index 3fed1f65c7..6a718439aa 100644 --- a/src/client/components/ui/container.vue +++ b/src/client/components/ui/container.vue @@ -1,5 +1,5 @@