Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
80 commits
Select commit Hold shift + click to select a range
c634ae3
[skip ci] Update CHANGELOG.md (prepend template)
github-actions[bot] Feb 5, 2025
c548ec9
refactor(frontend): verbatimModuleSyntaxを有効化 (#15323)
kakkokari-gtyih Feb 5, 2025
cfb6128
refactor(frontend): remove X theme properties (#15376)
syuilo Feb 5, 2025
47a76bb
fix: swcのjson-schemaのurlを変更 (#15409)
1673beta Feb 7, 2025
d008394
enhance(frontend): PostFormのannoying判定でCWを考慮するように (#15405)
kakkokari-gtyih Feb 7, 2025
607bf60
enhance(frontend): アンテナ、リスト等の名前をdeckのカラム名のデフォルト値にするように (#13992)
anatawa12 Feb 7, 2025
d7b443d
chore: update `.swcrc` schema link (#15428)
zyoshoka Feb 8, 2025
a3cc865
fix(ci): oktetoの導線を削除 (#15427)
samunohito Feb 8, 2025
54fc232
fix(backend): use unique `operationId` in the OpenAPI schema (#15420)
zyoshoka Feb 8, 2025
026ec40
fix(dev): devcontainerのcorepackのバージョンを指定するように (#15415)
1673beta Feb 8, 2025
4b98b44
enhance(frontend): クライアントエラー画面の多言語対応 (#15411)
kakkokari-gtyih Feb 8, 2025
2f8d020
feat(frontend): 画像を投稿前にプレビュー可能に (#15341)
tai-cha Feb 8, 2025
231c2c2
fix(backend): `following/invalidate`でフォロワーを解除しようとしているユーザーの情報を返すように (#…
1673beta Feb 8, 2025
dc608aa
fix(backend): correct `admin/meta` response schema (#15434)
zyoshoka Feb 9, 2025
420365c
enhance(frontend): 開発者モードでメニューからファイルIDをコピー出来るようにする (#15444)
samunohito Feb 10, 2025
a1ca68a
fix(frontend): コンディショナルロールを手動で割り当てできる導線を削除 (#15436)
samunohito Feb 11, 2025
e339293
feat: アクセストークン発行時に通知するように (#15422)
lqvp Feb 11, 2025
d5ad953
Update CHANGELOG.md (入れる場所が違うのを修正)
kakkokari-gtyih Feb 11, 2025
d1eddf0
fix(frontend): 埋め込みiframeから外部ページに移動できない問題を修正 (#15453)
kakkokari-gtyih Feb 11, 2025
cf35208
fix(frontend-test): Update url-preview.test.ts
kakkokari-gtyih Feb 11, 2025
ebd06be
fix(backend): オブジェクトストレージの設定でPrefixを設定していなかった場合、nullが文字列として展開・ドメインの1つ…
1673beta Feb 11, 2025
30df768
Update about-misskey.vue
syuilo Feb 12, 2025
4d562e7
enhance(frontend): ノートに埋め込まれたメディアのコンテキストメニューから管理者用のファイル管理画面を開けるように (#…
samunohito Feb 13, 2025
d893fbc
chore: Configure Renovate (#15468)
renovate[bot] Feb 13, 2025
1e88aa9
fix(frontend): Play の再読込時に UI が以前の状態を引き継いでしまう問題を修正 (#15479)
ikasoba Feb 14, 2025
ffd8cf0
update deps (#15311)
syuilo Feb 15, 2025
5d82e1b
fix(deps): update deps @fastify/multipart to v9.0.3 [security] (#15469)
renovate[bot] Feb 15, 2025
6bb4669
fix(deps): update dependency vite [security] (#15472)
renovate[bot] Feb 15, 2025
49d7bc5
fix(deps): update dependency esbuild to v0.25.0 [security] (#15476)
renovate[bot] Feb 15, 2025
4de33ac
chore(deps): update dependency vitest to v1.6.1 [security] (#15473)
renovate[bot] Feb 15, 2025
208b201
chore(deps): update [github actions] update dependencies (#15490)
renovate[bot] Feb 15, 2025
d8c4908
enhance(frontend): リアクション時に確認ダイアログを出せるように (#15174)
kakkokari-gtyih Feb 15, 2025
57e86fe
fix(frontend): カスタム絵文字管理画面(beta)にてisSensitive/localOnlyの絞り込みが上手くいかない問…
samunohito Feb 15, 2025
280f465
fix(deps): update [frontend] update dependencies (#15489)
renovate[bot] Feb 15, 2025
8dc01e9
chore(deps): update pnpm to v9.15.0 [security] (#15474)
renovate[bot] Feb 15, 2025
019f042
chore(deps): update [misskey-js] update dependencies (#15492)
renovate[bot] Feb 15, 2025
c9ab7ea
chore(deps): update [tools] update dependencies (#15493)
renovate[bot] Feb 15, 2025
ab9b807
fix(deps): update [root] update dependencies (#15495)
renovate[bot] Feb 15, 2025
1c48d50
fix(deps): update [backend] update dependencies (#15494)
renovate[bot] Feb 15, 2025
9611bfb
Update CHANGELOG.md
kakkokari-gtyih Feb 15, 2025
8890049
fix(backend): pgroongaでの検索時にはじめのキーワード以外が検索に使用されない問題を修正 (#15496)
kakkokari-gtyih Feb 15, 2025
994f8b5
fix(deps): update [frontend] update dependencies (major) (#15497)
renovate[bot] Feb 15, 2025
05d41f2
chore(deps): update [tools] update dependencies (#15498)
renovate[bot] Feb 16, 2025
e2a55e2
fix(deps): update [frontend] update dependencies (#15504)
renovate[bot] Feb 16, 2025
f3a4434
fix(backend): メールアドレスの形式が正しくなければ以降の処理を行わないように (#15320)
sakuhanight Feb 16, 2025
5991282
Bump version to 2025.2.1-alpha.0
github-actions[bot] Feb 16, 2025
bacc212
fix(deps): update dependency bullmq to v5.41.1 (#15503)
renovate[bot] Feb 16, 2025
b965240
fix(deps): broken lockfile (#15508)
kakkokari-gtyih Feb 16, 2025
9ffe504
enhance(frontend): CWの注釈で入力済みの文字数を表示する (#15070)
claustra01 Feb 16, 2025
93e7aad
tweak error log
syuilo Feb 17, 2025
34f8345
clean up dev logs
syuilo Feb 17, 2025
7c87dec
ignore js-built (#15523)
ikasoba Feb 18, 2025
2505216
Merge commit from fork
eternal-flame-AD Feb 23, 2025
9a619c6
Bump version to 2025.2.1-beta.0
github-actions[bot] Feb 23, 2025
426940b
2025.2.1-beta.0のlintがコケているのを修正 (#15546)
samunohito Feb 23, 2025
524adda
chore(deps): update [misskey-js] update dependencies (#15539)
renovate[bot] Feb 24, 2025
0456c0f
chore(deps): update [tools] update dependencies (#15540)
renovate[bot] Feb 24, 2025
5a97f04
chore(deps): update actions/cache action to v4.2.1 (#15541)
renovate[bot] Feb 24, 2025
d1504a5
fix(deps): update dependency shiki to v3 (#15544)
renovate[bot] Feb 24, 2025
5dc99e6
fix(deps): update [frontend] update dependencies (#15542)
renovate[bot] Feb 24, 2025
1b44954
enhance(frontend): サーバーエラー画面の多言語対応 (#15549)
kakkokari-gtyih Feb 24, 2025
20cc6d3
chore(config): migrate renovate config (#15550)
renovate[bot] Feb 24, 2025
2b6638e
feat: google analytics (#15451)
syuilo Feb 25, 2025
389ec63
fix(backend): send Delete activity of a note to users who renoted or …
zyoshoka Feb 26, 2025
7f31fd2
Bump version to 2025.2.1-beta.1
github-actions[bot] Feb 26, 2025
b579935
fix(backend): clips/updateのdescriptionで空文字を許容するように (#15429)
kakkokari-gtyih Feb 26, 2025
39c487e
fix(backend): ローカル判定でisUriLocalを使用していない箇所を修正 (#15069)
sakuhanight Feb 26, 2025
495db27
fix(backend): カスタム絵文字の一括インポートをした時にHTTPプロキシの除外設定が効かないのを修正 (#15431)
samunohito Feb 26, 2025
d87488a
fix(frontend): ユーザのサジェスト中に@を入力してもサジェスト結果が消えないように (#15435)
samunohito Feb 26, 2025
bd13fb6
fix(backend): S3_SAFEかつURL_SAFEでない文字列をprefixに使えないように (#15455)
1673beta Feb 26, 2025
96fc7e3
Bump version to 2025.2.1-beta.2
github-actions[bot] Feb 26, 2025
a778a63
New Crowdin updates (#15421)
syuilo Feb 26, 2025
28b4069
fix(frontend): リノート経由でノートの詳細情報を見るとき、クリップ一覧がappearNoteのものになるように (#15417)
kakkokari-gtyih Feb 26, 2025
15b0345
enhance(frontend): コントロールパネルのユーザ検索で入力された情報をページ遷移で損なわないように (#15438)
samunohito Feb 26, 2025
6199139
Update CHANGELOG.md
syuilo Feb 26, 2025
ec83815
fix(frontend): MkSelectの初期値が表示されない場合がある (#15559)
syuilo Feb 27, 2025
da66079
enhance(frontend): ノート検索ページのデザイン調整 (#14780)
kakkokari-gtyih Feb 27, 2025
cc09de7
New Crowdin updates (#15560)
syuilo Feb 27, 2025
94a3e37
Release: 2025.2.1
github-actions[bot] Feb 27, 2025
7d18c5b
Merge tag '2025.2.1' into dev-kakurega
hideki0403 Feb 28, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
enhance(frontend): アンテナ、リスト等の名前をdeckのカラム名のデフォルト値にするように (misskey-dev#1…
…3992)

* refactor: remove type errors from deck.vue and deck-store.ts

* feat: アンテナ、リスト等の名前をカラム名のデフォルト値にするように

* docs: アンテナ、リスト等の名前をカラム名のデフォルト値にするように

* lint: fix

* chore: カラム名が指定されている場合にはチャンネル名を取得しないように

* chore: チャンネルについては投稿でも使用されてる channel 変数を使用するように

* docs: fix changelog

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
Co-authored-by: Sayamame-beans <61457993+Sayamame-beans@users.noreply.github.com>
Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
  • Loading branch information
4 people authored Feb 7, 2025
commit 607bf60007f36a22def49df533750d2bfc834362
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

### Client
- Enhance: 投稿フォームの「迷惑になる可能性があります」のダイアログを表示する条件においてCWを考慮するように
- Enhance: アンテナ、リスト等の名前をカラム名のデフォルト値にするように `#13992`

### Server
-
Expand Down
15 changes: 15 additions & 0 deletions packages/frontend/src/os.ts
Original file line number Diff line number Diff line change
Expand Up @@ -310,6 +310,21 @@ export function inputText(props: {
} | {
canceled: false; result: string;
}>;
// min lengthが指定されてたら result は null になり得ないことを保証する overload function
export function inputText(props: {
type?: 'text' | 'email' | 'password' | 'url';
title?: string;
text?: string;
placeholder?: string | null;
autocomplete?: string;
default?: string;
minLength: number;
maxLength?: number;
}): Promise<{
canceled: true; result: undefined;
} | {
canceled: false; result: string;
}>;
export function inputText(props: {
type?: 'text' | 'email' | 'password' | 'url';
title?: string;
Expand Down
2 changes: 1 addition & 1 deletion packages/frontend/src/ui/deck.vue
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@ const addColumn = async (ev) => {
addColumnToStore({
type: column,
id: uuid(),
name: i18n.ts._deck._columns[column],
name: null,
width: 330,
soundSetting: { type: null, volume: 1 },
});
Expand Down
10 changes: 9 additions & 1 deletion packages/frontend/src/ui/deck/antenna-column.vue
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<template>
<XColumn :menu="menu" :column="column" :isStacked="isStacked" :refresher="async () => { await timeline?.reloadTimeline() }">
<template #header>
<i class="ti ti-antenna"></i><span style="margin-left: 8px;">{{ column.name }}</span>
<i class="ti ti-antenna"></i><span style="margin-left: 8px;">{{ column.name || antennaName || i18n.ts._deck._columns.antenna }}</span>
</template>

<MkTimeline v-if="column.antennaId" ref="timeline" src="antenna" :antenna="column.antennaId" @note="onNote"/>
Expand Down Expand Up @@ -36,13 +36,21 @@ const props = defineProps<{

const timeline = shallowRef<InstanceType<typeof MkTimeline>>();
const soundSetting = ref<SoundStore>(props.column.soundSetting ?? { type: null, volume: 1 });
const antennaName = ref<string | null>(null);

onMounted(() => {
if (props.column.antennaId == null) {
setAntenna();
}
});

watch([() => props.column.name, () => props.column.antennaId], () => {
if (!props.column.name && props.column.antennaId) {
misskeyApi('antennas/show', { antennaId: props.column.antennaId })
.then(value => antennaName.value = value.name);
}
});

watch(soundSetting, v => {
updateColumn(props.column.id, { soundSetting: v });
});
Expand Down
19 changes: 14 additions & 5 deletions packages/frontend/src/ui/deck/channel-column.vue
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<template>
<XColumn :menu="menu" :column="column" :isStacked="isStacked" :refresher="async () => { await timeline?.reloadTimeline() }">
<template #header>
<i class="ti ti-device-tv"></i><span style="margin-left: 8px;">{{ column.name }}</span>
<i class="ti ti-device-tv"></i><span style="margin-left: 8px;">{{ column.name || channel?.name || i18n.ts._deck._columns.channel }}</span>
</template>

<template v-if="column.channelId">
Expand All @@ -19,7 +19,7 @@ SPDX-License-Identifier: AGPL-3.0-only
</template>

<script lang="ts" setup>
import { ref, shallowRef, watch } from 'vue';
import { onMounted, ref, shallowRef, watch } from 'vue';
import * as Misskey from 'misskey-js';
import XColumn from './column.vue';
import { updateColumn } from './deck-store.js';
Expand All @@ -44,9 +44,18 @@ const timeline = shallowRef<InstanceType<typeof MkTimeline>>();
const channel = shallowRef<Misskey.entities.Channel>();
const soundSetting = ref<SoundStore>(props.column.soundSetting ?? { type: null, volume: 1 });

if (props.column.channelId == null) {
setChannel();
}
onMounted(() => {
if (props.column.channelId == null) {
setChannel();
}
});

watch([() => props.column.name, () => props.column.channelId], () => {
if (!props.column.name && props.column.channelId) {
misskeyApi('channels/show', { channelId: props.column.channelId })
.then(value => channel.value = value);
}
});

watch(soundSetting, v => {
updateColumn(props.column.id, { soundSetting: v });
Expand Down
5 changes: 3 additions & 2 deletions packages/frontend/src/ui/deck/column.vue
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,8 @@ function getMenu() {
icon: 'ti ti-settings',
text: i18n.ts._deck.configureColumn,
action: async () => {
const { canceled, result } = await os.form(props.column.name, {
const name = props.column.name ?? i18n.ts._deck._columns[props.column.type];
const { canceled, result } = await os.form(name, {
name: {
type: 'string',
label: i18n.ts.name,
Expand All @@ -144,7 +145,7 @@ function getMenu() {
flexible: {
type: 'boolean',
label: i18n.ts._deck.flexible,
default: props.column.flexible,
default: props.column.flexible ?? null,
},
});
if (canceled) return;
Expand Down
14 changes: 10 additions & 4 deletions packages/frontend/src/ui/deck/deck-store.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ export type Column = {
withReplies?: boolean;
withSensitive?: boolean;
onlyFiles?: boolean;
soundSetting: SoundStore;
soundSetting?: SoundStore;
};

export const deckStore = markRaw(new Storage('deck', {
Expand Down Expand Up @@ -94,7 +94,7 @@ export const loadDeck = async () => {
key: deckStore.state.profile,
});
} catch (err) {
if (err.code === 'NO_SUCH_KEY') {
if (typeof err === 'object' && err != null && 'code' in err && err.code === 'NO_SUCH_KEY') {
// 後方互換性のため
if (deckStore.state.profile === 'default') {
saveDeck();
Expand Down Expand Up @@ -180,6 +180,7 @@ export function swapLeftColumn(id: Column['id']) {
}
return true;
}
return false;
});
saveDeck();
}
Expand All @@ -196,6 +197,7 @@ export function swapRightColumn(id: Column['id']) {
}
return true;
}
return false;
});
saveDeck();
}
Expand All @@ -216,6 +218,7 @@ export function swapUpColumn(id: Column['id']) {
}
return true;
}
return false;
});
saveDeck();
}
Expand All @@ -236,6 +239,7 @@ export function swapDownColumn(id: Column['id']) {
}
return true;
}
return false;
});
saveDeck();
}
Expand Down Expand Up @@ -286,7 +290,8 @@ export function removeColumnWidget(id: Column['id'], widget: ColumnWidget) {
const columns = deepClone(deckStore.state.columns);
const columnIndex = deckStore.state.columns.findIndex(c => c.id === id);
const column = deepClone(deckStore.state.columns[columnIndex]);
if (column == null || column.widgets == null) return;
if (column == null) return;
if (column.widgets == null) column.widgets = [];
column.widgets = column.widgets.filter(w => w.id !== widget.id);
columns[columnIndex] = column;
deckStore.set('columns', columns);
Expand All @@ -308,7 +313,8 @@ export function updateColumnWidget(id: Column['id'], widgetId: string, widgetDat
const columns = deepClone(deckStore.state.columns);
const columnIndex = deckStore.state.columns.findIndex(c => c.id === id);
const column = deepClone(deckStore.state.columns[columnIndex]);
if (column == null || column.widgets == null) return;
if (column == null) return;
if (column.widgets == null) column.widgets = [];
column.widgets = column.widgets.map(w => w.id === widgetId ? {
...w,
data: widgetData,
Expand Down
3 changes: 2 additions & 1 deletion packages/frontend/src/ui/deck/direct-column.vue
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ SPDX-License-Identifier: AGPL-3.0-only

<template>
<XColumn :column="column" :isStacked="isStacked" :refresher="() => reloadTimeline()">
<template #header><i class="ti ti-mail" style="margin-right: 8px;"></i>{{ column.name }}</template>
<template #header><i class="ti ti-mail" style="margin-right: 8px;"></i>{{ column.name || i18n.ts._deck._columns.direct }}</template>

<MkNotes ref="tlComponent" :pagination="pagination"/>
</XColumn>
Expand All @@ -16,6 +16,7 @@ import { ref } from 'vue';
import XColumn from './column.vue';
import type { Column } from './deck-store.js';
import MkNotes from '@/components/MkNotes.vue';
import { i18n } from '@/i18n.js';

defineProps<{
column: Column;
Expand Down
20 changes: 15 additions & 5 deletions packages/frontend/src/ui/deck/list-column.vue
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@ SPDX-License-Identifier: AGPL-3.0-only
<template>
<XColumn :menu="menu" :column="column" :isStacked="isStacked" :refresher="async () => { await timeline?.reloadTimeline() }">
<template #header>
<i class="ti ti-list"></i><span style="margin-left: 8px;">{{ column.name }}</span>
<i class="ti ti-list"></i><span style="margin-left: 8px;">{{ (column.name || listName) ?? i18n.ts._deck._columns.list }}</span>
</template>

<MkTimeline v-if="column.listId" ref="timeline" src="list" :list="column.listId" :withRenotes="withRenotes" @note="onNote"/>
</XColumn>
</template>

<script lang="ts" setup>
import { watch, shallowRef, ref } from 'vue';
import { watch, shallowRef, ref, onMounted } from 'vue';
import type { entities as MisskeyEntities } from 'misskey-js';
import XColumn from './column.vue';
import { updateColumn } from './deck-store.js';
Expand All @@ -37,10 +37,20 @@ const props = defineProps<{
const timeline = shallowRef<InstanceType<typeof MkTimeline>>();
const withRenotes = ref(props.column.withRenotes ?? true);
const soundSetting = ref<SoundStore>(props.column.soundSetting ?? { type: null, volume: 1 });
const listName = ref<string | null>(null);

if (props.column.listId == null) {
setList();
}
onMounted(() => {
if (props.column.listId == null) {
setList();
}
});

watch([() => props.column.name, () => props.column.listId], () => {
if (!props.column.name && props.column.listId) {
misskeyApi('users/lists/show', { listId: props.column.listId })
.then(value => listName.value = value.name);
}
});

watch(withRenotes, v => {
updateColumn(props.column.id, {
Expand Down
3 changes: 2 additions & 1 deletion packages/frontend/src/ui/deck/mentions-column.vue
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ SPDX-License-Identifier: AGPL-3.0-only

<template>
<XColumn :column="column" :isStacked="isStacked" :refresher="() => reloadTimeline()">
<template #header><i class="ti ti-at" style="margin-right: 8px;"></i>{{ column.name }}</template>
<template #header><i class="ti ti-at" style="margin-right: 8px;"></i>{{ column.name || i18n.ts._deck._columns.mentions }}</template>

<MkNotes ref="tlComponent" :pagination="pagination"/>
</XColumn>
Expand All @@ -16,6 +16,7 @@ import { ref } from 'vue';
import XColumn from './column.vue';
import type { Column } from './deck-store.js';
import MkNotes from '@/components/MkNotes.vue';
import { i18n } from '../../i18n.js';

defineProps<{
column: Column;
Expand Down
2 changes: 1 addition & 1 deletion packages/frontend/src/ui/deck/notifications-column.vue
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ SPDX-License-Identifier: AGPL-3.0-only

<template>
<XColumn :column="column" :isStacked="isStacked" :menu="menu" :refresher="async () => { await notificationsComponent?.reload() }">
<template #header><i class="ti ti-bell" style="margin-right: 8px;"></i>{{ column.name }}</template>
<template #header><i class="ti ti-bell" style="margin-right: 8px;"></i>{{ column.name || i18n.ts._deck._columns.notifications }}</template>

<XNotifications ref="notificationsComponent" :excludeTypes="props.column.excludeTypes"/>
</XColumn>
Expand Down
12 changes: 10 additions & 2 deletions packages/frontend/src/ui/deck/role-timeline-column.vue
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@ SPDX-License-Identifier: AGPL-3.0-only
<template>
<XColumn :menu="menu" :column="column" :isStacked="isStacked" :refresher="async () => { await timeline?.reloadTimeline() }">
<template #header>
<i class="ti ti-badge"></i><span style="margin-left: 8px;">{{ column.name }}</span>
<i class="ti ti-badge"></i><span style="margin-left: 8px;">{{ column.name || roleName || i18n.ts._deck._columns.roleTimeline }}</span>
</template>

<MkTimeline v-if="column.roleId" ref="timeline" src="role" :role="column.roleId" @note="onNote"/>
</XColumn>
</template>

<script lang="ts" setup>
import { onMounted, ref, shallowRef, watch } from 'vue';
import { computed, onMounted, ref, shallowRef, watch } from 'vue';
import XColumn from './column.vue';
import { updateColumn } from './deck-store.js';
import type { Column } from './deck-store.js';
Expand All @@ -34,13 +34,21 @@ const props = defineProps<{

const timeline = shallowRef<InstanceType<typeof MkTimeline>>();
const soundSetting = ref<SoundStore>(props.column.soundSetting ?? { type: null, volume: 1 });
const roleName = ref<string | null>(null);

onMounted(() => {
if (props.column.roleId == null) {
setRole();
}
});

watch([() => props.column.name, () => props.column.roleId], () => {
if (!props.column.name && props.column.roleId) {
misskeyApi('roles/show', { roleId: props.column.roleId })
.then(value => roleName.value = value.name);
}
});

watch(soundSetting, v => {
updateColumn(props.column.id, { soundSetting: v });
});
Expand Down
2 changes: 1 addition & 1 deletion packages/frontend/src/ui/deck/tl-column.vue
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<XColumn :menu="menu" :column="column" :isStacked="isStacked" :refresher="async () => { await timeline?.reloadTimeline() }">
<template #header>
<i v-if="column.tl != null" :class="basicTimelineIconClass(column.tl)"/>
<span style="margin-left: 8px;">{{ column.name }}</span>
<span style="margin-left: 8px;">{{ column.name || (column.tl ? i18n.ts._timelines[column.tl] : null) || i18n.ts._deck._columns.tl }}</span>
</template>

<div v-if="!isAvailableBasicTimeline(column.tl)" :class="$style.disabled">
Expand Down
2 changes: 1 addition & 1 deletion packages/frontend/src/ui/deck/widgets-column.vue
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ SPDX-License-Identifier: AGPL-3.0-only

<template>
<XColumn :menu="menu" :naked="true" :column="column" :isStacked="isStacked">
<template #header><i class="ti ti-apps" style="margin-right: 8px;"></i>{{ column.name }}</template>
<template #header><i class="ti ti-apps" style="margin-right: 8px;"></i>{{ column.name || i18n.ts._deck._columns[props.column.type] }}</template>

<div :class="$style.root">
<div v-if="!(column.widgets && column.widgets.length > 0) && !edit" :class="$style.intro">{{ i18n.ts._deck.widgetsIntroduction }}</div>
Expand Down