پرتوپرتو

ReleaseTimeline

صفحهٔ کامل «آخرین تغییرات» — همان یادداشت‌های انتشار روی خط زمان، گروه‌بندی‌شده بر حسب روز شمسی

کدام سطح را می‌خواهید؟

اعلام تغییرات محصول تصمیم می‌گیرد کدام ریلیز سزاوار کدام سطح است و بودجهٔ وقفه را تعیین می‌کند — از آنجا شروع کنید. WhatsNew* زنگوله و پنل و مودال است، ReleaseTimeline صفحهٔ کامل، و useWhatsNew حالت «دیده‌شده».

معرفی

ReleaseTimeline یک فید انتشار (ReleaseNote[]) را به‌صورت صفحهٔ کامل تغییرات رندر می‌کند: تاریخ شمسی به‌عنوان سرتیتر، و هر ریلیز یک بلوک مرزدار زیر آن.

بدنهٔ هر یادداشت را از همان رندرکنندهٔ WhatsNewPanel می‌گیرد، پس این دو نما هرگز نمی‌توانند از هم جدا بیفتند.

قبلاً نگاشتی روی ActionTimeline بود — و آن اشتباه بود

دلیل اولیه‌اش بازاستفاده بود: گروه‌بندی روزانه، سرتیتر چسبان و خط اتصال از قبل آن‌جا وجود داشت. ولی ActionTimeline یک primitive برای فید فعالیت است — صدها رویداد یک‌خطی که هرکدام status و مهر زمانی دارند. changelog این نیست، و اجبارِ یکی به قالب دیگری این‌ها را تولید می‌کرد (همه روی صفحهٔ زنده اندازه‌گیری شد): تاریخ ریلیز در ۱۰px، عنوان در ۱۴px یعنی هم‌اندازهٔ متن بدنه، جنسِ تغییر دو بار در هر ورودی، دو نمایش زمان در دو سر یک ردیف، و aria-label="اطلاع: ‹عنوان›" روی هر ردیف چون آن کامپوننت برچسب را از status می‌سازد و یک ریلیز status ندارد. هیچ‌یک با prop قابل رفع نبود.

چه زمانی استفاده کنیم

  • در صفحهٔ اختصاصی «آخرین تغییرات» محصول، جایی که کاربر از فوتر پنل به آن می‌رسد
  • وقتی می‌خواهید تاریخچهٔ بلند را با فضای کافی نشان دهید، نه در یک ستون باریک

چه زمانی استفاده نکنیم

  • در هدر یا کنار آن — برای آن WhatsNewPanel هست
  • برای رویدادهای عملیاتی کاربر (چه کسی چه کاری کرد) — برای آن ActionTimeline هست
  • برای فهرست ساده‌ای که هیچ دسته‌بندی تغییر ندارد؛ آن‌وقت یک فهرست کافی است

  1. قابلیت جدید

    حالا می‌توانید دو کمپین را کنار هم مقایسه کنید

    هر دو کمپین را انتخاب کنید تا نمودار مقایسه‌ای و جدول تفاوت‌ها ساخته شود.

    همچنین در این نسخه

    • خروجی مقایسه به‌صورت فایل اکسل

    • نمودارها روی موبایل هم کامل نمایش داده می‌شوند

  1. رفع اشکال

    فیلترهای پرکاربردتان را ذخیره کنید

    هر ترکیبی از فیلترها را نام‌گذاری کنید تا دفعهٔ بعد با یک کلیک اعمال شود.

    همچنین در این نسخه

    • بازهٔ تاریخ پس از تازه‌سازی صفحه دیگر پاک نمی‌شود

  1. بهبود

    داشبورد سریع‌تر باز می‌شود

    بارگذاری اولیهٔ داشبورد حدود نیمی از قبل طول می‌کشد.

  1. رفع اشکال

    خروجی گرفتن از منشن‌های برند

    فهرست منشن‌ها را با همان فیلترهای فعال خروجی بگیرید.

    همچنین در این نسخه

    • شمارش منشن‌ها در بازه‌های طولانی درست شد

استفاده

import { ReleaseTimeline } from '@partodata/ui'

import { whatsNewFeed } from '@/content/whats-new'

export default function WhatsNewPage() {
  return <ReleaseTimeline notes={whatsNewFeed.notes} />
}

یادداشت‌های تاریخ‌دار در آینده به‌صورت خودکار کنار گذاشته می‌شوند، دقیقاً مثل پنل — یک ریلیز که یک روز زودتر منتشر شود نباید خبرش زودتر بیرون بزند.

حالت‌ها و انواع

گروه‌بندی روزانه (پیش‌فرض)

  1. قابلیت جدید

    حالا می‌توانید دو کمپین را کنار هم مقایسه کنید

    هر دو کمپین را انتخاب کنید تا نمودار مقایسه‌ای و جدول تفاوت‌ها ساخته شود.

    همچنین در این نسخه

    • خروجی مقایسه به‌صورت فایل اکسل

    • نمودارها روی موبایل هم کامل نمایش داده می‌شوند

  1. رفع اشکال

    فیلترهای پرکاربردتان را ذخیره کنید

    هر ترکیبی از فیلترها را نام‌گذاری کنید تا دفعهٔ بعد با یک کلیک اعمال شود.

    همچنین در این نسخه

    • بازهٔ تاریخ پس از تازه‌سازی صفحه دیگر پاک نمی‌شود

  1. بهبود

    داشبورد سریع‌تر باز می‌شود

    بارگذاری اولیهٔ داشبورد حدود نیمی از قبل طول می‌کشد.

  1. رفع اشکال

    خروجی گرفتن از منشن‌های برند

    فهرست منشن‌ها را با همان فیلترهای فعال خروجی بگیرید.

    همچنین در این نسخه

    • شمارش منشن‌ها در بازه‌های طولانی درست شد

