feat(dashboard): "My Renders" page for users

- /dashboard/renders: user's own render jobs (live status + progress bar + cancel)
  and finished exports (thumbnail + size/duration + download); bilingual fa/en
- server lib my-renders.ts (user-scoped /v1/renders + /v1/exports via session JWT)
- user action routes: POST /api/renders/[id]/cancel, GET /api/exports/[id]/download
  (presigned URL)
- dashboard sidebar: "رندرهای من / My Renders" nav item

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
soroush.asadi
2026-06-03 17:22:38 +03:30
parent b270ef438d
commit 1cd1e504d9
8 changed files with 285 additions and 2 deletions
+15 -1
View File
@@ -663,7 +663,8 @@
"templates": "Templates",
"upgrade": "Upgrade",
"settings": "Settings",
"navLabel": "Dashboard"
"navLabel": "Dashboard",
"myRenders": "My Renders"
},
"componentsDashboardDashboardTopBar": {
"searchPlaceholder": "Search projects..."
@@ -1226,6 +1227,19 @@
"savedAsBlog": "Saved as blog post",
"saveError": "Could not save post",
"mustConfigure": "Configure and enable OpenAI above before generating."
},
"componentsDashboardMyRenders": {
"title": "My Renders",
"subtitle": "Status of your renders and ready-to-download videos.",
"processing": "Processing",
"ready": "Ready to download",
"empty": "No renders yet.",
"emptyReady": "No ready videos.",
"cancel": "Cancel",
"download": "Download",
"confirm": "Cancel this render?",
"failed": "Failed",
"refresh": "Refresh"
}
}
}