فشل الدعم الخاص بإعدادات سمة `user_in_X` عند كون القيمة المحددة خاطئة

جربت ذلك الآن، لكنني أعتقد أنني لاحظت مشكلة أثناء الاختبار:
إذا لم يكن المستخدم في أي من المجموعات المسموح بها، فإن التحقق الجديد لـ user_in_copy_button_allowed_groups لا يعيد نتيجة. لذلك، يتم تنفيذ رمز الاحتياط للمنتديات التي لا يمكنها بعد التعامل مع user_in_setting لكنه يفشل:

[THEME 254 'Copy post button'] TypeError: Cannot read properties of undefined (reading 'split')

خطوات إعادة إنتاج المشكلة:

  1. ثبّت المكوّن وأضفه إلى سماتك
  2. حدّد المجموعات المسموح بها إلى المشرفين فقط
  3. تجسّس على مستخدم اختبار غير مشرف وتحقق من وحدة تحكم المتصفح

أعتقد أن المشكلة هنا:

if (Object.hasOwn(settings, "user_in_copy_button_allowed_groups")) {
    if (settings.user_in_copy_button_allowed_groups) {
      return true;
    }
  }

هذا يعيد القيمة مسبقًا فقط عندما تكون القيمة true. عندما تكون false، يتم تنفيذ رمز الاحتياط أدناه، والذي يتوقع أن لا تزال قيمة الإعداد موجودة كنص - ولكن في اختبارات مع مكوّن [1] الخاص بي حيث نسخت نمط الاحتياط من copy-post، تكون القيمة undefined بمجرد تفعيل دعم user_in_X. أعتقد أن الحل هو إعادة false في هذه الحالة أيضًا، بحيث يُستخدم الاحتياط فقط عندما لا توجد مفتاح user_in_X على الإطلاق (نواة قديمة)، وليس كلما كانت القيمة المحلولة false.

هل افتراضاتي صحيح، أم لا يزال من المتوقع أن يوفر الإعداد المجموعات كنص؟


  1. prefilled composer link ↩︎

إعجاب واحد (1)