Summary
Fixed 401 Unauthorized errors for blog and portfolio cover images by routing them through the image proxy.
Ensured all dynamic cover images from the external file service use the required authorization header via getProxyImageUrl.
Changes
Updated BlogCard.tsx to use getProxyImageUrl for rendering blog cover images in the public listing.
Updated BlogPreviewDialog.tsx (Admin) to use getProxyImageUrl for the blog preview modal.
Updated ImageUploader.tsx (Admin) to use getProxyImageUrl for previewing images during the upload process.
Updated src/app/admin/portfolio/page.tsx (Admin) to use getProxyImageUrl for the portfolio list view.
Verification
Verified that getProxyImageUrl correctly identifies URLs from the file service and prepends the proxy path.
Confirmed that CoverImageUpload.tsx already implemented this logic, and other components were updated for consistency.
Manual inspection of the code confirmed that all identified dynamic image usages now use the proxy helper.
