Skip to content

LFE-9278-fix-ui-bits-tabber#79

Merged
tomaszantas merged 5 commits intoredesign/layoutfrom
LFE-9278-fix-ui-bits-tabber
Apr 16, 2026
Merged

LFE-9278-fix-ui-bits-tabber#79
tomaszantas merged 5 commits intoredesign/layoutfrom
LFE-9278-fix-ui-bits-tabber

Conversation

@felixkrrr
Copy link
Copy Markdown
Collaborator

@felixkrrr felixkrrr commented Apr 15, 2026

  • changing how UI bits tab on homepage works
  • changing a bit how logos are displayed

Note

Medium Risk
Medium risk because it changes homepage tab navigation state (removing URL query-param syncing and hover preview) and alters auto-advance timing/behavior, which may affect deep-linking and interaction expectations.

Overview
Refactors the homepage FeatureTabs to manage the active tab purely in component state (no tab query param), removes hover-based preview/pause behavior, shortens default auto-advance to 5s, and replaces the text tab strip with a title bar + dot indicators.

Updates EnterpriseLogoGrid to support hiding specific logos, filters hidden entries, tweaks grid layout/visibility rules, increases logo height, and changes the story tooltip copy to "Read story". Also removes the now-unused TabButton component/export and adjusts feature tab copy in feature-tabs/data.ts.

Reviewed by Cursor Bugbot for commit 012e5c8. Bugbot is set up for automated code reviews on this repo. Configure here.

@vercel
Copy link
Copy Markdown

vercel bot commented Apr 15, 2026

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

Project Deployment Actions Updated (UTC)
langfuse-docs Ready Ready Preview, Comment Apr 16, 2026 2:18am

Request Review

@github-actions
Copy link
Copy Markdown

@claude review

Copy link
Copy Markdown

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Autofix Details

Bugbot Autofix prepared a fix for the issue found in the latest run.

  • ✅ Fixed: Dead previewTab and isHovered state never dispatched
    • Removed all dead code: previewTab and isHovered state fields, SET_PREVIEW_TAB and SET_HOVERED action types/reducer cases, isHoveredRef and its sync effect, and all references to these in startAutoAdvance, updateProgress, the auto-advance effect, and activeFeature calculation.

Create PR

Or push these changes by commenting:

@cursor push 4138021e8d
Preview (4138021e8d)
diff --git a/components/home/feature-tabs/FeatureTabs.tsx b/components/home/feature-tabs/FeatureTabs.tsx
--- a/components/home/feature-tabs/FeatureTabs.tsx
+++ b/components/home/feature-tabs/FeatureTabs.tsx
@@ -29,22 +29,18 @@
 
 // State management with useReducer
 type TabState = {
-  previewTab: string | null;
   focusedIndex: number;
   isAutoAdvancePaused: boolean;
   autoAdvanceProgress: number;
   isInViewport: boolean;
-  isHovered: boolean;
 };
 
 type TabAction =
-  | { type: "SET_PREVIEW_TAB"; payload: string | null }
   | { type: "SET_FOCUSED_INDEX"; payload: number }
   | { type: "PAUSE_AUTO_ADVANCE" }
   | { type: "RESUME_AUTO_ADVANCE" }
   | { type: "SET_AUTO_ADVANCE_PROGRESS"; payload: number }
   | { type: "SET_IN_VIEWPORT"; payload: boolean }
-  | { type: "SET_HOVERED"; payload: boolean }
   | { type: "RESET_PROGRESS" };
 
 function assertNever(action: never): never {
@@ -53,8 +49,6 @@
 
 const tabStateReducer = (state: TabState, action: TabAction): TabState => {
   switch (action.type) {
-    case "SET_PREVIEW_TAB":
-      return { ...state, previewTab: action.payload };
     case "SET_FOCUSED_INDEX":
       return { ...state, focusedIndex: action.payload };
     case "PAUSE_AUTO_ADVANCE":
@@ -65,8 +59,6 @@
       return { ...state, autoAdvanceProgress: action.payload };
     case "SET_IN_VIEWPORT":
       return { ...state, isInViewport: action.payload };
-    case "SET_HOVERED":
-      return { ...state, isHovered: action.payload };
     case "RESET_PROGRESS":
       return { ...state, autoAdvanceProgress: 0 };
     default:
@@ -75,12 +67,10 @@
 };
 
 const initialTabState: TabState = {
-  previewTab: null,
   focusedIndex: 0,
   isAutoAdvancePaused: false,
   autoAdvanceProgress: 0,
   isInViewport: false,
-  isHovered: false,
 };
 
 const DEFAULT_AUTO_ADVANCE: AutoAdvanceConfig = {
@@ -110,16 +100,11 @@
   const isMountedRef = useRef(true);
 
   const isAutoAdvancePausedRef = useRef(state.isAutoAdvancePaused);
-  const isHoveredRef = useRef(state.isHovered);
 
   useEffect(() => {
     isAutoAdvancePausedRef.current = state.isAutoAdvancePaused;
   }, [state.isAutoAdvancePaused]);
 
-  useEffect(() => {
-    isHoveredRef.current = state.isHovered;
-  }, [state.isHovered]);
-
   const setContainerNode = useCallback((node: HTMLDivElement | null) => {
     containerRef.current = node;
     setObserveRoot(node);
@@ -183,8 +168,7 @@
   const startAutoAdvance = useCallback(() => {
     if (
       !defaultAutoAdvance.enabled ||
-      isAutoAdvancePausedRef.current ||
-      isHoveredRef.current
+      isAutoAdvancePausedRef.current
     ) {
       return;
     }
@@ -196,7 +180,7 @@
     const intervalMs = defaultAutoAdvance.intervalMs;
 
     const updateProgress = () => {
-      if (isHoveredRef.current || isAutoAdvancePausedRef.current) {
+      if (isAutoAdvancePausedRef.current) {
         return;
       }
 
@@ -313,8 +297,7 @@
     if (
       defaultAutoAdvance.enabled &&
       !state.isAutoAdvancePaused &&
-      state.isInViewport &&
-      !state.isHovered
+      state.isInViewport
     ) {
       startAutoAdvance();
     } else {
@@ -328,7 +311,6 @@
     startAutoAdvance,
     state.isAutoAdvancePaused,
     state.isInViewport,
-    state.isHovered,
     clearAutoAdvanceTimer,
   ]);
 
@@ -341,8 +323,7 @@
   }, [clearAllTimers]);
 
   const activeFeature =
-    features.find((f) => f.id === (state.previewTab || activeTab)) ??
-    features[0];
+    features.find((f) => f.id === activeTab) ?? features[0];
 
   const activeIndex = features.findIndex((f) => f.id === activeTab);
   const n = features.length;

This Bugbot Autofix run was free. To enable autofix for future PRs, go to the Cursor dashboard.

Comment thread components/home/feature-tabs/FeatureTabs.tsx
Copy link
Copy Markdown

@tomaszantas tomaszantas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, I've cleaned up the hover state

Copy link
Copy Markdown

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 012e5c8. Configure here.

Comment thread components/home/feature-tabs/FeatureTabs.tsx
@tomaszantas tomaszantas merged commit b70f995 into redesign/layout Apr 16, 2026
5 of 8 checks passed
@tomaszantas tomaszantas deleted the LFE-9278-fix-ui-bits-tabber branch April 16, 2026 02:20
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.

2 participants