fix(app): keep tab progress visible on hover (#47835)

This commit is contained in:
opencode-agent[bot]
2026-09-07 22:23:02 +00:00
committed by GitHub
parent 567f8b9743
commit be41bc4e7d
3 changed files with 11 additions and 29 deletions
-9
View File
@@ -180,7 +180,6 @@ function HomeSessionLeadingController(props: {
server: HomeSessionsViewProps["server"]
isOpenTab: HomeSessionsViewProps["isOpenTab"]
record: HomeSessionRecord
revealProjectOnHover: boolean
}) {
return (
<HomeSessionStatusController
@@ -190,7 +189,6 @@ function HomeSessionLeadingController(props: {
render={(state) => (
<HomeSessionLeading
record={props.record}
revealProjectOnHover={props.revealProjectOnHover}
open={state.open()}
unread={state.unread()}
loading={state.loading()}
@@ -202,7 +200,6 @@ function HomeSessionLeadingController(props: {
function HomeSessionLeading(props: {
record: HomeSessionRecord
revealProjectOnHover: boolean
open: boolean
unread: boolean
loading: boolean
@@ -222,7 +219,6 @@ function HomeSessionLeading(props: {
<SessionTabAvatarView
project={props.record.project}
directory={props.record.session.location.directory}
revealProjectOnHover={props.revealProjectOnHover}
unread={props.unread}
loading={props.loading}
/>
@@ -395,7 +391,6 @@ function HomeSessionSearchResultRow(
`}
classList={{
"bg-v2-overlay-simple-overlay-hover": props.selected,
group: !!showProjectName(),
}}
onMouseEnter={() => props.onSearchHighlight(props.record)}
onMouseDown={(event) => {
@@ -412,7 +407,6 @@ function HomeSessionSearchResultRow(
server={props.server}
isOpenTab={props.isOpenTab}
record={props.record}
revealProjectOnHover={!!showProjectName()}
/>
<div data-slot="home-session-labels" class="flex min-w-0 flex-1 items-center gap-1.5">
<HomeSessionTitle title={title()} showProjectName={!!showProjectName()} search />
@@ -524,7 +518,6 @@ function HomeSessionRow(
data-project-name={!!showProjectName()}
data-session-id={props.record.session.id}
class="group/session relative flex h-10 min-w-0 items-center rounded-[6px] outline-none focus:outline-none focus-visible:outline-none"
classList={{ group: !!showProjectName() }}
onContextMenu={(event) => {
// While renaming, keep the native menu so paste and spelling work.
if (editor()) return
@@ -543,7 +536,6 @@ function HomeSessionRow(
server={props.server}
isOpenTab={props.isOpenTab}
record={props.record}
revealProjectOnHover={false}
/>
<div data-slot="home-session-labels" class="contents">
<InlineInput
@@ -656,7 +648,6 @@ function HomeSessionRow(
server={props.server}
isOpenTab={props.isOpenTab}
record={props.record}
revealProjectOnHover={!!showProjectName()}
/>
<div data-slot="home-session-labels" class="contents">
<HomeSessionTitle title={title()} showProjectName={!!showProjectName()} />
@@ -11,7 +11,6 @@ export function SessionTabAvatar(props: {
directory: string
sessionId: string
server: ServerConnection.Key
revealProjectOnHover?: boolean
}) {
const state = useSessionTabAvatarState(
() => props.server,
@@ -22,7 +21,6 @@ export function SessionTabAvatar(props: {
<SessionTabAvatarView
project={props.project}
directory={props.directory}
revealProjectOnHover={props.revealProjectOnHover}
unread={state.unread()}
loading={state.loading()}
/>
@@ -32,28 +30,22 @@ export function SessionTabAvatar(props: {
export function SessionTabAvatarView(props: {
project?: LocalProject
directory: string
revealProjectOnHover?: boolean
unread: boolean
loading: boolean
}) {
const projectAvatar = () => (
<ProjectAvatar
fallback={displayName(props.project ?? { worktree: props.directory })}
src={getProjectAvatarSource(props.project?.id, props.project?.icon)}
variant={getProjectAvatarVariant(props.project?.icon?.color)}
unread={props.unread}
/>
)
return (
<Show when={props.loading} fallback={projectAvatar()}>
<span class="relative block size-4 shrink-0">
<SessionProgressIndicatorV2
class={`absolute inset-0 ${props.revealProjectOnHover === false ? "" : "group-hover:invisible"}`}
<Show
when={props.loading}
fallback={
<ProjectAvatar
fallback={displayName(props.project ?? { worktree: props.directory })}
src={getProjectAvatarSource(props.project?.id, props.project?.icon)}
variant={getProjectAvatarVariant(props.project?.icon?.color)}
unread={props.unread}
/>
<Show when={props.revealProjectOnHover !== false}>
<span class="invisible absolute inset-0 group-hover:visible">{projectAvatar()}</span>
</Show>
</span>
}
>
<SessionProgressIndicatorV2 />
</Show>
)
}
@@ -503,7 +503,6 @@ export function Titlebar(props: {
directory={value().location.directory}
sessionId={value().id}
server={tab().server}
revealProjectOnHover={false}
/>
)}
</Show>