diff options
| author | anatawa12 <anatawa12@icloud.com> | 2024-07-30 20:13:00 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-30 20:13:00 +0900 |
| commit | fccc5b6d620ca6893a0a5649ea9f0d0693727b3b (patch) | |
| tree | 7a613ef5c02b33faaf8a764044ede7abf3ea342a /packages/frontend/src/widgets | |
| parent | フォロー中のユーザーに関する"TLに他の人への返信を含... (diff) | |
| download | sharkey-fccc5b6d620ca6893a0a5649ea9f0d0693727b3b.tar.gz sharkey-fccc5b6d620ca6893a0a5649ea9f0d0693727b3b.tar.bz2 sharkey-fccc5b6d620ca6893a0a5649ea9f0d0693727b3b.zip | |
frontend timeline fixes & improvements (#13727)
* fix: withRepliesがオフのときにwithFilesのとぐるをいじれない問題
* fix: type errors in tl-column
* fix: deck uiでタイムラインを切り替えた際にTLの設定項目が更新されない
* refactor: タイムラインの各種知識を一つのファイルに統合
fix: ウィジェットのタイムライン選択欄に表示できないタイムラインが表示される
* docs(changelog): timeline improvements
* fix: missing license header
* chore: timeline > basic timeline
* use BasicTimelineType in deck-store
* Update CHANGELOG.md
---------
Co-authored-by: Sayamame-beans <61457993+Sayamame-beans@users.noreply.github.com>
Diffstat (limited to 'packages/frontend/src/widgets')
| -rw-r--r-- | packages/frontend/src/widgets/WidgetTimeline.vue | 34 |
1 files changed, 8 insertions, 26 deletions
diff --git a/packages/frontend/src/widgets/WidgetTimeline.vue b/packages/frontend/src/widgets/WidgetTimeline.vue index 150e838582..d02f9b8e22 100644 --- a/packages/frontend/src/widgets/WidgetTimeline.vue +++ b/packages/frontend/src/widgets/WidgetTimeline.vue @@ -6,10 +6,7 @@ SPDX-License-Identifier: AGPL-3.0-only <template> <MkContainer :showHeader="widgetProps.showHeader" :style="`height: ${widgetProps.height}px;`" :scrollable="true" data-cy-mkw-timeline class="mkw-timeline"> <template #icon> - <i v-if="widgetProps.src === 'home'" class="ti ti-home"></i> - <i v-else-if="widgetProps.src === 'local'" class="ti ti-planet"></i> - <i v-else-if="widgetProps.src === 'social'" class="ti ti-universe"></i> - <i v-else-if="widgetProps.src === 'global'" class="ti ti-whirl"></i> + <i v-if="isBasicTimeline(widgetProps.src)" :class="basicTimelineIconClass(widgetProps.src)"></i> <i v-else-if="widgetProps.src === 'list'" class="ti ti-list"></i> <i v-else-if="widgetProps.src === 'antenna'" class="ti ti-antenna"></i> </template> @@ -20,7 +17,7 @@ SPDX-License-Identifier: AGPL-3.0-only </button> </template> - <div v-if="(((widgetProps.src === 'local' || widgetProps.src === 'social') && !isLocalTimelineAvailable) || (widgetProps.src === 'global' && !isGlobalTimelineAvailable))" :class="$style.disabled"> + <div v-if="isBasicTimeline(widgetProps.src) && !isAvailableBasicTimeline(widgetProps.src)" :class="$style.disabled"> <p :class="$style.disabledTitle"> <i class="ti ti-minus"></i> {{ i18n.ts._disabledTimeline.title }} @@ -42,12 +39,9 @@ import { misskeyApi } from '@/scripts/misskey-api.js'; import MkContainer from '@/components/MkContainer.vue'; import MkTimeline from '@/components/MkTimeline.vue'; import { i18n } from '@/i18n.js'; -import { $i } from '@/account.js'; -import { instance } from '@/instance.js'; +import { availableBasicTimelines, isAvailableBasicTimeline, isBasicTimeline, basicTimelineIconClass } from '@/timelines.js'; const name = 'timeline'; -const isLocalTimelineAvailable = (($i == null && instance.policies.ltlAvailable) || ($i != null && $i.policies.ltlAvailable)); -const isGlobalTimelineAvailable = (($i == null && instance.policies.gtlAvailable) || ($i != null && $i.policies.gtlAvailable)); const widgetPropsDef = { showHeader: { @@ -115,23 +109,11 @@ const choose = async (ev) => { setSrc('list'); }, })); - os.popupMenu([{ - text: i18n.ts._timelines.home, - icon: 'ti ti-home', - action: () => { setSrc('home'); }, - }, { - text: i18n.ts._timelines.local, - icon: 'ti ti-planet', - action: () => { setSrc('local'); }, - }, { - text: i18n.ts._timelines.social, - icon: 'ti ti-universe', - action: () => { setSrc('social'); }, - }, { - text: i18n.ts._timelines.global, - icon: 'ti ti-whirl', - action: () => { setSrc('global'); }, - }, antennaItems.length > 0 ? { type: 'divider' } : undefined, ...antennaItems, listItems.length > 0 ? { type: 'divider' } : undefined, ...listItems], ev.currentTarget ?? ev.target).then(() => { + os.popupMenu([...availableBasicTimelines().map(tl => ({ + text: i18n.ts._timelines[tl], + icon: basicTimelineIconClass(tl), + action: () => { setSrc(tl); }, + })), antennaItems.length > 0 ? { type: 'divider' } : undefined, ...antennaItems, listItems.length > 0 ? { type: 'divider' } : undefined, ...listItems], ev.currentTarget ?? ev.target).then(() => { menuOpened.value = false; }); }; |