نشانگر هر ردیف، آیکون مهم‌ترین نوع تغییرِ آن یادداشت است و برچسب کنار عنوان هم نام همان نوع. ترتیب اهمیت: تغییر مهم، قابلیت جدید، بهبود، رفع اشکال.

فشرده و بدون گروه‌بندی

  1. قابلیت جدید

    حالا می‌توانید دو کمپین را کنار هم مقایسه کنید

    هر دو کمپین را انتخاب کنید تا نمودار مقایسه‌ای و جدول تفاوت‌ها ساخته شود.

    همچنین در این نسخه

    • خروجی مقایسه به‌صورت فایل اکسل

    • نمودارها روی موبایل هم کامل نمایش داده می‌شوند

  1. رفع اشکال

    فیلترهای پرکاربردتان را ذخیره کنید

    هر ترکیبی از فیلترها را نام‌گذاری کنید تا دفعهٔ بعد با یک کلیک اعمال شود.

    همچنین در این نسخه

    • بازهٔ تاریخ پس از تازه‌سازی صفحه دیگر پاک نمی‌شود

  1. بهبود

    داشبورد سریع‌تر باز می‌شود

    بارگذاری اولیهٔ داشبورد حدود نیمی از قبل طول می‌کشد.

  1. رفع اشکال

    خروجی گرفتن از منشن‌های برند

    فهرست منشن‌ها را با همان فیلترهای فعال خروجی بگیرید.

    همچنین در این نسخه

    • شمارش منشن‌ها در بازه‌های طولانی درست شد

density="compact" و groupBy="none" برای جایی که فضای عمودی کم است.

راهنمای استفاده

بکنید

  • همان آرایه‌ای را بدهید که به useWhatsNew می‌دهید، تا صفحه و پنل هرگز از هم جدا نیفتند - این صفحه را در viewAllHref پنل معرفی کنید تا مسیر «تاریخچهٔ کامل» بسته شود - عنوان را جملهٔ اصلی ریلیز بگذارید و بولت‌ها را فقط برای چیزهای دیگری که همراهش آمده؛ زیر «همچنین در این نسخه» می‌نشینند

نکنید

  • یادداشت‌های silent را از این صفحه حذف نکنید؛ تاریخچه باید کامل باشد، فقط اعلانش خاموش است - این کامپوننت را برای رویدادهای کاربر به کار نبرید - بولتی نگذارید که عنوان را تکرار کند. این پرتکرارترین اشتباه است و خودِ دموی همین مستندات یک‌بار مرتکبش شد: یادداشتی با عنوان «فیلترهای پرکاربردتان را ذخیره کنید» بولت اولش «ذخیره و نام‌گذاری فیلترها» بود — یک واقعیت، دو بار، ده پیکسل فاصله. اگر یادداشت فقط یک تغییر دارد، هیچ بولتی نگذارید؛ عنوان و چیپِ نوع کارشان را کرده‌اند

Props

Prop

Type

بقیهٔ propهای ActionTimeline — به‌جز items، children، locale و onItemSelect که این کامپوننت خودش مدیریتشان می‌کند — پذیرفته می‌شوند و مستقیم به آن می‌رسند. ردیف‌های این خط زمان عمداً قابل کلیک نیستند: یادداشت انتشار مقصدی برای رفتن ندارد.

دسترسی‌پذیری

  • هر گروهِ تاریخ یک <section> با سرتیتر <h2> است و ورودی‌هایش در یک <ol> می‌نشینند، پس صفحه‌خوان ساختار «تاریخ ← ریلیزهای آن روز» را همان‌طور که دیده می‌شود اعلام می‌کند.
  • تاریخ در <time dateTime> با مقدار میلادیِ ماشین‌خوان می‌آید، درحالی‌که کاربر شمسی می‌بیند. زمان نسبی («۳ روز پیش») حذف شد: در صفحه‌ای که تاریخ سرتیتر است، دو نمایش زمان با هم رقابت می‌کردند، و با آهنگ حدوداً یک تغییر در هفته، جدیدترین ورودی «۱ هفته پیش» می‌خواند که روی سطحی که باید مهم به‌نظر برسد، بی‌توجهی را می‌رساند.
  • آیکون نوع تغییر aria-hidden است و همان معنا در متنِ برچسب کنارش تکرار می‌شود، پس هیچ اطلاعاتی فقط در رنگ نمی‌ماند — و این عمدی است، چون فاصلهٔ رنگیِ دو نوعِ پرتکرار به‌تنهایی قابل اتکا نیست.
  • هر گروهِ بولت role="group" با نام دسترسی‌پذیر دارد و خودِ چیپ aria-hidden است، وگرنه صفحه‌خوان برچسب را دو بار می‌خواند.

کامپوننت‌های مرتبط

  • WhatsNew — زنگوله، پنل و مودال؛ اگر دنبال سطح داخل هدر هستید از آن‌جا شروع کنید
  • ActionTimeline — لایهٔ زیرین؛ اگر داده‌تان یادداشت انتشار نیست مستقیم از آن استفاده کنید
  • Markdown — خلاصه و بولت‌ها با همین رندرکننده نمایش داده می‌شوند