diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2023-09-29 16:56:17 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2023-09-29 16:56:17 +0900 |
| commit | e5c339b86a06da9f573e17397017748737c91e44 (patch) | |
| tree | 6362952a28d8a2505d08a95ef021bc9a31ed9cee /packages/frontend | |
| parent | Update create.test.ts (diff) | |
| download | misskey-e5c339b86a06da9f573e17397017748737c91e44.tar.gz misskey-e5c339b86a06da9f573e17397017748737c91e44.tar.bz2 misskey-e5c339b86a06da9f573e17397017748737c91e44.zip | |
enhance(frontend): タイムラインでファイルが添付されたノートのみ表示するオプションを追加
Diffstat (limited to 'packages/frontend')
| -rw-r--r-- | packages/frontend/src/components/MkTimeline.vue | 12 | ||||
| -rw-r--r-- | packages/frontend/src/pages/timeline.vue | 9 | ||||
| -rw-r--r-- | packages/frontend/src/ui/deck/deck-store.ts | 1 | ||||
| -rw-r--r-- | packages/frontend/src/ui/deck/tl-column.vue | 8 |
4 files changed, 28 insertions, 2 deletions
diff --git a/packages/frontend/src/components/MkTimeline.vue b/packages/frontend/src/components/MkTimeline.vue index 3e7c537512..1dcafd6be1 100644 --- a/packages/frontend/src/components/MkTimeline.vue +++ b/packages/frontend/src/components/MkTimeline.vue @@ -24,9 +24,11 @@ const props = withDefaults(defineProps<{ sound?: boolean; withRenotes?: boolean; withReplies?: boolean; + onlyFiles?: boolean; }>(), { withRenotes: true, withReplies: false, + onlyFiles: false, }); const emit = defineEmits<{ @@ -69,10 +71,12 @@ if (props.src === 'antenna') { query = { withRenotes: props.withRenotes, withReplies: props.withReplies, + withFiles: props.onlyFiles ? true : undefined, }; connection = stream.useChannel('homeTimeline', { withRenotes: props.withRenotes, withReplies: props.withReplies, + withFiles: props.onlyFiles ? true : undefined, }); connection.on('note', prepend); @@ -82,10 +86,12 @@ if (props.src === 'antenna') { query = { withRenotes: props.withRenotes, withReplies: props.withReplies, + withFiles: props.onlyFiles ? true : undefined, }; connection = stream.useChannel('localTimeline', { withRenotes: props.withRenotes, withReplies: props.withReplies, + withFiles: props.onlyFiles ? true : undefined, }); connection.on('note', prepend); } else if (props.src === 'social') { @@ -93,10 +99,12 @@ if (props.src === 'antenna') { query = { withRenotes: props.withRenotes, withReplies: props.withReplies, + withFiles: props.onlyFiles ? true : undefined, }; connection = stream.useChannel('hybridTimeline', { withRenotes: props.withRenotes, withReplies: props.withReplies, + withFiles: props.onlyFiles ? true : undefined, }); connection.on('note', prepend); } else if (props.src === 'global') { @@ -104,10 +112,12 @@ if (props.src === 'antenna') { query = { withRenotes: props.withRenotes, withReplies: props.withReplies, + withFiles: props.onlyFiles ? true : undefined, }; connection = stream.useChannel('globalTimeline', { withRenotes: props.withRenotes, withReplies: props.withReplies, + withFiles: props.onlyFiles ? true : undefined, }); connection.on('note', prepend); } else if (props.src === 'mentions') { @@ -131,11 +141,13 @@ if (props.src === 'antenna') { query = { withRenotes: props.withRenotes, withReplies: props.withReplies, + withFiles: props.onlyFiles ? true : undefined, listId: props.list, }; connection = stream.useChannel('userList', { withRenotes: props.withRenotes, withReplies: props.withReplies, + withFiles: props.onlyFiles ? true : undefined, listId: props.list, }); connection.on('note', prepend); diff --git a/packages/frontend/src/pages/timeline.vue b/packages/frontend/src/pages/timeline.vue index a11c6fa074..3c29ccdce7 100644 --- a/packages/frontend/src/pages/timeline.vue +++ b/packages/frontend/src/pages/timeline.vue @@ -15,11 +15,12 @@ SPDX-License-Identifier: AGPL-3.0-only <div :class="$style.tl"> <MkTimeline ref="tlComponent" - :key="src + withRenotes + withReplies" + :key="src + withRenotes + withReplies + onlyFiles" :src="src.split(':')[0]" :list="src.split(':')[1]" :withRenotes="withRenotes" :withReplies="withReplies" + :onlyFiles="onlyFiles" :sound="true" @queue="queueUpdated" /> @@ -62,6 +63,7 @@ let srcWhenNotSignin = $ref(isLocalTimelineAvailable ? 'local' : 'global'); const src = $computed({ get: () => ($i ? defaultStore.reactiveState.tl.value.src : srcWhenNotSignin), set: (x) => saveSrc(x) }); const withRenotes = $ref(true); const withReplies = $ref(false); +const onlyFiles = $ref(false); watch($$(src), () => queue = 0); @@ -147,6 +149,11 @@ const headerActions = $computed(() => [{ text: i18n.ts.withReplies, icon: 'ti ti-arrow-back-up', ref: $$(withReplies), + }, { + type: 'switch', + text: i18n.ts.onlyFiles, + icon: 'ti ti-photo', + ref: $$(onlyFiles), }], ev.currentTarget ?? ev.target); }, }]); diff --git a/packages/frontend/src/ui/deck/deck-store.ts b/packages/frontend/src/ui/deck/deck-store.ts index fcd595661b..49fdf4d314 100644 --- a/packages/frontend/src/ui/deck/deck-store.ts +++ b/packages/frontend/src/ui/deck/deck-store.ts @@ -32,6 +32,7 @@ export type Column = { tl?: 'home' | 'local' | 'social' | 'global'; withRenotes?: boolean; withReplies?: boolean; + onlyFiles?: boolean; }; export const deckStore = markRaw(new Storage('deck', { diff --git a/packages/frontend/src/ui/deck/tl-column.vue b/packages/frontend/src/ui/deck/tl-column.vue index e89c8b3358..b6dc6c7f21 100644 --- a/packages/frontend/src/ui/deck/tl-column.vue +++ b/packages/frontend/src/ui/deck/tl-column.vue @@ -23,10 +23,11 @@ SPDX-License-Identifier: AGPL-3.0-only <MkTimeline v-else-if="column.tl" ref="timeline" - :key="column.tl + withRenotes + withReplies" + :key="column.tl + withRenotes + withReplies + onlyFiles" :src="column.tl" :withRenotes="withRenotes" :withReplies="withReplies" + :onlyFiles="onlyFiles" /> </XColumn> </template> @@ -52,6 +53,7 @@ const isLocalTimelineAvailable = (($i == null && instance.policies.ltlAvailable) const isGlobalTimelineAvailable = (($i == null && instance.policies.gtlAvailable) || ($i != null && $i.policies.gtlAvailable)); const withRenotes = $ref(props.column.withRenotes ?? true); const withReplies = $ref(props.column.withReplies ?? false); +const onlyFiles = $ref(props.column.onlyFiles ?? false); watch($$(withRenotes), v => { updateColumn(props.column.id, { @@ -111,6 +113,10 @@ const menu = [{ type: 'switch', text: i18n.ts.withReplies, ref: $$(withReplies), +}, { + type: 'switch', + text: i18n.ts.fileAttachedOnly, + ref: $$(onlyFiles), }]; </script> |