منع المقارنة مع لقطة أو موضع قديم

أثناء إجراء بعض الاختبارات على تجربة المستخدم لعدة مستخدمين يقومون بتعديل منشور مشترك بشكل متزامن عبر إضافة التعديلات المشتركة، واجهت سيناريوهات حيث تم إسقاط أجزاء من الإضافات الجديدة بصمت، أو تم تشويه المحتوى الجديد بشكل غريب داخل المحتوى الموجود دون أي مراعاة للحدود بين الكلمات وما إلى ذلك.

تبيّن أن هناك مكانين في كود الإضافة، حيث في سيناريو التعديلات المتزامنة، كان يحصل المستخدمون على تطبيق التغييرات على لقطة قديمة من المحتوى، بدلاً من المحتوى الذي يشاهدونه فعلياً.

لقد قمت بتحديث الكود بحيث يتم إجراء المقارنة (diffing) على الحالة الفعلية الحالية للمحرر / DOM، بدلاً من لقطة تم التقاطها مسبقاً. راجعوا طلب الدمج المقابل للتفاصيل.

مع إدخال هذا التغيير، شعرت بأن تجربة المستخدم العامة أصبحت أكثر سلاسة، حتى عند التعديل المتزامن على نفس الموقع بالضبط في المستند. أصبحت النتيجة أكثر قابلية للقراءة البشرية، وانخفضت حالات التشويه داخل الكلمات.

(خلفية هذه القضية: أقوم بتشغيل اختبار آلي باستخدام Playwright يقوم بإجراء بعض التعديلات المتزامنة على منشور.)

أستمر في اختبار/قياس أداء هذا وقد يكون لديّ اكتشاف لحدوثه مرة أخرى :eyes:

سألقي نظرة للتحقق ثم سأقوم بتحديث طلب الدمج (PR).