نسخهٔ ۲ ریاکت ایمیل ادیتور منتشر شد
خلاصهٔ کاملتر
کتابخونهٔ react-email-editor از Unlayer به نسخهٔ v2.0.0 رسید. به گفتهٔ تیم، این یه ریلیز نوسازیه و API کامپوننت هیچ تغییری نکرده، برای همین بیشتر اپهایی که روی React نسخهٔ 16.8 به بالا و یه زنجیرهٔ ابزار بهروز اجرا میشن، میتونن بدون هیچ تغییری تو کد آپگرید کنن.
مهمترین تغییرهای شکننده سر نسخههان. حالا حداقل نسخهٔ React برابر 16.8 لازمه (قبلاً peer dependency روی >=15 بود)؛ چون کامپوننت از v1.7.0 از هوکها استفاده میکنه، عملاً روی React 15 تا 16.7 هیچوقت درست کار نمیکرد و حالا npm این محدودیت رو موقع نصب اعمال میکنه. حداقل نسخهٔ Node هم تو engines روی 18 تنظیم شده (قبلاً >=10 بود).
یه تغییر مهم دیگه اینه که ایمپورتهای عمیق دیگه مجاز نیستن. پکیج حالا یه نقشهٔ exports داره و فقط ایمپورت از ریشه (react-email-editor) و خودِ ./package.json قابل دسترسیه؛ پس مسیرهایی مثل ایمپورت از پوشهٔ dist باید با ایمپورت از ریشه جایگزین بشن. ضمناً کد منتشرشده حالا ES2019 هست (قبلاً ES5 بود)، برای همین پایپلاینهای بیلد قدیمی که نمیتونن ES2019 رو پارس کنن، بهتره روی نسخهٔ 1.x بمونن یا node_modules رو ترنسپایل کنن.
یه باگ قدیمی هم برطرف شده: قبلاً بهخاطر یه مشکل stale-closure، وقتی کامپوننت آنمونت میشد متد editor.destroy() هیچوقت اجرا نمیشد؛ حالا ادیتورها موقع آنمونت درست از بین میرن. اگه اپت به بقای همون نمونهٔ نشتکرده بعد از ریمونت وابسته بود، دیگه اینطوری نیست.
از چیزهای اضافهشده، یه بیلد ESM بومی برای import در کنار CJS برای require اومده، با فایلهای تعریف TypeScript جدا و درست برای هر فرمت. مهمتر از اون، دایرکتیو 'use client' تو باندل منتشرشده قرار گرفته که یعنی از جعبه با App Router نکست و بقیهٔ محیطهای React Server Components کار میکنه. لیسنرهای رویداد که بهصورت پراپهای on* پاس داده میشن هم حالا موقع تغییر مجموعهٔ پراپها درست دوباره ثبت میشن (قبلاً بر اساس اندیس آرایه کلید میخوردن).
تو بخش تغییرات هم، نسخهٔ @unlayer/types بهجای latest روی یه بازهٔ نسخه پین شده. ابزار بیلد از tsdx به tsup و تستها از Jest به Vitest مهاجرت کردن. حالا CI روی React 16 و 17 تست دود (smoke) و روی React 18 و 19 مجموعهٔ کامل تست رو، اونم روی Node نسخههای 20، 22 و 24 و با آستانههای پوشش اجباری، اجرا میکنه.
نکات کلیدی:
- API کامپوننت عوض نشده؛ اغلب پروژهها روی React 16.8+ بدون تغییر کد آپدیت میشن
- حداقل نسخهٔ React حالا 16.8 و حداقل Node حالا 18 هست
- ایمپورتهای عمیق حذف شدن و فقط ایمپورت از ریشه مجازه؛ کد منتشرشده ES2019 شده
- بیلد ESM بومی و دایرکتیو 'use client' برای App Router نکست اضافه شده
- باگ اجرانشدن destroy موقع آنمونت رفع شد و ابزارها به tsup و Vitest مهاجرت کردن




