diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2018-02-12 12:21:26 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2018-02-12 12:21:26 +0900 |
| commit | ae1338f76160d8cd9e640c4854a506ab8b0e0b57 (patch) | |
| tree | 00ee7c21d739e798e537a669ae694a43fea5adb9 /src/web | |
| parent | wip (diff) | |
| download | misskey-ae1338f76160d8cd9e640c4854a506ab8b0e0b57.tar.gz misskey-ae1338f76160d8cd9e640c4854a506ab8b0e0b57.tar.bz2 misskey-ae1338f76160d8cd9e640c4854a506ab8b0e0b57.zip | |
wip
Diffstat (limited to 'src/web')
| -rw-r--r-- | src/web/app/desktop/views/components/post-form.vue | 35 |
1 files changed, 27 insertions, 8 deletions
diff --git a/src/web/app/desktop/views/components/post-form.vue b/src/web/app/desktop/views/components/post-form.vue index d021c9ab55..52efaf849f 100644 --- a/src/web/app/desktop/views/components/post-form.vue +++ b/src/web/app/desktop/views/components/post-form.vue @@ -6,19 +6,19 @@ @drop="onDrop" > <div class="content"> - <textarea :class="{ with: (files.length != 0 || poll) }" ref="text" :disabled="wait" + <textarea :class="{ with: (files.length != 0 || poll) }" ref="text" :disabled="posting" @keydown="onKeydown" @paste="onPaste" :placeholder="placeholder" ></textarea> <div class="medias" :class="{ with: poll }" v-show="files.length != 0"> <ul ref="media"> - <li each={ files } data-id={ id }> - <div class="img" style="background-image: url({ url + '?thumbnail&size=64' })" title={ name }></div> - <img class="remove" @click="removeFile" src="/assets/desktop/remove.png" title="%i18n:desktop.tags.mk-post-form.attach-cancel%" alt=""/> + <li v-for="file in files" :key="file.id"> + <div class="img" :style="{ backgroundImage: `url(${file.url}?thumbnail&size=64)` }" :title="file.name"></div> + <img class="remove" @click="removeFile(file.id)" src="/assets/desktop/remove.png" title="%i18n:desktop.tags.mk-post-form.attach-cancel%" alt=""/> </li> </ul> - <p class="remain">{ 4 - files.length }/4</p> + <p class="remain">{{ 4 - files.length }}/4</p> </div> - <mk-poll-editor v-if="poll" ref="poll" ondestroy={ onPollDestroyed }/> + <mk-poll-editor v-if="poll" ref="poll" @destroyed="onPollDestroyed"/> </div> <mk-uploader ref="uploader"/> <button ref="upload" title="%i18n:desktop.tags.mk-post-form.attach-media-from-local%" @click="selectFile">%fa:upload%</button> @@ -26,10 +26,29 @@ <button class="kao" title="%i18n:desktop.tags.mk-post-form.insert-a-kao%" @click="kao">%fa:R smile%</button> <button class="poll" title="%i18n:desktop.tags.mk-post-form.create-poll%" @click="addPoll">%fa:chart-pie%</button> <p class="text-count { over: refs.text.value.length > 1000 }">{ '%i18n:desktop.tags.mk-post-form.text-remain%'.replace('{}', 1000 - refs.text.value.length) }</p> - <button :class="{ wait: wait }" ref="submit" disabled={ wait || (refs.text.value.length == 0 && files.length == 0 && !poll && !repost) } @click="post"> - { wait ? '%i18n:desktop.tags.mk-post-form.posting%' : submitText }<mk-ellipsis v-if="wait"/> + <button :class="{ posting }" ref="submit" :disabled="!canPost" @click="post"> + { posting ? '%i18n:desktop.tags.mk-post-form.posting%' : submitText }<mk-ellipsis v-if="posting"/> </button> <input ref="file" type="file" accept="image/*" multiple="multiple" tabindex="-1" onchange={ changeFile }/> <div class="dropzone" v-if="draghover"></div> </div> </template> + +<script lang="ts"> +import Vue from 'vue'; + +export default Vue.extend({ + data() { + return { + posting: false, + + }; + }, + computed: { + canPost(): boolean { + return !this.posting && (refs.text.value.length != 0 || files.length != 0 || poll || repost); + } + } +}); +</script> + |