LFE-9278-fix-ui-bits-tabber#79
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
@claude review |
There was a problem hiding this comment.
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
previewTabandisHoveredstate 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.
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.
tomaszantas
left a comment
There was a problem hiding this comment.
Looks good, I've cleaned up the hover state
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ 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.


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
FeatureTabsto manage the active tab purely in component state (notabquery 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
EnterpriseLogoGridto 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-unusedTabButtoncomponent/export and adjusts feature tab copy infeature-tabs/data.ts.Reviewed by Cursor Bugbot for commit 012e5c8. Bugbot is set up for automated code reviews on this repo. Configure here.