1. 14 Sep, 2026 1 commit
  2. 13 Sep, 2026 1 commit
    • Phạm Quang Bảo's avatar
      refactor: simplify error handling and add category tree and post stats endpoints · 655ba51d
      Phạm Quang Bảo authored
      - Remove unused admin auth imports and handleUnAuthorizationError function
      - Simplify expired token error handling to rely on interceptor
      - Update permission denied error redirect to check admin path
      - Refactor custom-client to use async/await pattern and remove cancel token logic
      - Add getApiV10CategoryTree endpoint with infinite and standard query hooks
      - Add getApiV10PostStats endpoint with infinite and standard query hooks
      655ba51d
  3. 10 Sep, 2026 2 commits
  4. 09 Sep, 2026 2 commits
  5. 08 Sep, 2026 3 commits
  6. 07 Sep, 2026 1 commit
  7. 06 Sep, 2026 5 commits
    • Phạm Quang Bảo's avatar
    • Phạm Quang Bảo's avatar
      feat: replace ImageNext with native Next.js Image component and update UI styling · 54b553bc
      Phạm Quang Bảo authored
      - Replace custom ImageNext component with next/image across all home page components
      - Add img.youtube.com and news.vccihcm.vn to Next.js image remote patterns
      - Implement onError fallback handlers for Image components
      - Update border-radius values from 18-28px to consistent 14-16px across components
      - Remove unused CardNews and CardEvent components
      - Replace "Xem tất cả" text links with ChevronRight icons
      - Adjust spacing and alignment in section headers (items-start →
      54b553bc
    • Phạm Quang Bảo's avatar
      revert: remove custom SEO image optimization endpoint and sharp dependency · 290840a0
      Phạm Quang Bảo authored
      - Remove sharp@0.34.5 dependency and related lock file entries
      - Delete /api/seo-image endpoint for server-side image processing
      - Replace toSeoImageUrl with toAbsoluteSeoImageUrl for direct absolute URL resolution
      - Remove host validation and fallback logic from SEO image handling
      - Simplify buildDynamicPostHref to only normalize path without query parameters
      - Remove id and categoryId query parameters from article URLs in
      290840a0
    • Phạm Quang Bảo's avatar
      feat: add custom SEO image optimization endpoint with sharp · 1b566648
      Phạm Quang Bảo authored
      - Add sharp@0.34.5 dependency for server-side image processing
      - Create /api/seo-image endpoint to resize og:images to 1200x630 JPEG
      - Replace toOptimizedSeoImageUrl with toSeoImageUrl routing through custom endpoint
      - Implement host validation to prevent open proxy abuse (allow vcci-hcm.org.vn, vccihcm.vn)
      - Add automatic fallback to /thumbnail.png when source image fails
      - Set aggressive caching headers (max-age=86400, s-maxage=2592000)
      - Support both absolute
      1b566648
    • Phạm Quang Bảo's avatar
      refactor: replace getRandomFallbackImage with getFallbackImage and reduce ad counts · c297344d
      Phạm Quang Bảo authored
      - Replace getRandomFallbackImage() with getFallbackImage(index) for deterministic fallback images
      - Reduce advertisement count from 3 to 2 in News section
      - Reduce sidebar advertisements from 5 to 3 in ArticleDetailPage
      - Add image validation and optimization for SEO metadata
      - Implement toOptimizedSeoImageUrl() to serve optimized images via Next.js image optimizer
      - Add isRemoteImageValid() to verify remote image
      c297344d
  8. 04 Sep, 2026 13 commits
  9. 28 Aug, 2026 8 commits
  10. 25 Aug, 2026 4 commits