mirror of
				https://codeberg.org/yeentown/barkey.git
				synced 2025-11-04 07:24:13 +00:00 
			
		
		
		
	disable inline note previews from users with quotes disabled
This commit is contained in:
		
							parent
							
								
									f39f47aade
								
							
						
					
					
						commit
						3642ea022b
					
				
					 8 changed files with 21 additions and 11 deletions
				
			
		| 
						 | 
				
			
			@ -17,6 +17,11 @@ export const packedNoteSchema = {
 | 
			
		|||
			optional: false, nullable: false,
 | 
			
		||||
			format: 'date-time',
 | 
			
		||||
		},
 | 
			
		||||
		updatedAt: {
 | 
			
		||||
			type: 'string',
 | 
			
		||||
			optional: true, nullable: false,
 | 
			
		||||
			format: 'date-time',
 | 
			
		||||
		},
 | 
			
		||||
		deletedAt: {
 | 
			
		||||
			type: 'string',
 | 
			
		||||
			optional: true, nullable: true,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -102,7 +102,7 @@ SPDX-License-Identifier: AGPL-3.0-only
 | 
			
		|||
					</div>
 | 
			
		||||
					<MkPoll v-if="appearNote.poll" :noteId="appearNote.id" :poll="appearNote.poll" :local="!appearNote.user.host" :author="appearNote.user" :emojiUrls="appearNote.emojis" :class="$style.poll" @click.stop/>
 | 
			
		||||
					<div v-if="isEnabledUrlPreview">
 | 
			
		||||
						<MkUrlPreview v-for="url in urls" :key="url" :url="url" :compact="true" :detail="false" :showAsQuote="true" :skipNoteIds="[appearNote.renote?.id]" :class="$style.urlPreview" @click.stop/>
 | 
			
		||||
						<MkUrlPreview v-for="url in urls" :key="url" :url="url" :compact="true" :detail="false" :showAsQuote="!appearNote.user.rejectQuotes" :skipNoteIds="[appearNote.renote?.id]" :class="$style.urlPreview" @click.stop/>
 | 
			
		||||
					</div>
 | 
			
		||||
					<div v-if="appearNote.renote" :class="$style.quote"><MkNoteSimple :note="appearNote.renote" :class="$style.quoteNote"/></div>
 | 
			
		||||
					<button v-if="isLong && collapsed" :class="$style.collapsed" class="_button" @click.stop @click="collapsed = false">
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -117,7 +117,7 @@ SPDX-License-Identifier: AGPL-3.0-only
 | 
			
		|||
				</div>
 | 
			
		||||
				<MkPoll v-if="appearNote.poll" ref="pollViewer" :noteId="appearNote.id" :poll="appearNote.poll" :local="!appearNote.user.host" :class="$style.poll" :author="appearNote.user" :emojiUrls="appearNote.emojis"/>
 | 
			
		||||
				<div v-if="isEnabledUrlPreview">
 | 
			
		||||
					<MkUrlPreview v-for="url in urls" :key="url" :url="url" :compact="true" :detail="true" :showAsQuote="true" :skipNoteIds="[appearNote.renote?.id]" style="margin-top: 6px;"/>
 | 
			
		||||
					<MkUrlPreview v-for="url in urls" :key="url" :url="url" :compact="true" :detail="true" :showAsQuote="!appearNote.user.rejectQuotes" :skipNoteIds="[appearNote.renote?.id]" style="margin-top: 6px;"/>
 | 
			
		||||
				</div>
 | 
			
		||||
				<div v-if="appearNote.renote" :class="$style.quote"><MkNoteSimple :note="appearNote.renote" :class="$style.quoteNote" :expandAllCws="props.expandAllCws"/></div>
 | 
			
		||||
			</div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -87,20 +87,22 @@ SPDX-License-Identifier: AGPL-3.0-only
 | 
			
		|||
import { defineAsyncComponent, onDeactivated, onUnmounted, ref, watch } from 'vue';
 | 
			
		||||
import { url as local } from '@@/js/config.js';
 | 
			
		||||
import { versatileLang } from '@@/js/intl-const.js';
 | 
			
		||||
import * as Misskey from 'misskey-js';
 | 
			
		||||
import type { summaly } from '@misskey-dev/summaly';
 | 
			
		||||
import type MkNoteSimple from '@/components/MkNoteSimple.vue';
 | 
			
		||||
import type SkNoteSimple from '@/components/SkNoteSimple.vue';
 | 
			
		||||
import { i18n } from '@/i18n.js';
 | 
			
		||||
import * as os from '@/os.js';
 | 
			
		||||
import { deviceKind } from '@/scripts/device-kind.js';
 | 
			
		||||
import MkButton from '@/components/MkButton.vue';
 | 
			
		||||
import { transformPlayerUrl } from '@/scripts/player-url-transform.js';
 | 
			
		||||
import { defaultStore } from '@/store.js';
 | 
			
		||||
import * as Misskey from 'misskey-js';
 | 
			
		||||
import { misskeyApi } from '@/scripts/misskey-api.js';
 | 
			
		||||
 | 
			
		||||
const XNoteSimple = defineAsyncComponent(() =>
 | 
			
		||||
	(defaultStore.state.noteDesign === 'misskey') ? import('@/components/MkNoteSimple.vue') :
 | 
			
		||||
	(defaultStore.state.noteDesign === 'sharkey') ? import('@/components/SkNoteSimple.vue') :
 | 
			
		||||
	null
 | 
			
		||||
const XNoteSimple = defineAsyncComponent<typeof MkNoteSimple | typeof SkNoteSimple>(() =>
 | 
			
		||||
	defaultStore.state.noteDesign === 'misskey'
 | 
			
		||||
		? import('@/components/MkNoteSimple.vue')
 | 
			
		||||
		: import('@/components/SkNoteSimple.vue'),
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
type SummalyResult = Awaited<ReturnType<typeof summaly>>;
 | 
			
		||||
| 
						 | 
				
			
			@ -111,12 +113,13 @@ const props = withDefaults(defineProps<{
 | 
			
		|||
	compact?: boolean;
 | 
			
		||||
	showAsQuote?: boolean;
 | 
			
		||||
	showActions?: boolean;
 | 
			
		||||
	skipNoteIds?: string[];
 | 
			
		||||
	skipNoteIds?: (string | undefined)[];
 | 
			
		||||
}>(), {
 | 
			
		||||
	detail: false,
 | 
			
		||||
	compact: false,
 | 
			
		||||
	showAsQuote: false,
 | 
			
		||||
	showActions: true,
 | 
			
		||||
	skipNoteIds: undefined,
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
const MOBILE_THRESHOLD = 500;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -104,7 +104,7 @@ SPDX-License-Identifier: AGPL-3.0-only
 | 
			
		|||
					</div>
 | 
			
		||||
					<MkPoll v-if="appearNote.poll" :noteId="appearNote.id" :poll="appearNote.poll" :local="!appearNote.user.host" :author="appearNote.user" :emojiUrls="appearNote.emojis" :class="$style.poll" @click.stop/>
 | 
			
		||||
					<div v-if="isEnabledUrlPreview">
 | 
			
		||||
						<MkUrlPreview v-for="url in urls" :key="url" :url="url" :compact="true" :detail="false" :showAsQuote="true" :skipNoteIds="[appearNote.renote?.id]" :class="$style.urlPreview" @click.stop/>
 | 
			
		||||
						<MkUrlPreview v-for="url in urls" :key="url" :url="url" :compact="true" :detail="false" :showAsQuote="!appearNote.user.rejectQuotes" :skipNoteIds="[appearNote.renote?.id]" :class="$style.urlPreview" @click.stop/>
 | 
			
		||||
					</div>
 | 
			
		||||
					<div v-if="appearNote.renote" :class="$style.quote"><SkNoteSimple :note="appearNote.renote" :class="$style.quoteNote"/></div>
 | 
			
		||||
					<button v-if="isLong && collapsed" :class="$style.collapsed" class="_button" @click.stop @click="collapsed = false">
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -122,7 +122,7 @@ SPDX-License-Identifier: AGPL-3.0-only
 | 
			
		|||
				</div>
 | 
			
		||||
				<MkPoll v-if="appearNote.poll" ref="pollViewer" :noteId="appearNote.id" :poll="appearNote.poll" :local="!appearNote.user.host" :class="$style.poll" :author="appearNote.user" :emojiUrls="appearNote.emojis"/>
 | 
			
		||||
				<div v-if="isEnabledUrlPreview">
 | 
			
		||||
					<MkUrlPreview v-for="url in urls" :key="url" :url="url" :compact="true" :detail="true" :showAsQuote="true" :skipNoteIds="[appearNote.renote?.id]" style="margin-top: 6px;"/>
 | 
			
		||||
					<MkUrlPreview v-for="url in urls" :key="url" :url="url" :compact="true" :detail="true" :showAsQuote="!appearNote.user.rejectQuotes" :skipNoteIds="[appearNote.renote?.id]" style="margin-top: 6px;"/>
 | 
			
		||||
				</div>
 | 
			
		||||
				<div v-if="appearNote.renote" :class="$style.quote"><SkNoteSimple :note="appearNote.renote" :class="$style.quoteNote" :expandAllCws="props.expandAllCws"/></div>
 | 
			
		||||
			</div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,7 +7,7 @@ SPDX-License-Identifier: AGPL-3.0-only
 | 
			
		|||
<div class="_gaps" :class="$style.textRoot">
 | 
			
		||||
	<Mfm :text="block.text ?? ''" :isBlock="true" :isNote="false"/>
 | 
			
		||||
	<div v-if="isEnabledUrlPreview" class="_gaps_s">
 | 
			
		||||
		<MkUrlPreview v-for="url in urls" :key="url" :url="url"/>
 | 
			
		||||
		<MkUrlPreview v-for="url in urls" :key="url" :url="url" :showAsQuote="!page.user.rejectQuotes"/>
 | 
			
		||||
	</div>
 | 
			
		||||
</div>
 | 
			
		||||
</template>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4350,6 +4350,8 @@ export type components = {
 | 
			
		|||
      /** Format: date-time */
 | 
			
		||||
      createdAt: string;
 | 
			
		||||
      /** Format: date-time */
 | 
			
		||||
      updatedAt?: string;
 | 
			
		||||
      /** Format: date-time */
 | 
			
		||||
      deletedAt?: string | null;
 | 
			
		||||
      text: string | null;
 | 
			
		||||
      cw?: string | null;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue