summaryrefslogtreecommitdiff
path: root/packages/frontend
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2023-09-29 16:56:17 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2023-09-29 16:56:17 +0900
commite5c339b86a06da9f573e17397017748737c91e44 (patch)
tree6362952a28d8a2505d08a95ef021bc9a31ed9cee /packages/frontend
parentUpdate create.test.ts (diff)
downloadmisskey-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.vue12
-rw-r--r--packages/frontend/src/pages/timeline.vue9
-rw-r--r--packages/frontend/src/ui/deck/deck-store.ts1
-rw-r--r--packages/frontend/src/ui/deck/tl-column.vue8
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>