feat: TASK-120 - add quick share dosage and product info button to ProductPage

This commit is contained in:
parsa aghaei 2026-07-26 16:15:44 +03:30
parent 9236a2b1ab
commit 167983bbbb
3 changed files with 39 additions and 10 deletions

View File

@ -256,7 +256,7 @@
"title": "افزودن بنر و فیلتر سریع محصولات بدون قند و فاقد گلوتن در کاتالوگ و دانشنامه علمی برای پت‌های دارای حساسیت",
"priority": "MEDIUM",
"assigned_role": "05_dev_frontend",
"status": "pending",
"status": "completed",
"max_file_count": 3,
"estimated_minutes": 15,
"dependency_task_ids": ["TASK-118"],
@ -264,5 +264,19 @@
"امکان فیلتر سریع محصولات فاقد آلرژن و مناسب رژیم‌های حساس پزشکی",
"نمایش نشان‌های استاندارد سلامت در کارت‌های محصولات کاتالوگ"
]
},
{
"id": "TASK-120",
"title": "افزودن قابلیت به اشتراک‌گذاری سریع دوزها و مشخصات دارویی مکمل‌ها در پیام‌رسان‌ها در ProductPage",
"priority": "LOW",
"assigned_role": "05_dev_frontend",
"status": "pending",
"max_file_count": 3,
"estimated_minutes": 15,
"dependency_task_ids": ["TASK-119"],
"acceptance_criteria": [
"افزودن دکمه اشتراک‌گذاری سریع مشخصات دارویی و لینک محصول برای دامپزشک یا پت‌دار",
"ارتقای تجربه کاربری اطلاع‌رسانی سریع نسخه و دوز"
]
}
]

View File

@ -5,7 +5,7 @@
"checkpoint": {
"stage": "TASK_EXECUTION",
"active_agent": "05_dev_frontend",
"current_ticket_id": "TASK-119",
"current_ticket_id": "TASK-120",
"sub_step_index": 10,
"total_sub_steps": 10
},

View File

@ -29,7 +29,8 @@ import {
Users,
ShoppingBag,
Thermometer,
AlertTriangle
AlertTriangle,
Share2
} from "lucide-react";
const ICON_MAP: Record<string, any> = {
@ -193,6 +194,19 @@ export default function ProductPage({ productSlug }: { productSlug: string }) {
<span className="text-canina-blue font-black">{product.nameFa || product.name}</span>
</div>
<div className="flex items-center gap-2">
<button
onClick={() => {
if (navigator.clipboard) {
navigator.clipboard.writeText(window.location.href);
toast.success("لینک مشخصات و دوز دارویی محصول کپی شد");
}
}}
className="px-3.5 py-1.5 bg-canina-blue/5 border border-canina-blue/20 rounded-lg text-canina-blue shadow-xs flex items-center gap-1.5 font-bold text-xs hover:bg-canina-blue hover:text-white transition-all whitespace-nowrap"
>
<Share2 className="w-3.5 h-3.5" />
<span>اشتراکگذاری دوز</span>
</button>
<button
onClick={() => router.back()}
className="px-3.5 py-1.5 bg-white border border-medical-gray-200 rounded-lg text-medical-gray-600 shadow-xs flex items-center gap-1.5 font-bold text-xs hover:border-canina-blue hover:text-canina-blue transition-all whitespace-nowrap"
@ -201,6 +215,7 @@ export default function ProductPage({ productSlug }: { productSlug: string }) {
<span>بازگشت</span>
</button>
</div>
</div>
{/* Global Single Grid Layout - Aligns Sticky Buy Box at the Top */}
<div className="grid grid-cols-1 lg:grid-cols-12 gap-12 items-start w-full">