مستنداتنسخهٔ ۲٫۰نمونهٔ زنده
مستنداتاتصال به سرورمرجع جاوااسکریپت

مرجع جاوااسکریپت

گزینه‌های تنظیمات، API عمومی و رویدادهای کیت.

تنظیمات#

همهٔ گزینه‌ها در assets/js/config.js روی شیء window.MN_CONFIG نوشته می‌شوند. گزینه‌ای که ننویسید مقدار پیش‌فرض را می‌گیرد.

گزینهپیش‌فرضتوضیح
demotrueحالت نمایشی بدون سرور؛ در انتشار false شود
demoPassword"Mehman123"رمز ورود در حالت نمایشی
demoCode"123456"کد تأیید در حالت نمایشی
apiشیءنشانی سرویس‌ها؛ کلیدها در [اتصال به بک‌اند](backend.html#setup)
social.google / social.apple""نشانی شروع ورود اجتماعی
csrf.meta / csrf.headercsrf-token / X-CSRF-Tokenنام تگ meta و هدر درخواست
credentials"same-origin"مقدار credentials در fetch
otpResendSeconds60مدت انتظار برای ارسال دوبارهٔ کد (ثانیه)
maxDemoAttempts3تعداد تلاش ناموفق ورود در حالت نمایشی پیش از قفل
lockedUrl"locked.html"صفحهٔ مقصد هنگام پاسخ 423 یا قفل نمایشی

شیء Mehmannavaz#

پس از بارگذاری mehmannavaz.js، شیء سراسری Mehmannavaz در دسترس است:

عضوتوضیح
Mehmannavaz.versionنسخهٔ کیت
Mehmannavaz.configتنظیمات نهایی پس از ادغام با مقدارهای پیش‌فرض
Mehmannavaz.toast(message, type)نمایش تاست؛ type برابر "ok" (پیش‌فرض) یا "err"
Mehmannavaz.request(key, payload)ارسال POST JSON به یکی از کلیدهای api (یا نشانی کامل) با همان هدرها و CSRF؛ Promise<{ ok, status, data }> برمی‌گرداند
Mehmannavaz.addRule(name, fn)تعریف یا جایگزینی قاعدهٔ اعتبارسنجی

تابع toast به‌صورت window.toast هم در دسترس است تا در صفت‌هایی مثل onclick قابل استفاده باشد.

JavaScript
const res = await Mehmannavaz.request("login", { email, password });
if (res.ok) location.href = res.data.next || "/dashboard";
else Mehmannavaz.toast(res.data.message || "خطا", "err");

رویدادها#

رویدادها روی document منتشر می‌شوند و نام آن‌ها با mn: شروع می‌شود:

رویدادزمان`event.detail`
mn:successپس از پاسخ موفق یا تأیید موفق کد، پیش از رفتن به صفحهٔ بعد{ form, endpoint, data }
mn:errorپس از پاسخ خطا از سرور{ form, endpoint, status, data }

form برای فرم‌ها خود <form> و برای کد یک‌بارمصرف عنصر .otp است؛ endpoint برای کد یک‌بارمصرف "verifyOtp" است. در حالت نمایشی هم رویدادها منتشر می‌شوند.

JavaScript
document.addEventListener("mn:error", e => {
  console.warn(e.detail.endpoint, e.detail.status, e.detail.data);
});

ذخیره‌سازی#

کیت فقط یک کلید در localStorage می‌نویسد: mn-theme با مقدار light یا dark. اگر مرورگر ذخیره‌سازی را مسدود کرده باشد (مثلاً حالت خصوصی)، همهٔ بخش‌ها بدون آن کار می‌کنند و فقط انتخاب تم به‌خاطر سپرده نمی‌شود.

مهمان‌نواز نسخهٔ ۲٫۰ · مهر ۱۴۰۵فهرست تغییرات