Skip to content

refactor: remove component barrels#506

Merged
Shramkoweb merged 1 commit into
mainfrom
refactor/remove-component-barrels
Jul 20, 2026
Merged

refactor: remove component barrels#506
Shramkoweb merged 1 commit into
mainfrom
refactor/remove-component-barrels

Conversation

@Shramkoweb

@Shramkoweb Shramkoweb commented Jul 20, 2026

Copy link
Copy Markdown
Owner

Summary by CodeRabbit

  • New Features
    • Added blog post previews with view counts and loading states.
    • Added article search, category navigation, no-results messaging, and collapsible tables of contents.
    • Added floating reactions with animated counters and optimistic updates.
    • Added theme switching, refreshed site navigation, bookmark/resource cards, LinkedIn feedback, tags, and view tracking.
  • Bug Fixes
    • Improved accessibility for navigation, theme controls, and interactive content.
  • Tests
    • Added coverage for search, categories, previews, themes, view tracking, tags, and empty states.

@Shramkoweb Shramkoweb self-assigned this Jul 20, 2026
@vercel

vercel Bot commented Jul 20, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
portfolio Error Error Jul 20, 2026 2:46am

@coderabbitai

coderabbitai Bot commented Jul 20, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: c8fd397b-ce5e-48af-b46b-f907ab0b004f

📥 Commits

Reviewing files that changed from the base of the PR and between 0ec3426 and f71aed2.

📒 Files selected for processing (58)
  • .oxlintrc.json
  • components/article-dates.tsx
  • components/article-dates/index.ts
  • components/article-meta.tsx
  • components/article-meta/index.ts
  • components/blog-post-preview.test.tsx
  • components/blog-post-preview.tsx
  • components/blog-post-preview/index.ts
  • components/blog-post-square-preview.tsx
  • components/blog-post-square-preview/index.ts
  • components/bookmark-section.tsx
  • components/bookmark-section/index.ts
  • components/categories.test.tsx
  • components/categories.tsx
  • components/categories/index.ts
  • components/dashboard-card/index.ts
  • components/floating-reactions.tsx
  • components/floating-reactions/index.ts
  • components/footer-link.tsx
  • components/footer-link/index.ts
  • components/footer/index.ts
  • components/header-link.tsx
  • components/header-link/index.ts
  • components/header.tsx
  • components/header/index.ts
  • components/layout.tsx
  • components/layout/index.ts
  • components/linkedin-feedback.constants.ts
  • components/linkedin-feedback.tsx
  • components/linkedin-feedback/index.ts
  • components/mdx-components/mdx-components.tsx
  • components/mobile-menu/index.ts
  • components/no-results.test.tsx
  • components/no-results.tsx
  • components/no-results/index.ts
  • components/resource-card.tsx
  • components/resource-card/index.ts
  • components/search-input.test.tsx
  • components/search-input.tsx
  • components/search-input/index.ts
  • components/share-button/index.ts
  • components/table-of-content.tsx
  • components/table-of-content/index.ts
  • components/tag.test.tsx
  • components/tag.tsx
  • components/tag/index.ts
  • components/theme-changer.test.tsx
  • components/theme-changer.tsx
  • components/theme-changer/index.ts
  • components/view-counter.test.tsx
  • components/view-counter.tsx
  • components/view-counter/index.ts
  • components/year-separator.tsx
  • components/year-separator/index.ts
  • lib/index.ts
  • pages/about.tsx
  • pages/blog/[slug].tsx
  • pages/snippets/[slug].tsx

📝 Walkthrough

Walkthrough

The change adds multiple UI components and behavioral tests, introduces SWR-backed view and reaction interactions, adds theme switching, and replaces selected barrel exports and imports with direct module paths enforced by linter rules.

Changes

Component modernization

Layer / File(s) Summary
Direct module boundaries and import wiring
.oxlintrc.json, components/*/index.ts, components/layout.tsx, pages/about.tsx, pages/blog/[slug].tsx, pages/snippets/[slug].tsx, components/article-*.tsx, components/year-separator.tsx
Barrel-file restrictions and restricted component imports are added; affected re-exports are removed and consumers use concrete module paths. Several prop and React imports are converted to interfaces or type-only imports.
Content and navigation components
components/blog-post-*.tsx, components/bookmark-section.tsx, components/categories*, components/footer-link.tsx, components/header*.tsx, components/linkedin-feedback.tsx, components/no-results*, components/resource-card.tsx, components/search-input*, components/table-of-content.tsx, components/tag*
New components render blog previews, navigation, categories, resources, feedback, empty states, search input, and collapsible table-of-content links, with focused rendering and interaction tests.
Interactive data and theme flows
components/floating-reactions.tsx, components/view-counter*, components/theme-changer*
Reaction counts use optimistic SWR updates and POST persistence; view registration uses deferred scheduling and cache mutation; theme switching handles client hydration and accessible toggle state. Tests cover these flows, retries, scheduling, and SSR output.

Estimated code review effort: 4 (Complex) | ~45 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Visitor
  participant FloatingReactions
  participant SWRCache
  participant ReactionsAPI
  Visitor->>FloatingReactions: Click reaction
  FloatingReactions->>SWRCache: Optimistically increment count
  FloatingReactions->>ReactionsAPI: POST reaction type
  ReactionsAPI-->>FloatingReactions: Return updated counts
  FloatingReactions->>SWRCache: Store server response
Loading
sequenceDiagram
  participant BlogPost
  participant ViewCounter
  participant SWR
  participant ViewsAPI
  BlogPost->>ViewCounter: Render with slug
  ViewCounter->>SWR: Fetch view total
  SWR->>ViewsAPI: GET /api/views/{slug}
  ViewsAPI-->>SWR: Return total
  ViewCounter->>ViewsAPI: Deferred POST registration
  ViewsAPI-->>ViewCounter: Return updated total
  ViewCounter->>SWR: Mutate cached total
Loading

Possibly related PRs

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch refactor/remove-component-barrels

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Shramkoweb
Shramkoweb merged commit 4f22ad3 into main Jul 20, 2026
10 of 12 checks passed
@Shramkoweb
Shramkoweb deleted the refactor/remove-component-barrels branch July 20, 2026 02:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant