Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pull] develop from misskey-dev:develop #9

Open
wants to merge 41 commits into
base: develop
Choose a base branch
from

Conversation

pull[bot]
Copy link

@pull pull bot commented Oct 19, 2024

See Commits and Changes for more details.


Created by pull[bot]

Can you help keep this open source service alive? 💖 Please sponsor : )

kakkokari-gtyih and others added 3 commits October 19, 2024 17:25
* spec(frontend): Bull Dashboard に relationship queue を追加 (MisskeyIO#751)

(cherry picked from commit a8bbccb)

* Update Changelog

* Update Changelog

---------

Co-authored-by: riku6460 <17585784+riku6460@users.noreply.github.com>
* refactor: getBgColor関数の切り出し + fix types (taiyme#291)

* move thing

* revert unnecesary changes

---------

Co-authored-by: taiy <53635909+taiyme@users.noreply.github.com>
@pull pull bot added the ⤵️ pull label Oct 19, 2024
CHANGELOG.md Outdated
@@ -4,7 +4,8 @@
-

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CHANGELOG.md の改善点 (Uncle Bob 風)

  1. 見出しのフォーマットを統一: "Client"と"Server"の見出しは、"###"ではなく"##"で統一しましょう。
  2. 変更点を簡潔に: "Enhance"の後に具体的な変更内容を簡潔に記述し、詳細な説明はリンクで別ファイルに委ねましょう。
  3. 不要なコメント削除: "-"と"-}""は不要なので削除しましょう。
  4. 変更点をわかりやすく: "Cherry-picked from..."のような説明を追記して、変更元の情報を明記しましょう。
  5. コードレビューの指摘: "Bull DashboardでRelationship Queueの状態も確認できるように"は、より具体的に "Relationship Queueの状態をBull Dashboardで確認できるように" と書き換えることを検討しましょう。

@@ -30,6 +30,7 @@ import type {
EndedPollNotificationQueue,

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • このコードは、Uncle Bob の原則に従って改善することができます。
    1. 依存関係の注入: ClientServerService クラスは、コンストラクタで多くの依存関係を受け取っています。これは、クラスの責任を明確にし、テストしやすくするために、依存関係を注入することが望ましいです。
    1. インターフェース: 各キューに対してインターフェースを作成することで、実装の詳細を隠蔽し、コードの柔軟性を高めることができます。
    1. 名前: クラス名やメソッド名など、名前付けを明確にすることで、コードの可読性を高めることができます。
    1. 責務: ClientServerService クラスは、複数の責務を担っています。それぞれの責務を独立したクラスに分割することで、コードの保守性を高めることができます。
    1. テスト: コードのテストがしやすいように、単体テストを作成する必要があります。

このコードは、Uncle Bob の原則に従って、いくつかの改善点があります。

  1. 依存関係の注入: ClientServerService クラスは、コンストラクターで多くの依存関係を受け取っています。これは、クラスの責任を明確にするため、依存関係を注入すべきです。
  2. インターフェース: 各キューに対してインターフェースを作成することで、実装の詳細を隠蔽し、コードの柔軟性を高めることができます。
  3. 責務: ClientServerService クラスは、複数の責務を担っています。それぞれの責務を独立したクラスに分割することで、コードの保守性を高めることができます。
  4. 名前: クラス名やメソッド名など、名前付けを明確にすることで、コードの可読性を高めることができます。
  5. テスト: コードのテストがしやすいように、単体テストを作成する必要があります。

@@ -64,26 +64,30 @@ const showBody = ref(props.expanded);
const ignoreOmit = ref(false);

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

コード改善点 (Uncle Bob 風)

  1. 関数に明示的な型を追加: enter, afterEnter, leave, afterLeave 関数の引数と戻り値に型注釈を追加して、コードの可読性を高め、潜在的なエラーを防ぎましょう。
  2. マジックナンバーを定数に: 0Infinity などのマジックナンバーは定数に置き換えて、コードの意味を明確化しましょう。
  3. null ではなく空文字列を使用: el.style.height をリセットする際に null ではなく空文字列 '' を使用して、意図を明確にしましょう。
  4. getBoundingClientRect の使用を最小限に: DOM 操作はパフォーマンスに影響するため、必要な場合にのみ getBoundingClientRect を使用しましょう。
  5. calcOmit 関数の目的を明確化: calcOmit 関数の具体的な処理をコメントで記述するか、よりわかりやすい関数名に変更して、コードの意図を明確にしましょう。

@@ -128,14 +128,14 @@ export default defineComponent({
return children;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • onBeforeLeaveonLeaveCancelled は、ElementHTMLElement にキャストしている。これは冗長で、TypeScript の型チェックが不十分になっている。代わりに、if 文で HTMLElement かどうかをチェックして、HTMLElement でない場合は何もしないようにする。
  • onLeaveCancelled は、onBeforeLeave の逆の処理をしている。この2つの関数は、単一の関数にまとめることができる。
  • 関数名は、より明確な表現に変えることができる。onBeforeLeavefixElementPositiononLeaveCancelledresetElementPosition など。
  • すべてのコードは、より簡潔に書ける。return children は、単に children で置き換えることができる。
  • このコンポーネントは、onBeforeLeaveonLeaveCancelled の処理が重複している。この処理を別の関数やmixinにまとめることで、コードをより再利用可能にすることができる。

@@ -5,7 +5,7 @@ SPDX-License-Identifier: AGPL-3.0-only

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

このコードは改善の余地があります。以下にUncle Bobの考え方を取り入れた改善点を5行で示します。

  1. 小さな関数に分割する: enter, afterEnter, leave, afterLeave はそれぞれ独立した機能を持ちます。これらの関数をさらに小さな関数に分割することで、コードの可読性を向上させ、再利用性を高めましょう。
  2. 命名を改善する: parentBgrootEl といった名前は、その変数が何を表すのか明確ではありません。より具体的な名前を付けることで、コードの理解を容易にします。
  3. 条件文を簡潔にする: if (!(el instanceof HTMLElement)) return; のような条件文は、コードの可読性を低下させる可能性があります。 if (el instanceof HTMLElement) のように書き換えることで、よりシンプルで理解しやすいコードになります。
  4. マジックナンバーを定数で置き換える: 0.85 のような数字は、コードの理解を妨げる可能性があります。定数として定義することで、コードの可読性を向上させ、メンテナンス性を高めます。
  5. 不要なコードを削除する: tinycolor は使用されていません。不要なライブラリは削除することで、コードのサイズを小さくし、パフォーマンスを向上させましょう。

@@ -56,8 +56,9 @@ SPDX-License-Identifier: AGPL-3.0-only
</template>

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

コード改善点

  1. 関数の引数型定義: enter, afterEnter, leave, afterLeave の関数は引数型を HTMLElement に明示的に定義すべきです。これにより、コードの可読性と型安全性が高まります。
  2. getBgColor 関数の分離: getBgColor 関数は複雑で、コンポーネントの責任範囲を超えています。この関数は別ファイルに移動し、再利用可能なユーティリティ関数にするべきです。
  3. null チェックの簡略化: rootEl.value!.parentElement! などの強制アンラップは危険なコードです。代わりに、オプショナルチェイニング (?.) を使用して null チェックを簡略化し、コードの安全性を向上させるべきです。
  4. スタイル設定の簡略化: el.style.height = null の代わりに el.style.height = '' を使用して、スタイルをクリアすべきです。
  5. withDefaults の位置: defineProps の直後に withDefaults を配置することで、コードの可読性と整理性を向上させることができます。

これらの改善点を適用することで、コードはより読みやすく、保守しやすいものになります。

@@ -53,7 +53,7 @@ export type Tab = {
</script>

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

コード改善点

  1. インポート順序: import 文の順序がバラバラです。Vue の公式ガイドラインに従って、vue のインポートを最初に、その後アルファベット順に並べてください。
  2. 型アノテーション: onTabWheel 関数の ev パラメータの型アノテーションは不要です。すでに WheelEvent 型として推測できるため、省略可能です。
  3. nextTick の使用: enter 関数内で nextTick を使用していますが、これは DOM が更新されるまで待機するための一般的なパターンであり、説明コメントを追加する必要はありません。
  4. offsetWidth の使用: enterleave 関数内で offsetWidth を使用して reflow を強制していますが、これよりも効率的な方法があるかもしれません。例えば、element.style.width = 'auto' を試すことができます。
  5. 冗長なキャスト: elHTMLElement にキャストする箇所がありますが、コンテキストからすでに HTMLElement と推測できるため、キャストは不要です。

これらの修正によってコードはより読みやすく、保守しやすくなります。

@@ -4,19 +4,11 @@
*/

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

コード改善点 (Uncle Bob 風)

  1. 重複したコードを排除: getBgColor 関数は外部のユーティリティファイルに移動し、重複を排除する。
  2. 可読性を向上: getBgColor 関数のロジックをシンプルにし、名前をわかりやすく変更する。
  3. エラーハンドリング: parentElement が存在しない場合の処理を追加し、null チェックを行う。
  4. 可読性を向上: ?? オペレータを使って、親要素の背景色が存在しない場合にデフォルト値を設定する。
  5. テストしやすいコードにする: getBgColor 関数を独立してテスト可能なようにする。

@@ -4,19 +4,11 @@
*/

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

コード改善点 (Uncle Bob 風)

  1. 重複コードを排除: getBgColor 関数は再利用可能で、別のファイルに移動すべきです。
  2. 明確な命名: src は何を表しているのか不明です。より具体的な名前 (e.g., element) を使用しましょう。
  3. 簡潔な条件: getBgColor の条件式は簡潔に表現できます。includes よりも style.backgroundColor !== 'transparent' などで十分です。
  4. デフォルト値: getBgColor の返り値は、親要素がなければ transparent になります。このロジックは関数内で処理すべきです。
  5. 可読性を向上: コメントを適切に追加してコードの意図を明確にしましょう。

@@ -4,19 +4,11 @@
*/

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

コード改善点

  1. getBgColor 関数は、重複したコードを別のファイルに切り出し、再利用性を高めています。
  2. getBgColor 関数のロジックを簡素化し、条件分岐を減らしました。
  3. parentElement が存在しない場合に transparent を返すように修正し、エラーを回避しました。
  4. getComputedStyle を用いて要素の背景色を取得する際に、getPropertyValue メソッドを使用するように修正しました。
  5. myBg の取得部分に ?? 演算子を用いて、デフォルト値を指定するように修正しました。

@@ -5,18 +5,16 @@ SPDX-License-Identifier: AGPL-3.0-only

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

コード改善点 (Uncle Bob風に)

  1. 不要なテンプレートのネストを削除: template #header 内の MkPageHeader は直接記述できます。
  2. 条件文の簡略化: !($i && ($i.isAdmin || $i.policies.canInvite))!$i || !$i.isAdmin && !$i.policies.canInvite に簡略化できます。
  3. CSS クラスの命名規則を統一: _ghost は他のクラス名と異なるので、統一された命名規則に従うべきです。
  4. 不要なスタイル属性を削除: style="text-align: center;" は CSS ファイルに移すべきです。
  5. 変数名を明確にする: resetCycleinviteLimit のような変数名は、より具体的な意味を持つ名前に変更すべきです。

@@ -6,15 +6,15 @@ SPDX-License-Identifier: AGPL-3.0-only
<template>

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

コード改善点 (Uncle Bob 風)

  1. エラーハンドリングの明確化: error 変数は undefinednull 両方を受け取れるように設定していますが、明確に null を指定しましょう。
  2. 条件式簡略化: !(typeof error === 'undefined')error != null に置き換えられます。
  3. 重複した条件式削除: v-if="list" は重複しているので、片方を削除しましょう。
  4. 変数名の改善: list 変数は userList などのより明確な名前で置き換えましょう。
  5. 不要なクラスの削除: :class="$style.root":class="$style.img" などは不要な可能性があります。スタイルはCSSで管理するのが良いでしょう。

@@ -6,15 +6,15 @@ SPDX-License-Identifier: AGPL-3.0-only
<template>

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

コード改善点 (Uncle Bob 風)

  1. エラーハンドリングの改善: errorundefined ではなく null で初期化し、error != null を使ってエラー表示を制御するべき。
  2. 変数名の統一: role プロパティは roleId に変更し、コンポーネント内部では role を使ってロールデータを表す。
  3. 型注釈の追加: roleerror に型注釈を追加してコードの可読性を向上させる。
  4. 不要なコードの削除: document.title の設定は不要。definePageMetadata を使ってタイトルを設定する。
  5. visible の条件式の簡略化: isExplorableisPublic を使用して visible を直接設定する。

これらの改善により、コードはより明確で読みやすくなり、エラー処理もより適切に行われるようになります。

@@ -217,7 +217,7 @@ const routes: RouteDef[] = [{
component: page(() => import('@/pages/theme-editor.vue')),

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • path: '/roles/:role' は、role という名前が曖昧で、他のコンポーネントとの衝突の可能性があります。roleId のようにより明確な名前を使用しましょう。
  • ルート定義は、明確で簡潔な名前、正確なパス、適切なコンポーネント参照を持つように、より明確かつ一貫性を持たせるべきです。
  • 命名規則を適用して、コードの一貫性を確保しましょう。
  • path パラメータは、意味のある名前を持つ変数に置き換えることで、コードの可読性を向上させることができます。
  • すべてのルート定義が、関連する機能やコンポーネントと明確に関連付けられていることを確認しましょう。

@@ -0,0 +1,18 @@
/*

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

コード改善点 (Uncle Bob 風)

  1. 関数名: getBgColor はあまり説明的ではない。getBackgroundColorfindBackgroundColor のように、目的を明確にする名前に変更しよう。
  2. null チェック: elem == nullelem === null || elem === undefined に置き換える。より明確で、意図が明確になる。
  3. 早期リターン: if (bg && tinycolor(bg).getAlpha() !== 0) の条件が満たされない場合、すぐに return null を実行することで、コードのネストを減らし、可読性を向上させる。
  4. 再帰呼び出し: getBgColor(elem.parentElement) は、再帰呼び出しが無限ループになる可能性がある。安全な再帰呼び出しになるように、終了条件を追加する必要がある。
  5. コメント: 関数の目的を明確にするためのコメントを追加する。例えば、/** 要素の背景色を取得する。 */ のようなコメント。

Copy link

このPRによるapi.jsonの差分
差分はありません。
Get diff files from Workflow Page

Copy link

codecov bot commented Oct 19, 2024

Codecov Report

Attention: Patch coverage is 22.41379% with 90 lines in your changes missing coverage. Please review.

Project coverage is 39.66%. Comparing base (c14eba3) to head (58419e1).
Report is 65 commits behind head on develop.

Files with missing lines Patch % Lines
...ages/frontend/src/components/MkFoldableSection.vue 0.00% 21 Missing ⚠️
packages/frontend/src/components/MkFolder.vue 0.00% 17 Missing ⚠️
packages/frontend/src/components/MkContainer.vue 0.00% 14 Missing ⚠️
packages/frontend/src/pages/role.vue 0.00% 12 Missing ⚠️
packages/frontend/src/scripts/get-bg-color.ts 44.44% 10 Missing ⚠️
...es/frontend/src/components/MkDateSeparatedList.vue 0.00% 4 Missing ⚠️
packages/frontend/src/pages/invite.vue 0.00% 3 Missing ⚠️
packages/frontend/src/pages/list.vue 0.00% 3 Missing ⚠️
...ages/backend/src/server/web/ClientServerService.ts 33.33% 2 Missing ⚠️
packages/frontend/src/directives/adaptive-bg.ts 50.00% 1 Missing ⚠️
... and 3 more
Additional details and impacted files
@@             Coverage Diff              @@
##           develop       #9       +/-   ##
============================================
+ Coverage    19.38%   39.66%   +20.28%     
============================================
  Files          721     1555      +834     
  Lines       102315   195723    +93408     
  Branches       992     2575     +1583     
============================================
+ Hits         19831    77641    +57810     
- Misses       81933   117514    +35581     
- Partials       551      568       +17     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

tetsuya-ki and others added 5 commits October 20, 2024 16:17
* Enhance: ドライブでソートができるように

* Update CHANGELOG.md
* fix(frontend): 通知の範囲指定が必要ない通知設定でも範囲指定がでている問題を修正

* Update Changelog

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
* fix(frontend): Captcha のエラーハンドリングを修正 (MisskeyIO#768)

(cherry picked from commit 88912d0)

* Update Changelog

* typo

---------

Co-authored-by: riku6460 <17585784+riku6460@users.noreply.github.com>
* wip

* wip

* wip

* Update packages/frontend/src/pages/note.vue

Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>

* wip

* Update WebhookTestService.ts

* Update privacy.vue

* wip

* rename

* Update locales/ja-JP.yml

Co-authored-by: Sayamame-beans <61457993+Sayamame-beans@users.noreply.github.com>

* 🎨

* wip

---------

Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
Co-authored-by: Sayamame-beans <61457993+Sayamame-beans@users.noreply.github.com>
syuilo and others added 13 commits October 21, 2024 19:14
* wip

* Update CHANGELOG.md

* wip

* wip

* wip

* Update privacy.vue

* wip
* enhance(frontend): 「単なるラッキー」の調整

* refactor

* comment

* Update Changelog

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
* enhance(frontend): 外部アプリ認証画面の改良

* 🎨

* lint

* Update Changelog

* indent

* lint

* enhance: miauthのリダイレクト先をUI内でも表示するように

* 🎨

* fix

* fix
* fix(frontend): 管理画面のリンク切れを修正

* Update Changelog
* fix: should use invite limit cycle to calculate invite/limit

* Update Changelog

* Update changelog

---------

Co-authored-by: Lhc_fl <lhcfl@outlook.com>
#14828 のデザイン修正
* enhance(frontend): Self-XSS防止用のメッセージを追加

* Update Changelog

* embedにも同様の記述を追加
* fix(misskey-js): WebSocketの型定義をReconnectingWebsocketに依存するように

* Update Changelog

* run api extractor

* fix

* fix
syuilo and others added 16 commits October 28, 2024 11:43
* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Japanese, Kansai)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Japanese, Kansai)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Japanese, Kansai)

* New translations ja-jp.yml (Korean (Gyeongsang))

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Indonesian)

* New translations ja-jp.yml (Indonesian)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Hungarian)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Korean (Gyeongsang))

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Catalan)
* enhance(i18n): 対応言語の追加

* 翻訳進捗が70%に満たないものを除外

* Update Changelog

* 翻訳進捗が70%を超えたら導入の旨を明記

* typo

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
…ies (#14825)

This is allowed according to the Activity vocabulary: https://www.w3.org/TR/activitystreams-vocabulary/#dfn-icon
The issue is noticeable in combination with Bridgy Fed: snarfed/bridgy-fed#1408
* fix race conditions in check_connect.js

(cherry picked from commit 524ddb9)

* fix

* Update Changelog

---------

Co-authored-by: Hazelnoot <acomputerdog@gmail.com>
* refactor(frontend): できるだけanyを除去

* refactor

* lint

* fix

* remove unused

* Update packages/frontend/src/components/MkReactionsViewer.details.vue

* Update packages/frontend/src/components/MkUsersTooltip.vue

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants