diff --git a/CHANGELOG.md b/CHANGELOG.md
index c928f7f93..4cd5f800c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -104,6 +104,7 @@ v12ではいくつかインスタンスにとって破壊的な変更があり
* URLまでnyaizeされている問題を修正
* ハッシュタグまでnyaizeされている問題を修正
* 他
+* 投稿フォームでCWが下書きに保存されない問題を修正
* TypeError: Cannot read property 'stack' of undefined が出ることがある問題を修正
* AP: カスタム絵文字を連続して書くと他のサービスでカスタム絵文字と認識されない問題を修正
* AP: audience (visibility) パースの修正
diff --git a/src/client/components/post-form.vue b/src/client/components/post-form.vue
index d6141e210..8c7882614 100644
--- a/src/client/components/post-form.vue
+++ b/src/client/components/post-form.vue
@@ -26,8 +26,8 @@
-
-
+
+
@@ -250,6 +250,8 @@ export default Vue.extend({
const draft = JSON.parse(localStorage.getItem('drafts') || '{}')[this.draftId];
if (draft) {
this.text = draft.data.text;
+ this.useCw = draft.data.useCw;
+ this.cw = draft.data.cw;
this.files = (draft.data.files || []).filter(e => e);
if (draft.data.poll) {
this.poll = true;
@@ -257,7 +259,6 @@ export default Vue.extend({
(this.$refs.poll as any).set(draft.data.poll);
});
}
- this.$emit('change-attached-files', this.files);
}
}
@@ -288,6 +289,8 @@ export default Vue.extend({
methods: {
watch() {
this.$watch('text', () => this.saveDraft());
+ this.$watch('useCw', () => this.saveDraft());
+ this.$watch('cw', () => this.saveDraft());
this.$watch('poll', () => this.saveDraft());
this.$watch('files', () => this.saveDraft());
},
@@ -400,7 +403,6 @@ export default Vue.extend({
this.files = [];
this.poll = false;
this.quoteId = null;
- this.$emit('change-attached-files', this.files);
},
onKeydown(e) {
@@ -472,7 +474,6 @@ export default Vue.extend({
if (driveFile != null && driveFile != '') {
const file = JSON.parse(driveFile);
this.files.push(file);
- this.$emit('change-attached-files', this.files);
e.preventDefault();
}
//#endregion
@@ -487,6 +488,8 @@ export default Vue.extend({
updatedAt: new Date(),
data: {
text: this.text,
+ useCw: this.useCw,
+ cw: this.cw,
files: this.files,
poll: this.poll && this.$refs.poll ? (this.$refs.poll as any).get() : undefined
}
@@ -670,12 +673,8 @@ export default Vue.extend({
}
}
- > input {
- z-index: 1;
- }
-
- > input,
- > textarea {
+ > .cw,
+ > .text {
display: block;
box-sizing: border-box;
padding: 0 24px;
@@ -701,7 +700,13 @@ export default Vue.extend({
}
}
- > textarea {
+ > .cw {
+ z-index: 1;
+ padding-bottom: 8px;
+ border-bottom: solid 1px var(--divider);
+ }
+
+ > .text {
max-width: 100%;
min-width: 100%;
min-height: 90px;
@@ -709,6 +714,10 @@ export default Vue.extend({
@media (max-width: 500px) {
min-height: 80px;
}
+
+ &.withCw {
+ padding-top: 8px;
+ }
}
> .mk-uploader {