Skip to content
Snippets Groups Projects
Commit 190d1bbf authored by syuilo's avatar syuilo
Browse files

デフォルト公開範囲が機能していない問題を修正

parent a755dd5f
No related branches found
No related tags found
No related merge requests found
<template>
<MkModal ref="modal" @click="$refs.modal.close()" @closed="$emit('closed')" :position="'top'">
<MkPostForm @done="$refs.modal.close()" @esc="$refs.modal.close()" v-bind="$attrs"/>
<MkPostForm @posted="$refs.modal.close()" @cancel="$refs.modal.close()" @esc="$refs.modal.close()" v-bind="$attrs"/>
</MkModal>
</template>
......
......@@ -125,7 +125,7 @@ export default defineComponent({
},
},
emits: ['posted', 'done', 'esc'],
emits: ['posted', 'cancel', 'esc'],
data() {
return {
......@@ -135,8 +135,8 @@ export default defineComponent({
poll: null,
useCw: false,
cw: null,
localOnly: false,
visibility: 'public',
localOnly: this.$store.state.settings.rememberNoteVisibility ? this.$store.state.deviceUser.localOnly : this.$store.state.settings.defaultNoteLocalOnly,
visibility: this.$store.state.settings.rememberNoteVisibility ? this.$store.state.deviceUser.visibility : this.$store.state.settings.defaultNoteVisibility,
visibleUsers: [],
autocomplete: null,
draghover: false,
......@@ -202,12 +202,6 @@ export default defineComponent({
}
},
watch: {
localOnly() {
this.$store.commit('deviceUser/setLocalOnly', this.localOnly);
}
},
mounted() {
if (this.initialText) {
this.text = this.initialText;
......@@ -239,11 +233,9 @@ export default defineComponent({
}
}
// デフォルト公開範囲
if (this.channel == null) {
this.applyVisibility(this.$store.state.settings.rememberNoteVisibility ? this.$store.state.deviceUser.visibility : this.$store.state.settings.defaultNoteVisibility);
this.localOnly = this.$store.state.settings.rememberNoteVisibility ? this.$store.state.deviceUser.localOnly : this.$store.state.settings.defaultNoteLocalOnly;
if (this.channel) {
this.visibility = 'public';
this.localOnly = true; // TODO: チャンネルが連合するようになった折には消す
}
// 公開以外へのリプライ時は元の公開範囲を引き継ぐ
......@@ -295,7 +287,7 @@ export default defineComponent({
this.text = draft.data.text;
this.useCw = draft.data.useCw;
this.cw = draft.data.cw;
this.applyVisibility(draft.data.visibility);
this.visibility = draft.data.visibility;
this.localOnly = draft.data.localOnly;
this.files = (draft.data.files || []).filter(e => e);
if (draft.data.poll) {
......@@ -398,18 +390,20 @@ export default defineComponent({
src: this.$refs.visibilityButton
}, {
changeVisibility: visibility => {
this.applyVisibility(visibility);
this.visibility = visibility;
if (this.$store.state.settings.rememberNoteVisibility) {
this.$store.commit('deviceUser/setVisibility', visibility);
}
},
changeLocalOnly: localOnly => {
this.localOnly = localOnly;
if (this.$store.state.settings.rememberNoteVisibility) {
this.$store.commit('deviceUser/setLocalOnly', localOnly);
}
}
}, 'closed');
},
applyVisibility(v: string) {
this.visibility = (noteVisibilities as unknown as string[]).includes(v) ? v : 'public'; // v11互換性のため
},
addVisibleUser() {
os.selectUser().then(user => {
this.visibleUsers.push(user);
......@@ -556,23 +550,23 @@ export default defineComponent({
this.posting = true;
os.api('notes/create', data).then(() => {
this.clear();
this.deleteDraft();
this.$emit('posted');
this.$nextTick(() => {
this.deleteDraft();
this.$emit('posted');
if (this.text && this.text != '') {
const hashtags = parse(this.text).filter(x => x.node.type === 'hashtag').map(x => x.node.props.hashtag);
const history = JSON.parse(localStorage.getItem('hashtags') || '[]') as string[];
localStorage.setItem('hashtags', JSON.stringify(unique(hashtags.concat(history))));
}
this.posting = false;
});
}).catch(err => {
}).then(() => {
this.posting = false;
this.$emit('done');
});
if (this.text && this.text != '') {
const hashtags = parse(this.text).filter(x => x.node.type === 'hashtag').map(x => x.node.props.hashtag);
const history = JSON.parse(localStorage.getItem('hashtags') || '[]') as string[];
localStorage.setItem('hashtags', JSON.stringify(unique(hashtags.concat(history))));
}
},
cancel() {
this.$emit('done');
this.$emit('cancel');
},
insertMention() {
......
......@@ -55,11 +55,11 @@ export default defineComponent({
props: {
currentVisibility: {
type: String,
required: false
required: true
},
currentLocalOnly: {
type: Boolean,
required: false
required: true
},
src: {
required: false
......@@ -68,7 +68,7 @@ export default defineComponent({
emits: ['change-visibility', 'change-local-only', 'closed'],
data() {
return {
v: this.$store.state.settings.rememberNoteVisibility ? this.$store.state.deviceUser.visibility : (this.currentVisibility || this.$store.state.settings.defaultNoteVisibility),
v: this.currentVisibility,
localOnly: this.currentLocalOnly,
faGlobe, faUnlock, faEnvelope, faHome, faBiohazard, faToggleOn, faToggleOff
}
......@@ -81,9 +81,6 @@ export default defineComponent({
methods: {
choose(visibility) {
this.v = visibility;
if (this.$store.state.settings.rememberNoteVisibility) {
this.$store.commit('deviceUser/setVisibility', visibility);
}
this.$emit('change-visibility', visibility);
this.$nextTick(() => {
this.$refs.modal.close();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment