さっそく試してみましたが、テスト中に問題に気づきました:
ユーザーが許可されたグループのいずれにも属していない場合、user_in_copy_button_allowed_groups に対する新しいチェックは結果を返しません。そのため、user_in_setting に対応していないフォーラム向けのフォールバックコードが実行されますが、失敗します:
[THEME 254 'Copy post button'] TypeError: Cannot read properties of undefined (reading 'split')
再現手順:
- コンポーネントをインストールし、テーマに追加します
allowed_groupsを管理者に制限します- 管理者ではないテストユーザーになりすまし、ブラウザのコンソールを確認します
問題はここにあるようです:
if (Object.hasOwn(settings, "user_in_copy_button_allowed_groups")) {
if (settings.user_in_copy_button_allowed_groups) {
return true;
}
}
これは値が true の場合のみ早期リターンします。false の場合、下のフォールバックコードが実行されますが、このコードは設定値がまだ文字列として存在することを前提としています。しかし、私が copy-post からフォールバックパターンをコピーした [1] コンポーネントでのテストでは、user_in_X サポートが有効になると、その値は undefined になります。おそらく、その場合も false を返すようにすれば、user_in_X キーが完全に存在しない場合(旧版コア)のみフォールバックが使用され、解決された値が偶然 false である場合は使用されなくなるはずです。
私の仮定は正しいでしょうか?それとも、設定は依然としてグループを文字列として提供することが期待されているのでしょうか?
prefilled composer link ↩︎