mirror of
https://github.com/anomalyco/opencode.git
synced 2026-07-21 18:26:09 +00:00
+22






![opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>](/assets/img/avatar_default.png)

![opencode-agent[bot]](/assets/img/avatar_default.png)
opencode-agent[bot]
GitHub
opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
Aiden Cline
usrnk1
Aarav Sareen
Luke Parker
Brendan Allan
Kit Langton
James Long
Adam
opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com>
Jay
Simon Klee
Jay
Jack
David Hill
Brendan Allan
opencode
Aiden Cline
James Long
Dustin Deus
冯基魁
Frank
Aiden Cline
Victor Navarro
Dax Raad
Dax
Nabs
Vladimir Glafirov
AidenGeunGeun
Mark
634386fe0f
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: usrnk1 <7547651+usrnk1@users.noreply.github.com> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: Brendan Allan <git@brendonovich.dev> Co-authored-by: Kit Langton <kit.langton@gmail.com> Co-authored-by: James Long <longster@gmail.com> Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Simon Klee <hello@simonklee.dk> Co-authored-by: Jay <air@live.ca> Co-authored-by: Jack <jack@anoma.ly> Co-authored-by: David Hill <1879069+iamdavidhill@users.noreply.github.com> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: opencode <opencode@sst.dev> Co-authored-by: Aiden Cline <aidenpcline@gmail.com> Co-authored-by: James Long <jlongster@users.noreply.github.com> Co-authored-by: Dustin Deus <deusdustin@gmail.com> Co-authored-by: 冯基魁 <56265583+fengjikui@users.noreply.github.com> Co-authored-by: Frank <frank@anoma.ly> Co-authored-by: Aiden Cline <rekram1-node@users.noreply.github.com> Co-authored-by: Victor Navarro <vn4varro@gmail.com> Co-authored-by: Dax Raad <d@ironbay.co> Co-authored-by: Dax <mail@thdxr.com> Co-authored-by: Nabs <nabil@instafork.com> Co-authored-by: Vladimir Glafirov <vglafirov@gitlab.com> Co-authored-by: AidenGeunGeun <eastlandwyvern@gmail.com> Co-authored-by: Mark <geraint0923@users.noreply.github.com>
109 lines
4.6 KiB
Diff
109 lines
4.6 KiB
Diff
diff --git a/dist/cjs/index.cjs b/dist/cjs/index.cjs
|
|
index 52ae6ca12f8d1c650ee7f1bd55573ee7d4f8b65f..830f646f5bd80f4e00f442291ad6e4c6c508630d 100644
|
|
--- a/dist/cjs/index.cjs
|
|
+++ b/dist/cjs/index.cjs
|
|
@@ -716,17 +716,20 @@ class Virtualizer {
|
|
this.getMeasurements(),
|
|
this.getSize(),
|
|
this.getScrollOffset(),
|
|
- this.options.lanes
|
|
+ this.options.lanes,
|
|
+ this.options.paddingEnd
|
|
],
|
|
- (measurements, outerSize, scrollOffset, lanes) => {
|
|
+ (measurements, outerSize, scrollOffset, lanes, _paddingEnd) => {
|
|
if (measurements.length === 0 || outerSize === 0) {
|
|
this.range = null;
|
|
return null;
|
|
}
|
|
+ const maxScrollOffset = Math.max(this.options.scrollMargin + this.getTotalSize() - outerSize, 0);
|
|
+ const effectiveScrollOffset = Math.min(Math.max(scrollOffset, 0), maxScrollOffset);
|
|
this.range = calculateRangeImpl(
|
|
measurements,
|
|
outerSize,
|
|
- scrollOffset,
|
|
+ effectiveScrollOffset,
|
|
lanes,
|
|
// Pass the typed array so binary search + forward-walk can read
|
|
// start/end directly from Float64Array, skipping the Proxy traps.
|
|
diff --git a/dist/cjs/index.d.cts b/dist/cjs/index.d.cts
|
|
index c61ee17752565253f795c7fc7d57e86237ecbb52..430c622a18c69407df9f1ca82ee9440e9be287b7 100644
|
|
--- a/dist/cjs/index.d.cts
|
|
+++ b/dist/cjs/index.d.cts
|
|
@@ -144,7 +144,7 @@ export declare class Virtualizer<TScrollElement extends Element | Window, TItemE
|
|
startIndex: number;
|
|
endIndex: number;
|
|
} | null;
|
|
- updateDeps(newDeps: [VirtualItem[], number, number, number]): void;
|
|
+ updateDeps(newDeps: [VirtualItem[], number, number, number, number]): void;
|
|
};
|
|
getVirtualIndexes: {
|
|
(): number[];
|
|
diff --git a/dist/esm/index.d.ts b/dist/esm/index.d.ts
|
|
index b03abab604eb6578f6f56ff92c489259cfaf8f19..940310f9215ba5bf666c5b71e92dddbbbc85635d 100644
|
|
--- a/dist/esm/index.d.ts
|
|
+++ b/dist/esm/index.d.ts
|
|
@@ -144,7 +144,7 @@ export declare class Virtualizer<TScrollElement extends Element | Window, TItemE
|
|
startIndex: number;
|
|
endIndex: number;
|
|
} | null;
|
|
- updateDeps(newDeps: [VirtualItem[], number, number, number]): void;
|
|
+ updateDeps(newDeps: [VirtualItem[], number, number, number, number]): void;
|
|
};
|
|
getVirtualIndexes: {
|
|
(): number[];
|
|
diff --git a/dist/esm/index.js b/dist/esm/index.js
|
|
index 3032c0ca457582be3f47923cba1f7d92c848745c..6e52124048fb3bc7b7ee37e763354b33593a6285 100644
|
|
--- a/dist/esm/index.js
|
|
+++ b/dist/esm/index.js
|
|
@@ -714,17 +714,20 @@ class Virtualizer {
|
|
this.getMeasurements(),
|
|
this.getSize(),
|
|
this.getScrollOffset(),
|
|
- this.options.lanes
|
|
+ this.options.lanes,
|
|
+ this.options.paddingEnd
|
|
],
|
|
- (measurements, outerSize, scrollOffset, lanes) => {
|
|
+ (measurements, outerSize, scrollOffset, lanes, _paddingEnd) => {
|
|
if (measurements.length === 0 || outerSize === 0) {
|
|
this.range = null;
|
|
return null;
|
|
}
|
|
+ const maxScrollOffset = Math.max(this.options.scrollMargin + this.getTotalSize() - outerSize, 0);
|
|
+ const effectiveScrollOffset = Math.min(Math.max(scrollOffset, 0), maxScrollOffset);
|
|
this.range = calculateRangeImpl(
|
|
measurements,
|
|
outerSize,
|
|
- scrollOffset,
|
|
+ effectiveScrollOffset,
|
|
lanes,
|
|
// Pass the typed array so binary search + forward-walk can read
|
|
// start/end directly from Float64Array, skipping the Proxy traps.
|
|
diff --git a/src/index.ts b/src/index.ts
|
|
index 7ad79aacd591c3a4f7855c91b2727a59a9579bca..201406779ee85d2f2e5b01a8ea284aa9a5f694e2 100644
|
|
--- a/src/index.ts
|
|
+++ b/src/index.ts
|
|
@@ -1367,16 +1367,19 @@ export class Virtualizer<
|
|
this.getSize(),
|
|
this.getScrollOffset(),
|
|
this.options.lanes,
|
|
+ this.options.paddingEnd,
|
|
],
|
|
- (measurements, outerSize, scrollOffset, lanes) => {
|
|
+ (measurements, outerSize, scrollOffset, lanes, _paddingEnd) => {
|
|
if (measurements.length === 0 || outerSize === 0) {
|
|
this.range = null
|
|
return null
|
|
}
|
|
+ const maxScrollOffset = Math.max(this.options.scrollMargin + this.getTotalSize() - outerSize, 0)
|
|
+ const effectiveScrollOffset = Math.min(Math.max(scrollOffset, 0), maxScrollOffset)
|
|
this.range = calculateRangeImpl(
|
|
measurements,
|
|
outerSize,
|
|
- scrollOffset,
|
|
+ effectiveScrollOffset,
|
|
lanes,
|
|
// Pass the typed array so binary search + forward-walk can read
|
|
// start/end directly from Float64Array, skipping the Proxy traps.
|