Skip to content

Commit 1fd0ca9

Browse files
committed
no shrink, reindent
1 parent 147f445 commit 1fd0ca9

2 files changed

Lines changed: 53 additions & 47 deletions

File tree

frontend/app/tab/vtab.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ export function VTab({
159159
onMouseEnter={() => onHoverChanged?.(true)}
160160
onMouseLeave={() => onHoverChanged?.(false)}
161161
className={cn(
162-
"group relative flex h-9 w-full cursor-pointer items-center pl-3 text-xs transition-colors select-none",
162+
"group relative flex h-9 w-full shrink-0 cursor-pointer items-center pl-3 text-xs transition-colors select-none",
163163
"whitespace-nowrap",
164164
active ? "text-primary" : isReordering ? "text-secondary" : "text-secondary hover:text-primary",
165165
isDragging && "opacity-50"

frontend/app/tab/vtabbar.tsx

Lines changed: 52 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ import { validateCssColor } from "@/util/color-validator";
99
import { cn, fireAndForget } from "@/util/util";
1010
import { useAtomValue } from "jotai";
1111
import { useCallback, useEffect, useRef, useState } from "react";
12-
import { VTab, VTabItem } from "./vtab";
1312
import { buildTabContextMenu } from "./tabcontextmenu";
13+
import { VTab, VTabItem } from "./vtab";
1414
import { VTabBarEnv } from "./vtabbarenv";
1515
export type { VTabItem } from "./vtab";
1616

@@ -195,52 +195,58 @@ export function VTabBar({ workspace, className }: VTabBarProps) {
195195
const isNextActive = nextTabId === activeTabId;
196196
const isNextHovered = nextTabId === hoveredTabId;
197197
return (
198-
<VTabWrapper
199-
key={`${tabId}:${hoverResetVersion}`}
200-
tabId={tabId}
201-
active={isActive}
202-
showDivider={!isActive && !isNextActive && !isHovered && !isNextHovered && !(isLast && isNewTabHovered)}
203-
isDragging={dragTabId === tabId}
204-
isReordering={dragTabId != null}
205-
hoverResetVersion={hoverResetVersion}
206-
index={index}
207-
onSelect={() => env.electron.setActiveTab(tabId)}
208-
onClose={() => fireAndForget(() => env.electron.closeTab(workspace.oid, tabId, false))}
209-
onRename={(newName) =>
210-
fireAndForget(() => env.rpc.UpdateTabNameCommand(TabRpcClient, tabId, newName))
211-
}
212-
onDragStart={(event) => {
213-
didResetHoverForDragRef.current = false;
214-
dragSourceRef.current = tabId;
215-
event.dataTransfer.effectAllowed = "move";
216-
event.dataTransfer.setData("text/plain", tabId);
217-
setDragTabId(tabId);
218-
setDropIndex(index);
219-
setDropLineTop(event.currentTarget.offsetTop);
220-
}}
221-
onDragOver={(event) => {
222-
event.preventDefault();
223-
const rect = event.currentTarget.getBoundingClientRect();
224-
const relativeY = event.clientY - rect.top;
225-
const midpoint = event.currentTarget.offsetHeight / 2;
226-
const insertBefore = relativeY < midpoint;
227-
setDropIndex(insertBefore ? index : index + 1);
228-
setDropLineTop(
229-
insertBefore
230-
? event.currentTarget.offsetTop
231-
: event.currentTarget.offsetTop + event.currentTarget.offsetHeight
232-
);
233-
}}
234-
onDrop={(event) => {
235-
event.preventDefault();
236-
if (dropIndex != null) {
237-
reorder(dropIndex);
198+
<VTabWrapper
199+
key={`${tabId}:${hoverResetVersion}`}
200+
tabId={tabId}
201+
active={isActive}
202+
showDivider={
203+
!isActive &&
204+
!isNextActive &&
205+
!isHovered &&
206+
!isNextHovered &&
207+
!(isLast && isNewTabHovered)
238208
}
239-
clearDragState();
240-
}}
241-
onDragEnd={clearDragState}
242-
onHoverChanged={(isHovered) => setHoveredTabId(isHovered ? tabId : null)}
243-
/>
209+
isDragging={dragTabId === tabId}
210+
isReordering={dragTabId != null}
211+
hoverResetVersion={hoverResetVersion}
212+
index={index}
213+
onSelect={() => env.electron.setActiveTab(tabId)}
214+
onClose={() => fireAndForget(() => env.electron.closeTab(workspace.oid, tabId, false))}
215+
onRename={(newName) =>
216+
fireAndForget(() => env.rpc.UpdateTabNameCommand(TabRpcClient, tabId, newName))
217+
}
218+
onDragStart={(event) => {
219+
didResetHoverForDragRef.current = false;
220+
dragSourceRef.current = tabId;
221+
event.dataTransfer.effectAllowed = "move";
222+
event.dataTransfer.setData("text/plain", tabId);
223+
setDragTabId(tabId);
224+
setDropIndex(index);
225+
setDropLineTop(event.currentTarget.offsetTop);
226+
}}
227+
onDragOver={(event) => {
228+
event.preventDefault();
229+
const rect = event.currentTarget.getBoundingClientRect();
230+
const relativeY = event.clientY - rect.top;
231+
const midpoint = event.currentTarget.offsetHeight / 2;
232+
const insertBefore = relativeY < midpoint;
233+
setDropIndex(insertBefore ? index : index + 1);
234+
setDropLineTop(
235+
insertBefore
236+
? event.currentTarget.offsetTop
237+
: event.currentTarget.offsetTop + event.currentTarget.offsetHeight
238+
);
239+
}}
240+
onDrop={(event) => {
241+
event.preventDefault();
242+
if (dropIndex != null) {
243+
reorder(dropIndex);
244+
}
245+
clearDragState();
246+
}}
247+
onDragEnd={clearDragState}
248+
onHoverChanged={(isHovered) => setHoveredTabId(isHovered ? tabId : null)}
249+
/>
244250
);
245251
})}
246252
<button

0 commit comments

Comments
 (0)