add: auto uncollapse CW on all notes option
Closes transfem-org/Sharkey#191
This commit is contained in:
parent
aa4c3dfffe
commit
620be4a9e1
@ -271,7 +271,7 @@ const renoteUrl = appearNote.renote ? appearNote.renote.url : null;
|
|||||||
const renoteUri = appearNote.renote ? appearNote.renote.uri : null;
|
const renoteUri = appearNote.renote ? appearNote.renote.uri : null;
|
||||||
|
|
||||||
const isMyRenote = $i && ($i.id === note.userId);
|
const isMyRenote = $i && ($i.id === note.userId);
|
||||||
const showContent = ref(false);
|
const showContent = ref(defaultStore.state.uncollapseCW);
|
||||||
const parsed = $computed(() => appearNote.text ? mfm.parse(appearNote.text) : null);
|
const parsed = $computed(() => appearNote.text ? mfm.parse(appearNote.text) : null);
|
||||||
const urls = $computed(() => parsed ? extractUrlFromMfm(parsed).filter(u => u !== renoteUrl && u !== renoteUri) : null);
|
const urls = $computed(() => parsed ? extractUrlFromMfm(parsed).filter(u => u !== renoteUrl && u !== renoteUri) : null);
|
||||||
const animated = $computed(() => parsed ? checkAnimationFromMfm(parsed) : null);
|
const animated = $computed(() => parsed ? checkAnimationFromMfm(parsed) : null);
|
||||||
|
@ -306,7 +306,7 @@ const renoteUrl = appearNote.renote ? appearNote.renote.url : null;
|
|||||||
const renoteUri = appearNote.renote ? appearNote.renote.uri : null;
|
const renoteUri = appearNote.renote ? appearNote.renote.uri : null;
|
||||||
|
|
||||||
const isMyRenote = $i && ($i.id === note.userId);
|
const isMyRenote = $i && ($i.id === note.userId);
|
||||||
const showContent = ref(false);
|
const showContent = ref(defaultStore.state.uncollapseCW);
|
||||||
const isDeleted = ref(false);
|
const isDeleted = ref(false);
|
||||||
const renoted = ref(false);
|
const renoted = ref(false);
|
||||||
const muted = ref($i ? checkWordMute(appearNote, $i, $i.mutedWords) : false);
|
const muted = ref($i ? checkWordMute(appearNote, $i, $i.mutedWords) : false);
|
||||||
|
@ -28,6 +28,7 @@ import MkNoteHeader from '@/components/MkNoteHeader.vue';
|
|||||||
import MkSubNoteContent from '@/components/MkSubNoteContent.vue';
|
import MkSubNoteContent from '@/components/MkSubNoteContent.vue';
|
||||||
import MkCwButton from '@/components/MkCwButton.vue';
|
import MkCwButton from '@/components/MkCwButton.vue';
|
||||||
import { $i } from '@/account.js';
|
import { $i } from '@/account.js';
|
||||||
|
import { defaultStore } from '@/store.js';
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
note: Misskey.entities.Note;
|
note: Misskey.entities.Note;
|
||||||
@ -35,7 +36,7 @@ const props = defineProps<{
|
|||||||
hideFiles?: boolean;
|
hideFiles?: boolean;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
let showContent = $ref(false);
|
let showContent = $ref(defaultStore.state.uncollapseCW);
|
||||||
|
|
||||||
watch(() => props.expandAllCws, (expandAllCws) => {
|
watch(() => props.expandAllCws, (expandAllCws) => {
|
||||||
if (expandAllCws !== showContent) showContent = expandAllCws;
|
if (expandAllCws !== showContent) showContent = expandAllCws;
|
||||||
|
@ -244,7 +244,7 @@ function undoRenote() : void {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let showContent = $ref(false);
|
let showContent = $ref(defaultStore.state.uncollapseCW);
|
||||||
|
|
||||||
watch(() => props.expandAllCws, (expandAllCws) => {
|
watch(() => props.expandAllCws, (expandAllCws) => {
|
||||||
if (expandAllCws !== showContent) showContent = expandAllCws;
|
if (expandAllCws !== showContent) showContent = expandAllCws;
|
||||||
|
@ -272,7 +272,7 @@ const renoteUrl = appearNote.renote ? appearNote.renote.url : null;
|
|||||||
const renoteUri = appearNote.renote ? appearNote.renote.uri : null;
|
const renoteUri = appearNote.renote ? appearNote.renote.uri : null;
|
||||||
|
|
||||||
const isMyRenote = $i && ($i.id === note.userId);
|
const isMyRenote = $i && ($i.id === note.userId);
|
||||||
const showContent = ref(false);
|
const showContent = ref(defaultStore.state.uncollapseCW);
|
||||||
const parsed = $computed(() => appearNote.text ? mfm.parse(appearNote.text) : null);
|
const parsed = $computed(() => appearNote.text ? mfm.parse(appearNote.text) : null);
|
||||||
const urls = $computed(() => parsed ? extractUrlFromMfm(parsed).filter(u => u !== renoteUrl && u !== renoteUri) : null);
|
const urls = $computed(() => parsed ? extractUrlFromMfm(parsed).filter(u => u !== renoteUrl && u !== renoteUri) : null);
|
||||||
const animated = $computed(() => parsed ? checkAnimationFromMfm(parsed) : null);
|
const animated = $computed(() => parsed ? checkAnimationFromMfm(parsed) : null);
|
||||||
|
@ -314,7 +314,7 @@ const renoteUrl = appearNote.renote ? appearNote.renote.url : null;
|
|||||||
const renoteUri = appearNote.renote ? appearNote.renote.uri : null;
|
const renoteUri = appearNote.renote ? appearNote.renote.uri : null;
|
||||||
|
|
||||||
const isMyRenote = $i && ($i.id === note.userId);
|
const isMyRenote = $i && ($i.id === note.userId);
|
||||||
const showContent = ref(false);
|
const showContent = ref(defaultStore.state.uncollapseCW);
|
||||||
const isDeleted = ref(false);
|
const isDeleted = ref(false);
|
||||||
const renoted = ref(false);
|
const renoted = ref(false);
|
||||||
const muted = ref($i ? checkWordMute(appearNote, $i, $i.mutedWords) : false);
|
const muted = ref($i ? checkWordMute(appearNote, $i, $i.mutedWords) : false);
|
||||||
|
@ -28,6 +28,7 @@ import MkNoteHeader from '@/components/MkNoteHeader.vue';
|
|||||||
import MkSubNoteContent from '@/components/MkSubNoteContent.vue';
|
import MkSubNoteContent from '@/components/MkSubNoteContent.vue';
|
||||||
import MkCwButton from '@/components/MkCwButton.vue';
|
import MkCwButton from '@/components/MkCwButton.vue';
|
||||||
import { $i } from '@/account.js';
|
import { $i } from '@/account.js';
|
||||||
|
import { defaultStore } from '@/store.js';
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
note: Misskey.entities.Note;
|
note: Misskey.entities.Note;
|
||||||
@ -35,7 +36,7 @@ const props = defineProps<{
|
|||||||
hideFiles?: boolean;
|
hideFiles?: boolean;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
let showContent = $ref(false);
|
let showContent = $ref(defaultStore.state.uncollapseCW);
|
||||||
|
|
||||||
watch(() => props.expandAllCws, (expandAllCws) => {
|
watch(() => props.expandAllCws, (expandAllCws) => {
|
||||||
if (expandAllCws !== showContent) showContent = expandAllCws;
|
if (expandAllCws !== showContent) showContent = expandAllCws;
|
||||||
|
@ -253,7 +253,7 @@ function undoRenote() : void {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let showContent = $ref(false);
|
let showContent = $ref(defaultStore.state.uncollapseCW);
|
||||||
|
|
||||||
watch(() => props.expandAllCws, (expandAllCws) => {
|
watch(() => props.expandAllCws, (expandAllCws) => {
|
||||||
if (expandAllCws !== showContent) showContent = expandAllCws;
|
if (expandAllCws !== showContent) showContent = expandAllCws;
|
||||||
|
@ -47,6 +47,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||||||
<MkSwitch v-model="showClipButtonInNoteFooter">{{ i18n.ts.showClipButtonInNoteFooter }}</MkSwitch>
|
<MkSwitch v-model="showClipButtonInNoteFooter">{{ i18n.ts.showClipButtonInNoteFooter }}</MkSwitch>
|
||||||
<MkSwitch v-model="collapseRenotes">{{ i18n.ts.collapseRenotes }}</MkSwitch>
|
<MkSwitch v-model="collapseRenotes">{{ i18n.ts.collapseRenotes }}</MkSwitch>
|
||||||
<MkSwitch v-model="collapseFiles">{{ i18n.ts.collapseFiles }}</MkSwitch>
|
<MkSwitch v-model="collapseFiles">{{ i18n.ts.collapseFiles }}</MkSwitch>
|
||||||
|
<MkSwitch v-model="uncollapseCW">Uncollapse CWs on notes</MkSwitch>
|
||||||
<MkSwitch v-model="autoloadConversation">{{ i18n.ts.autoloadConversation }}</MkSwitch>
|
<MkSwitch v-model="autoloadConversation">{{ i18n.ts.autoloadConversation }}</MkSwitch>
|
||||||
<MkSwitch v-model="advancedMfm">{{ i18n.ts.enableAdvancedMfm }}</MkSwitch>
|
<MkSwitch v-model="advancedMfm">{{ i18n.ts.enableAdvancedMfm }}</MkSwitch>
|
||||||
<MkSwitch v-if="advancedMfm" v-model="animatedMfm">{{ i18n.ts.enableAnimatedMfm }}</MkSwitch>
|
<MkSwitch v-if="advancedMfm" v-model="animatedMfm">{{ i18n.ts.enableAnimatedMfm }}</MkSwitch>
|
||||||
@ -63,7 +64,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||||||
<template #label>Note Design</template>
|
<template #label>Note Design</template>
|
||||||
<option value="sharkey">Sharkey</option>
|
<option value="sharkey">Sharkey</option>
|
||||||
<option value="misskey">Misskey</option>
|
<option value="misskey">Misskey</option>
|
||||||
</MkRadios>
|
</MkRadios>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<MkSelect v-model="instanceTicker">
|
<MkSelect v-model="instanceTicker">
|
||||||
@ -279,6 +280,7 @@ const disableStreamingTimeline = computed(defaultStore.makeGetterSetter('disable
|
|||||||
const useGroupedNotifications = computed(defaultStore.makeGetterSetter('useGroupedNotifications'));
|
const useGroupedNotifications = computed(defaultStore.makeGetterSetter('useGroupedNotifications'));
|
||||||
const showTickerOnReplies = computed(defaultStore.makeGetterSetter('showTickerOnReplies'));
|
const showTickerOnReplies = computed(defaultStore.makeGetterSetter('showTickerOnReplies'));
|
||||||
const noteDesign = computed(defaultStore.makeGetterSetter('noteDesign'));
|
const noteDesign = computed(defaultStore.makeGetterSetter('noteDesign'));
|
||||||
|
const uncollapseCW = computed(defaultStore.makeGetterSetter('uncollapseCW'));
|
||||||
|
|
||||||
watch(lang, () => {
|
watch(lang, () => {
|
||||||
miLocalStorage.setItem('lang', lang.value as string);
|
miLocalStorage.setItem('lang', lang.value as string);
|
||||||
|
@ -74,6 +74,10 @@ export const defaultStore = markRaw(new Storage('base', {
|
|||||||
where: 'account',
|
where: 'account',
|
||||||
default: false,
|
default: false,
|
||||||
},
|
},
|
||||||
|
uncollapseCW: {
|
||||||
|
where: 'account',
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
rememberNoteVisibility: {
|
rememberNoteVisibility: {
|
||||||
where: 'account',
|
where: 'account',
|
||||||
default: false,
|
default: false,
|
||||||
|
Loading…
Reference in New Issue
Block a user