Add shared empty states, customer product filters, and SSO handoff across dashboards.

Standardize list empty UI, searchable country fields, customer-products filter row, password/login polish, and one-time business dashboard handoff from the customer app.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Alireza Hassani
2026-08-19 19:46:57 +03:30
co-authored by Cursor
parent 832ac32a09
commit f8a9a28346
55 changed files with 1264 additions and 907 deletions
+10 -2
View File
@@ -231,6 +231,9 @@ const en = {
'myProducts.fields.location': 'Location',
'myProducts.fields.country': 'Country',
'myProducts.fields.selectCountry': 'Select country',
'myProducts.fields.searchCountry': 'Search country…',
'myProducts.fields.clearCountry': 'Clear country',
'myProducts.fields.noCountries': 'No countries found',
'myProducts.fields.province': 'Province',
'myProducts.fields.selectProvince': 'Select province',
'myProducts.fields.city': 'City',
@@ -316,6 +319,7 @@ const en = {
'login.error.sendCode': 'Unable to send verification code.',
'login.error.cellEnglishDigits': 'Please use English digits for the mobile number.',
'login.error.smsProvider': 'SMS service is temporarily unavailable. Please try again later.',
'login.error.invalidCredentials': 'Invalid mobile number or password.',
'signup.title': 'Create account',
'signup.subtitle': 'Register as a customer of {domain}',
@@ -368,7 +372,7 @@ const en = {
'password.rule.length': 'At least 8 characters',
'password.rule.upper': 'One uppercase letter',
'password.rule.number': 'One number',
'password.rule.special': 'One special character',
'password.rule.match': 'Passwords match',
'otp.back': 'Back to sign in',
'otp.title': 'One-time login',
@@ -620,6 +624,9 @@ const fa: Record<MessageKey, string> = {
'myProducts.fields.location': 'موقعیت',
'myProducts.fields.country': 'کشور',
'myProducts.fields.selectCountry': 'انتخاب کشور',
'myProducts.fields.searchCountry': 'جستجوی کشور…',
'myProducts.fields.clearCountry': 'پاک کردن کشور',
'myProducts.fields.noCountries': 'کشوری پیدا نشد',
'myProducts.fields.province': 'استان',
'myProducts.fields.selectProvince': 'انتخاب استان',
'myProducts.fields.city': 'شهر',
@@ -705,6 +712,7 @@ const fa: Record<MessageKey, string> = {
'login.error.sendCode': 'ارسال کد تأیید ممکن نشد.',
'login.error.cellEnglishDigits': 'خواهشمندیم از زبان انگلیسی برای شماره همراه استفاده کنید',
'login.error.smsProvider': 'سرویس پیامک موقتاً در دسترس نیست. لطفاً بعداً دوباره تلاش کنید.',
'login.error.invalidCredentials': 'شماره موبایل یا رمز عبور نادرست است.',
'signup.title': 'ایجاد حساب',
'signup.subtitle': 'به‌عنوان مشتری {domain} ثبت‌نام کنید',
@@ -757,7 +765,7 @@ const fa: Record<MessageKey, string> = {
'password.rule.length': 'حداقل ۸ کاراکتر',
'password.rule.upper': 'یک حرف بزرگ انگلیسی',
'password.rule.number': 'یک عدد',
'password.rule.special': 'یک کاراکتر ویژه',
'password.rule.match': 'یکسان بودن رمز عبور',
'otp.back': 'بازگشت به ورود',
'otp.title': 'ورود یک‌بارمصرف',