From eefeb4c26840572766502878b1dc05cfaf2003cc Mon Sep 17 00:00:00 2001
From: Aya Morisawa <AyaMorisawa4869@gmail.com>
Date: Thu, 6 Dec 2018 16:56:24 +0900
Subject: [PATCH] #2593 (desktop) (#3518)

---
 src/client/app/desktop/views/components/post-form.vue | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/client/app/desktop/views/components/post-form.vue b/src/client/app/desktop/views/components/post-form.vue
index 4abd00dabd..a3c6a8942c 100644
--- a/src/client/app/desktop/views/components/post-form.vue
+++ b/src/client/app/desktop/views/components/post-form.vue
@@ -36,7 +36,7 @@
 				</x-draggable>
 				<p class="remain">{{ 4 - files.length }}/4</p>
 			</div>
-			<mk-poll-editor v-if="poll" ref="poll" @destroyed="poll = false" @updated="saveDraft()"/>
+			<mk-poll-editor v-if="poll" ref="poll" @destroyed="poll = false" @updated="onPollUpdate()"/>
 		</div>
 	</div>
 	<mk-uploader ref="uploader" @uploaded="attachMedia" @change="onChangeUploadings"/>
@@ -109,6 +109,7 @@ export default Vue.extend({
 			files: [],
 			uploadings: [],
 			poll: false,
+			pollChoices: [],
 			useCw: false,
 			cw: null,
 			geo: null,
@@ -166,7 +167,8 @@ export default Vue.extend({
 		canPost(): boolean {
 			return !this.posting &&
 				(1 <= this.text.length || 1 <= this.files.length || this.poll || this.renote) &&
-				(length(this.text.trim()) <= this.maxNoteTextLength);
+				(length(this.text.trim()) <= this.maxNoteTextLength) &&
+				(!this.poll || this.pollChoices.length >= 2);
 		}
 	},
 
@@ -277,6 +279,11 @@ export default Vue.extend({
 			Array.from((this.$refs.file as any).files).forEach(this.upload);
 		},
 
+		onPollUpdate() {
+			this.pollChoices = this.$refs.poll.get().choices;
+			this.saveDraft();
+		}
+
 		upload(file) {
 			(this.$refs.uploader as any).upload(file);
 		},