ui: avoid session review header clipping
Move the session review header outside the scroll viewport and drop strict containment so shadows can render without being cropped.
This commit is contained in:
@@ -3,11 +3,10 @@
|
|||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: 0px;
|
gap: 0px;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
overflow-y: auto;
|
|
||||||
scrollbar-width: none;
|
[data-slot="session-review-scroll"] {
|
||||||
contain: strict;
|
flex: 1 1 auto;
|
||||||
&::-webkit-scrollbar {
|
min-height: 0;
|
||||||
display: none;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.scroll-view__viewport {
|
.scroll-view__viewport {
|
||||||
@@ -21,8 +20,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
[data-slot="session-review-header"] {
|
[data-slot="session-review-header"] {
|
||||||
position: sticky;
|
|
||||||
top: 0;
|
|
||||||
z-index: 120;
|
z-index: 120;
|
||||||
background-color: var(--background-stronger);
|
background-color: var(--background-stronger);
|
||||||
height: 40px;
|
height: 40px;
|
||||||
@@ -63,7 +60,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
[data-component="sticky-accordion-header"] {
|
[data-component="sticky-accordion-header"] {
|
||||||
--sticky-accordion-top: 40px;
|
--sticky-accordion-top: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
[data-slot="session-review-accordion-item"][data-selected]
|
[data-slot="session-review-accordion-item"][data-selected]
|
||||||
|
|||||||
@@ -554,20 +554,7 @@ export const SessionReview = (props: SessionReviewProps) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ScrollView
|
<div data-component="session-review" class={props.class} classList={props.classList}>
|
||||||
data-component="session-review"
|
|
||||||
viewportRef={(el) => {
|
|
||||||
scroll = el
|
|
||||||
props.scrollRef?.(el)
|
|
||||||
}}
|
|
||||||
onScroll={props.onScroll as any}
|
|
||||||
onKeyDown={handleReviewKeyDown}
|
|
||||||
classList={{
|
|
||||||
...(props.classList ?? {}),
|
|
||||||
[props.classes?.root ?? ""]: !!props.classes?.root,
|
|
||||||
[props.class ?? ""]: !!props.class,
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
<div data-slot="session-review-header" class={props.classes?.header}>
|
<div data-slot="session-review-header" class={props.classes?.header}>
|
||||||
<div data-slot="session-review-title">{props.title ?? i18n.t("ui.sessionReview.title")}</div>
|
<div data-slot="session-review-title">{props.title ?? i18n.t("ui.sessionReview.title")}</div>
|
||||||
<div data-slot="session-review-actions">
|
<div data-slot="session-review-actions">
|
||||||
@@ -599,6 +586,19 @@ export const SessionReview = (props: SessionReviewProps) => {
|
|||||||
{props.actions}
|
{props.actions}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<ScrollView
|
||||||
|
data-slot="session-review-scroll"
|
||||||
|
viewportRef={(el) => {
|
||||||
|
scroll = el
|
||||||
|
props.scrollRef?.(el)
|
||||||
|
}}
|
||||||
|
onScroll={props.onScroll as any}
|
||||||
|
onKeyDown={handleReviewKeyDown}
|
||||||
|
classList={{
|
||||||
|
[props.classes?.root ?? ""]: !!props.classes?.root,
|
||||||
|
}}
|
||||||
|
>
|
||||||
<Show when={searchOpen()}>
|
<Show when={searchOpen()}>
|
||||||
<FileSearchBar
|
<FileSearchBar
|
||||||
pos={searchPos}
|
pos={searchPos}
|
||||||
@@ -618,6 +618,7 @@ export const SessionReview = (props: SessionReviewProps) => {
|
|||||||
onNext={() => navigateSearch(1)}
|
onNext={() => navigateSearch(1)}
|
||||||
/>
|
/>
|
||||||
</Show>
|
</Show>
|
||||||
|
|
||||||
<div data-slot="session-review-container" class={props.classes?.container}>
|
<div data-slot="session-review-container" class={props.classes?.container}>
|
||||||
<Show when={hasDiffs()} fallback={props.empty}>
|
<Show when={hasDiffs()} fallback={props.empty}>
|
||||||
<Accordion multiple value={open()} onChange={handleChange}>
|
<Accordion multiple value={open()} onChange={handleChange}>
|
||||||
@@ -646,7 +647,8 @@ export const SessionReview = (props: SessionReviewProps) => {
|
|||||||
return changedLines() > MAX_DIFF_CHANGED_LINES
|
return changedLines() > MAX_DIFF_CHANGED_LINES
|
||||||
})
|
})
|
||||||
|
|
||||||
const isAdded = () => item().status === "added" || (beforeText().length === 0 && afterText().length > 0)
|
const isAdded = () =>
|
||||||
|
item().status === "added" || (beforeText().length === 0 && afterText().length > 0)
|
||||||
const isDeleted = () =>
|
const isDeleted = () =>
|
||||||
item().status === "deleted" || (afterText().length === 0 && beforeText().length > 0)
|
item().status === "deleted" || (afterText().length === 0 && beforeText().length > 0)
|
||||||
|
|
||||||
@@ -895,5 +897,6 @@ export const SessionReview = (props: SessionReviewProps) => {
|
|||||||
</Show>
|
</Show>
|
||||||
</div>
|
</div>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user