Fix shop UI RTL/layout consistency and tab reselect behavior
- Align shop header layout (logo, name, verification badge, share button) and RTL/LTR positioning across shop, listing, billboard, wallet, gift, and academy pages with the Android app's equivalent screens - Fix TabNavigation's tab-reselect scroll-to-top to only fire on the exact tab route, not any active sub-route - Add verification badge to shop owner name; add brand icon assets Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -51,16 +51,25 @@ export default function TabNavigation({ currentPage }: TabNavigationProps) {
|
||||
(currentPage.startsWith("/projects") ||
|
||||
currentPage === "/new-project")) ||
|
||||
(tab.href === "/academy" && currentPage.startsWith("/academy"));
|
||||
// isActive فقط برای رنگ/هایلایتِ آیکونه — شاملِ زیرصفحهها هم میشه (مثلاً
|
||||
// /settings/wallet). اگه کلیک روی خودِ همین isActive شرط بشه، وقتی از یه
|
||||
// زیرصفحهی تنظیمات روی آیکونِ تنظیمات بزنی، چون isActive از قبل true هست
|
||||
// preventDefault صدا زده میشه و Link اصلاً navigate نمیکنه — کاربر مجبور
|
||||
// میشد اول یه تبِ دیگه بزنه بعد دوباره تنظیمات، تا واقعاً برگرده به /settings.
|
||||
// اینترسپت (برای اسکرولبهبالا/رویدادِ تب) فقط وقتی درسته که دقیقاً همون
|
||||
// مسیرِ رَوتِ تب باشیم؛ وگرنه باید بذاریم Link عادی navigate کنه
|
||||
const isExactRoot = currentPage === tab.href;
|
||||
|
||||
return (
|
||||
<Link
|
||||
key={tab.href}
|
||||
href={tab.href}
|
||||
onClick={(e) => {
|
||||
// وقتی تبی که از قبل توش هستیم دوباره زده میشه، Next.js چون مسیر عوض
|
||||
// نمیشه هیچ اسکرول/رفرشی انجام نمیده — طبق درخواست کاربر، مثل اینستاگرام
|
||||
// باید صفحه بره بالا و (برای تبِ خانه) جدیدترین پستها هم لود بشن
|
||||
if (isActive) {
|
||||
// وقتی تبی که از قبل توش هستیم (دقیقاً همون صفحهی روتش) دوباره زده
|
||||
// میشه، Next.js چون مسیر عوض نمیشه هیچ اسکرول/رفرشی انجام نمیده —
|
||||
// طبق درخواست کاربر، مثل اینستاگرام باید صفحه بره بالا و (برای تبِ
|
||||
// خانه) جدیدترین پستها هم لود بشن
|
||||
if (isExactRoot) {
|
||||
e.preventDefault();
|
||||
window.dispatchEvent(
|
||||
new CustomEvent("app:tab-reselect", {
|
||||
|
||||
Reference in New Issue
Block a user