@sunsama/event-calendar 0.13.0 → 0.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,7 +7,7 @@ exports.default = useAutoScroll;
7
7
  var _reactNativeReanimated = require("react-native-reanimated");
8
8
  const AUTO_SCROLL_TOP_THRESHOLD = 80;
9
9
  const AUTO_SCROLL_BOTTOM_THRESHOLD = 150;
10
- const AUTO_SCROLL_MAX_SPEED = 8;
10
+ const AUTO_SCROLL_MAX_SPEED_PPS = 480;
11
11
  function useAutoScroll({
12
12
  scrollRef,
13
13
  scrollY,
@@ -21,8 +21,9 @@ function useAutoScroll({
21
21
  heightValue,
22
22
  invertHeight
23
23
  }) {
24
- (0, _reactNativeReanimated.useFrameCallback)(() => {
24
+ (0, _reactNativeReanimated.useFrameCallback)(frameInfo => {
25
25
  if (!isActive.value) return;
26
+ const dt = (frameInfo.timeSincePreviousFrame ?? 16) / 1000;
26
27
  const viewportTop = scrollY.value;
27
28
  const viewportBottom = scrollY.value + scrollViewHeight.value;
28
29
  let scrollDelta = 0;
@@ -30,10 +31,10 @@ function useAutoScroll({
30
31
  const distFromBottom = viewportBottom - bottomEdgeY.value;
31
32
  if (distFromTop < AUTO_SCROLL_TOP_THRESHOLD && distFromTop <= distFromBottom) {
32
33
  const ratio = Math.max(0, 1 - distFromTop / AUTO_SCROLL_TOP_THRESHOLD);
33
- scrollDelta = -ratio * AUTO_SCROLL_MAX_SPEED;
34
+ scrollDelta = -ratio * AUTO_SCROLL_MAX_SPEED_PPS * dt;
34
35
  } else if (distFromBottom < AUTO_SCROLL_BOTTOM_THRESHOLD) {
35
36
  const ratio = Math.max(0, 1 - distFromBottom / AUTO_SCROLL_BOTTOM_THRESHOLD);
36
- scrollDelta = ratio * AUTO_SCROLL_MAX_SPEED;
37
+ scrollDelta = ratio * AUTO_SCROLL_MAX_SPEED_PPS * dt;
37
38
  }
38
39
  if (scrollDelta === 0) return;
39
40
  const maxScrollY = Math.max(0, maximumHour.value - scrollViewHeight.value);
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeReanimated","require","AUTO_SCROLL_TOP_THRESHOLD","AUTO_SCROLL_BOTTOM_THRESHOLD","AUTO_SCROLL_MAX_SPEED","useAutoScroll","scrollRef","scrollY","scrollViewHeight","maximumHour","topEdgeY","bottomEdgeY","isActive","autoScrollOffset","positionY","heightValue","invertHeight","useFrameCallback","value","viewportTop","viewportBottom","scrollDelta","distFromTop","distFromBottom","ratio","Math","max","maxScrollY","newScrollY","min","actualDelta","abs","scrollTo"],"sourceRoot":"../../../src","sources":["hooks/use-auto-scroll.ts"],"mappings":";;;;;;AAAA,IAAAA,sBAAA,GAAAC,OAAA;AAOA,MAAMC,yBAAyB,GAAG,EAAE;AACpC,MAAMC,4BAA4B,GAAG,GAAG;AACxC,MAAMC,qBAAqB,GAAG,CAAC;AAgBhB,SAASC,aAAaA,CAAC;EACpCC,SAAS;EACTC,OAAO;EACPC,gBAAgB;EAChBC,WAAW;EACXC,QAAQ;EACRC,WAAW;EACXC,QAAQ;EACRC,gBAAgB;EAChBC,SAAS;EACTC,WAAW;EACXC;AACgB,CAAC,EAAE;EACnB,IAAAC,uCAAgB,EAAC,MAAM;IACrB,IAAI,CAACL,QAAQ,CAACM,KAAK,EAAE;IAErB,MAAMC,WAAW,GAAGZ,OAAO,CAACW,KAAK;IACjC,MAAME,cAAc,GAAGb,OAAO,CAACW,KAAK,GAAGV,gBAAgB,CAACU,KAAK;IAE7D,IAAIG,WAAW,GAAG,CAAC;IAEnB,MAAMC,WAAW,GAAGZ,QAAQ,CAACQ,KAAK,GAAGC,WAAW;IAChD,MAAMI,cAAc,GAAGH,cAAc,GAAGT,WAAW,CAACO,KAAK;IAEzD,IACEI,WAAW,GAAGpB,yBAAyB,IACvCoB,WAAW,IAAIC,cAAc,EAC7B;MACA,MAAMC,KAAK,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAGJ,WAAW,GAAGpB,yBAAyB,CAAC;MACtEmB,WAAW,GAAG,CAACG,KAAK,GAAGpB,qBAAqB;IAC9C,CAAC,MAAM,IAAImB,cAAc,GAAGpB,4BAA4B,EAAE;MACxD,MAAMqB,KAAK,GAAGC,IAAI,CAACC,GAAG,CACpB,CAAC,EACD,CAAC,GAAGH,cAAc,GAAGpB,4BACvB,CAAC;MACDkB,WAAW,GAAGG,KAAK,GAAGpB,qBAAqB;IAC7C;IAEA,IAAIiB,WAAW,KAAK,CAAC,EAAE;IAEvB,MAAMM,UAAU,GAAGF,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEjB,WAAW,CAACS,KAAK,GAAGV,gBAAgB,CAACU,KAAK,CAAC;IAC1E,MAAMU,UAAU,GAAGH,IAAI,CAACI,GAAG,CACzBF,UAAU,EACVF,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEnB,OAAO,CAACW,KAAK,GAAGG,WAAW,CACzC,CAAC;IACD,MAAMS,WAAW,GAAGF,UAAU,GAAGrB,OAAO,CAACW,KAAK;IAE9C,IAAIO,IAAI,CAACM,GAAG,CAACD,WAAW,CAAC,GAAG,GAAG,EAAE;IAEjC,IAAAE,+BAAQ,EAAC1B,SAAS,EAAE,CAAC,EAAEsB,UAAU,EAAE,KAAK,CAAC;IACzCrB,OAAO,CAACW,KAAK,GAAGU,UAAU;IAE1B,IAAId,SAAS,EAAE;MACbA,SAAS,CAACI,KAAK,IAAIY,WAAW;IAChC;IACA,IAAIjB,gBAAgB,EAAE;MACpBA,gBAAgB,CAACK,KAAK,IAAIY,WAAW;IACvC;IACA,IAAIf,WAAW,EAAE;MACfA,WAAW,CAACG,KAAK,IAAIF,YAAY,GAAG,CAACc,WAAW,GAAGA,WAAW;IAChE;EACF,CAAC,CAAC;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeReanimated","require","AUTO_SCROLL_TOP_THRESHOLD","AUTO_SCROLL_BOTTOM_THRESHOLD","AUTO_SCROLL_MAX_SPEED_PPS","useAutoScroll","scrollRef","scrollY","scrollViewHeight","maximumHour","topEdgeY","bottomEdgeY","isActive","autoScrollOffset","positionY","heightValue","invertHeight","useFrameCallback","frameInfo","value","dt","timeSincePreviousFrame","viewportTop","viewportBottom","scrollDelta","distFromTop","distFromBottom","ratio","Math","max","maxScrollY","newScrollY","min","actualDelta","abs","scrollTo"],"sourceRoot":"../../../src","sources":["hooks/use-auto-scroll.ts"],"mappings":";;;;;;AAAA,IAAAA,sBAAA,GAAAC,OAAA;AAOA,MAAMC,yBAAyB,GAAG,EAAE;AACpC,MAAMC,4BAA4B,GAAG,GAAG;AACxC,MAAMC,yBAAyB,GAAG,GAAG;AAgBtB,SAASC,aAAaA,CAAC;EACpCC,SAAS;EACTC,OAAO;EACPC,gBAAgB;EAChBC,WAAW;EACXC,QAAQ;EACRC,WAAW;EACXC,QAAQ;EACRC,gBAAgB;EAChBC,SAAS;EACTC,WAAW;EACXC;AACgB,CAAC,EAAE;EACnB,IAAAC,uCAAgB,EAAEC,SAAS,IAAK;IAC9B,IAAI,CAACN,QAAQ,CAACO,KAAK,EAAE;IAErB,MAAMC,EAAE,GAAG,CAACF,SAAS,CAACG,sBAAsB,IAAI,EAAE,IAAI,IAAI;IAE1D,MAAMC,WAAW,GAAGf,OAAO,CAACY,KAAK;IACjC,MAAMI,cAAc,GAAGhB,OAAO,CAACY,KAAK,GAAGX,gBAAgB,CAACW,KAAK;IAE7D,IAAIK,WAAW,GAAG,CAAC;IAEnB,MAAMC,WAAW,GAAGf,QAAQ,CAACS,KAAK,GAAGG,WAAW;IAChD,MAAMI,cAAc,GAAGH,cAAc,GAAGZ,WAAW,CAACQ,KAAK;IAEzD,IACEM,WAAW,GAAGvB,yBAAyB,IACvCuB,WAAW,IAAIC,cAAc,EAC7B;MACA,MAAMC,KAAK,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAGJ,WAAW,GAAGvB,yBAAyB,CAAC;MACtEsB,WAAW,GAAG,CAACG,KAAK,GAAGvB,yBAAyB,GAAGgB,EAAE;IACvD,CAAC,MAAM,IAAIM,cAAc,GAAGvB,4BAA4B,EAAE;MACxD,MAAMwB,KAAK,GAAGC,IAAI,CAACC,GAAG,CACpB,CAAC,EACD,CAAC,GAAGH,cAAc,GAAGvB,4BACvB,CAAC;MACDqB,WAAW,GAAGG,KAAK,GAAGvB,yBAAyB,GAAGgB,EAAE;IACtD;IAEA,IAAII,WAAW,KAAK,CAAC,EAAE;IAEvB,MAAMM,UAAU,GAAGF,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEpB,WAAW,CAACU,KAAK,GAAGX,gBAAgB,CAACW,KAAK,CAAC;IAC1E,MAAMY,UAAU,GAAGH,IAAI,CAACI,GAAG,CACzBF,UAAU,EACVF,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEtB,OAAO,CAACY,KAAK,GAAGK,WAAW,CACzC,CAAC;IACD,MAAMS,WAAW,GAAGF,UAAU,GAAGxB,OAAO,CAACY,KAAK;IAE9C,IAAIS,IAAI,CAACM,GAAG,CAACD,WAAW,CAAC,GAAG,GAAG,EAAE;IAEjC,IAAAE,+BAAQ,EAAC7B,SAAS,EAAE,CAAC,EAAEyB,UAAU,EAAE,KAAK,CAAC;IACzCxB,OAAO,CAACY,KAAK,GAAGY,UAAU;IAE1B,IAAIjB,SAAS,EAAE;MACbA,SAAS,CAACK,KAAK,IAAIc,WAAW;IAChC;IACA,IAAIpB,gBAAgB,EAAE;MACpBA,gBAAgB,CAACM,KAAK,IAAIc,WAAW;IACvC;IACA,IAAIlB,WAAW,EAAE;MACfA,WAAW,CAACI,KAAK,IAAIH,YAAY,GAAG,CAACiB,WAAW,GAAGA,WAAW;IAChE;EACF,CAAC,CAAC;AACJ","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  import { scrollTo, useFrameCallback } from "react-native-reanimated";
4
4
  const AUTO_SCROLL_TOP_THRESHOLD = 80;
5
5
  const AUTO_SCROLL_BOTTOM_THRESHOLD = 150;
6
- const AUTO_SCROLL_MAX_SPEED = 8;
6
+ const AUTO_SCROLL_MAX_SPEED_PPS = 480;
7
7
  export default function useAutoScroll({
8
8
  scrollRef,
9
9
  scrollY,
@@ -17,8 +17,9 @@ export default function useAutoScroll({
17
17
  heightValue,
18
18
  invertHeight
19
19
  }) {
20
- useFrameCallback(() => {
20
+ useFrameCallback(frameInfo => {
21
21
  if (!isActive.value) return;
22
+ const dt = (frameInfo.timeSincePreviousFrame ?? 16) / 1000;
22
23
  const viewportTop = scrollY.value;
23
24
  const viewportBottom = scrollY.value + scrollViewHeight.value;
24
25
  let scrollDelta = 0;
@@ -26,10 +27,10 @@ export default function useAutoScroll({
26
27
  const distFromBottom = viewportBottom - bottomEdgeY.value;
27
28
  if (distFromTop < AUTO_SCROLL_TOP_THRESHOLD && distFromTop <= distFromBottom) {
28
29
  const ratio = Math.max(0, 1 - distFromTop / AUTO_SCROLL_TOP_THRESHOLD);
29
- scrollDelta = -ratio * AUTO_SCROLL_MAX_SPEED;
30
+ scrollDelta = -ratio * AUTO_SCROLL_MAX_SPEED_PPS * dt;
30
31
  } else if (distFromBottom < AUTO_SCROLL_BOTTOM_THRESHOLD) {
31
32
  const ratio = Math.max(0, 1 - distFromBottom / AUTO_SCROLL_BOTTOM_THRESHOLD);
32
- scrollDelta = ratio * AUTO_SCROLL_MAX_SPEED;
33
+ scrollDelta = ratio * AUTO_SCROLL_MAX_SPEED_PPS * dt;
33
34
  }
34
35
  if (scrollDelta === 0) return;
35
36
  const maxScrollY = Math.max(0, maximumHour.value - scrollViewHeight.value);
@@ -1 +1 @@
1
- {"version":3,"names":["scrollTo","useFrameCallback","AUTO_SCROLL_TOP_THRESHOLD","AUTO_SCROLL_BOTTOM_THRESHOLD","AUTO_SCROLL_MAX_SPEED","useAutoScroll","scrollRef","scrollY","scrollViewHeight","maximumHour","topEdgeY","bottomEdgeY","isActive","autoScrollOffset","positionY","heightValue","invertHeight","value","viewportTop","viewportBottom","scrollDelta","distFromTop","distFromBottom","ratio","Math","max","maxScrollY","newScrollY","min","actualDelta","abs"],"sourceRoot":"../../../src","sources":["hooks/use-auto-scroll.ts"],"mappings":";;AAAA,SAGEA,QAAQ,EACRC,gBAAgB,QACX,yBAAyB;AAEhC,MAAMC,yBAAyB,GAAG,EAAE;AACpC,MAAMC,4BAA4B,GAAG,GAAG;AACxC,MAAMC,qBAAqB,GAAG,CAAC;AAgB/B,eAAe,SAASC,aAAaA,CAAC;EACpCC,SAAS;EACTC,OAAO;EACPC,gBAAgB;EAChBC,WAAW;EACXC,QAAQ;EACRC,WAAW;EACXC,QAAQ;EACRC,gBAAgB;EAChBC,SAAS;EACTC,WAAW;EACXC;AACgB,CAAC,EAAE;EACnBf,gBAAgB,CAAC,MAAM;IACrB,IAAI,CAACW,QAAQ,CAACK,KAAK,EAAE;IAErB,MAAMC,WAAW,GAAGX,OAAO,CAACU,KAAK;IACjC,MAAME,cAAc,GAAGZ,OAAO,CAACU,KAAK,GAAGT,gBAAgB,CAACS,KAAK;IAE7D,IAAIG,WAAW,GAAG,CAAC;IAEnB,MAAMC,WAAW,GAAGX,QAAQ,CAACO,KAAK,GAAGC,WAAW;IAChD,MAAMI,cAAc,GAAGH,cAAc,GAAGR,WAAW,CAACM,KAAK;IAEzD,IACEI,WAAW,GAAGnB,yBAAyB,IACvCmB,WAAW,IAAIC,cAAc,EAC7B;MACA,MAAMC,KAAK,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAGJ,WAAW,GAAGnB,yBAAyB,CAAC;MACtEkB,WAAW,GAAG,CAACG,KAAK,GAAGnB,qBAAqB;IAC9C,CAAC,MAAM,IAAIkB,cAAc,GAAGnB,4BAA4B,EAAE;MACxD,MAAMoB,KAAK,GAAGC,IAAI,CAACC,GAAG,CACpB,CAAC,EACD,CAAC,GAAGH,cAAc,GAAGnB,4BACvB,CAAC;MACDiB,WAAW,GAAGG,KAAK,GAAGnB,qBAAqB;IAC7C;IAEA,IAAIgB,WAAW,KAAK,CAAC,EAAE;IAEvB,MAAMM,UAAU,GAAGF,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEhB,WAAW,CAACQ,KAAK,GAAGT,gBAAgB,CAACS,KAAK,CAAC;IAC1E,MAAMU,UAAU,GAAGH,IAAI,CAACI,GAAG,CACzBF,UAAU,EACVF,IAAI,CAACC,GAAG,CAAC,CAAC,EAAElB,OAAO,CAACU,KAAK,GAAGG,WAAW,CACzC,CAAC;IACD,MAAMS,WAAW,GAAGF,UAAU,GAAGpB,OAAO,CAACU,KAAK;IAE9C,IAAIO,IAAI,CAACM,GAAG,CAACD,WAAW,CAAC,GAAG,GAAG,EAAE;IAEjC7B,QAAQ,CAACM,SAAS,EAAE,CAAC,EAAEqB,UAAU,EAAE,KAAK,CAAC;IACzCpB,OAAO,CAACU,KAAK,GAAGU,UAAU;IAE1B,IAAIb,SAAS,EAAE;MACbA,SAAS,CAACG,KAAK,IAAIY,WAAW;IAChC;IACA,IAAIhB,gBAAgB,EAAE;MACpBA,gBAAgB,CAACI,KAAK,IAAIY,WAAW;IACvC;IACA,IAAId,WAAW,EAAE;MACfA,WAAW,CAACE,KAAK,IAAID,YAAY,GAAG,CAACa,WAAW,GAAGA,WAAW;IAChE;EACF,CAAC,CAAC;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["scrollTo","useFrameCallback","AUTO_SCROLL_TOP_THRESHOLD","AUTO_SCROLL_BOTTOM_THRESHOLD","AUTO_SCROLL_MAX_SPEED_PPS","useAutoScroll","scrollRef","scrollY","scrollViewHeight","maximumHour","topEdgeY","bottomEdgeY","isActive","autoScrollOffset","positionY","heightValue","invertHeight","frameInfo","value","dt","timeSincePreviousFrame","viewportTop","viewportBottom","scrollDelta","distFromTop","distFromBottom","ratio","Math","max","maxScrollY","newScrollY","min","actualDelta","abs"],"sourceRoot":"../../../src","sources":["hooks/use-auto-scroll.ts"],"mappings":";;AAAA,SAGEA,QAAQ,EACRC,gBAAgB,QACX,yBAAyB;AAEhC,MAAMC,yBAAyB,GAAG,EAAE;AACpC,MAAMC,4BAA4B,GAAG,GAAG;AACxC,MAAMC,yBAAyB,GAAG,GAAG;AAgBrC,eAAe,SAASC,aAAaA,CAAC;EACpCC,SAAS;EACTC,OAAO;EACPC,gBAAgB;EAChBC,WAAW;EACXC,QAAQ;EACRC,WAAW;EACXC,QAAQ;EACRC,gBAAgB;EAChBC,SAAS;EACTC,WAAW;EACXC;AACgB,CAAC,EAAE;EACnBf,gBAAgB,CAAEgB,SAAS,IAAK;IAC9B,IAAI,CAACL,QAAQ,CAACM,KAAK,EAAE;IAErB,MAAMC,EAAE,GAAG,CAACF,SAAS,CAACG,sBAAsB,IAAI,EAAE,IAAI,IAAI;IAE1D,MAAMC,WAAW,GAAGd,OAAO,CAACW,KAAK;IACjC,MAAMI,cAAc,GAAGf,OAAO,CAACW,KAAK,GAAGV,gBAAgB,CAACU,KAAK;IAE7D,IAAIK,WAAW,GAAG,CAAC;IAEnB,MAAMC,WAAW,GAAGd,QAAQ,CAACQ,KAAK,GAAGG,WAAW;IAChD,MAAMI,cAAc,GAAGH,cAAc,GAAGX,WAAW,CAACO,KAAK;IAEzD,IACEM,WAAW,GAAGtB,yBAAyB,IACvCsB,WAAW,IAAIC,cAAc,EAC7B;MACA,MAAMC,KAAK,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAGJ,WAAW,GAAGtB,yBAAyB,CAAC;MACtEqB,WAAW,GAAG,CAACG,KAAK,GAAGtB,yBAAyB,GAAGe,EAAE;IACvD,CAAC,MAAM,IAAIM,cAAc,GAAGtB,4BAA4B,EAAE;MACxD,MAAMuB,KAAK,GAAGC,IAAI,CAACC,GAAG,CACpB,CAAC,EACD,CAAC,GAAGH,cAAc,GAAGtB,4BACvB,CAAC;MACDoB,WAAW,GAAGG,KAAK,GAAGtB,yBAAyB,GAAGe,EAAE;IACtD;IAEA,IAAII,WAAW,KAAK,CAAC,EAAE;IAEvB,MAAMM,UAAU,GAAGF,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEnB,WAAW,CAACS,KAAK,GAAGV,gBAAgB,CAACU,KAAK,CAAC;IAC1E,MAAMY,UAAU,GAAGH,IAAI,CAACI,GAAG,CACzBF,UAAU,EACVF,IAAI,CAACC,GAAG,CAAC,CAAC,EAAErB,OAAO,CAACW,KAAK,GAAGK,WAAW,CACzC,CAAC;IACD,MAAMS,WAAW,GAAGF,UAAU,GAAGvB,OAAO,CAACW,KAAK;IAE9C,IAAIS,IAAI,CAACM,GAAG,CAACD,WAAW,CAAC,GAAG,GAAG,EAAE;IAEjChC,QAAQ,CAACM,SAAS,EAAE,CAAC,EAAEwB,UAAU,EAAE,KAAK,CAAC;IACzCvB,OAAO,CAACW,KAAK,GAAGY,UAAU;IAE1B,IAAIhB,SAAS,EAAE;MACbA,SAAS,CAACI,KAAK,IAAIc,WAAW;IAChC;IACA,IAAInB,gBAAgB,EAAE;MACpBA,gBAAgB,CAACK,KAAK,IAAIc,WAAW;IACvC;IACA,IAAIjB,WAAW,EAAE;MACfA,WAAW,CAACG,KAAK,IAAIF,YAAY,GAAG,CAACgB,WAAW,GAAGA,WAAW;IAChE;EACF,CAAC,CAAC;AACJ","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"use-auto-scroll.d.ts","sourceRoot":"","sources":["../../../../src/hooks/use-auto-scroll.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,EAAE,EACf,KAAK,WAAW,EAChB,KAAK,WAAW,EAGjB,MAAM,yBAAyB,CAAC;AAMjC,KAAK,gBAAgB,GAAG;IACtB,SAAS,EAAE,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC5C,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7B,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC/B,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvC,SAAS,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAChC,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,SAAS,EACT,OAAO,EACP,gBAAgB,EAChB,WAAW,EACX,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,SAAS,EACT,WAAW,EACX,YAAY,GACb,EAAE,gBAAgB,QAkDlB"}
1
+ {"version":3,"file":"use-auto-scroll.d.ts","sourceRoot":"","sources":["../../../../src/hooks/use-auto-scroll.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,EAAE,EACf,KAAK,WAAW,EAChB,KAAK,WAAW,EAGjB,MAAM,yBAAyB,CAAC;AAMjC,KAAK,gBAAgB,GAAG;IACtB,SAAS,EAAE,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC5C,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7B,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC/B,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvC,SAAS,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAChC,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,SAAS,EACT,OAAO,EACP,gBAAgB,EAChB,WAAW,EACX,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,SAAS,EACT,WAAW,EACX,YAAY,GACb,EAAE,gBAAgB,QAoDlB"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-auto-scroll.d.ts","sourceRoot":"","sources":["../../../../src/hooks/use-auto-scroll.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,EAAE,EACf,KAAK,WAAW,EAChB,KAAK,WAAW,EAGjB,MAAM,yBAAyB,CAAC;AAMjC,KAAK,gBAAgB,GAAG;IACtB,SAAS,EAAE,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC5C,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7B,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC/B,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvC,SAAS,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAChC,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,SAAS,EACT,OAAO,EACP,gBAAgB,EAChB,WAAW,EACX,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,SAAS,EACT,WAAW,EACX,YAAY,GACb,EAAE,gBAAgB,QAkDlB"}
1
+ {"version":3,"file":"use-auto-scroll.d.ts","sourceRoot":"","sources":["../../../../src/hooks/use-auto-scroll.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,EAAE,EACf,KAAK,WAAW,EAChB,KAAK,WAAW,EAGjB,MAAM,yBAAyB,CAAC;AAMjC,KAAK,gBAAgB,GAAG;IACtB,SAAS,EAAE,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC5C,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7B,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC/B,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvC,SAAS,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAChC,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,SAAS,EACT,OAAO,EACP,gBAAgB,EAChB,WAAW,EACX,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,SAAS,EACT,WAAW,EACX,YAAY,GACb,EAAE,gBAAgB,QAoDlB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sunsama/event-calendar",
3
- "version": "0.13.0",
3
+ "version": "0.13.1",
4
4
  "description": "Event calendar.",
5
5
  "source": "./src/index.tsx",
6
6
  "main": "./lib/commonjs/index.js",
@@ -7,7 +7,7 @@ import Animated, {
7
7
 
8
8
  const AUTO_SCROLL_TOP_THRESHOLD = 80;
9
9
  const AUTO_SCROLL_BOTTOM_THRESHOLD = 150;
10
- const AUTO_SCROLL_MAX_SPEED = 8;
10
+ const AUTO_SCROLL_MAX_SPEED_PPS = 480;
11
11
 
12
12
  type AutoScrollParams = {
13
13
  scrollRef: AnimatedRef<Animated.ScrollView>;
@@ -36,9 +36,11 @@ export default function useAutoScroll({
36
36
  heightValue,
37
37
  invertHeight,
38
38
  }: AutoScrollParams) {
39
- useFrameCallback(() => {
39
+ useFrameCallback((frameInfo) => {
40
40
  if (!isActive.value) return;
41
41
 
42
+ const dt = (frameInfo.timeSincePreviousFrame ?? 16) / 1000;
43
+
42
44
  const viewportTop = scrollY.value;
43
45
  const viewportBottom = scrollY.value + scrollViewHeight.value;
44
46
 
@@ -52,13 +54,13 @@ export default function useAutoScroll({
52
54
  distFromTop <= distFromBottom
53
55
  ) {
54
56
  const ratio = Math.max(0, 1 - distFromTop / AUTO_SCROLL_TOP_THRESHOLD);
55
- scrollDelta = -ratio * AUTO_SCROLL_MAX_SPEED;
57
+ scrollDelta = -ratio * AUTO_SCROLL_MAX_SPEED_PPS * dt;
56
58
  } else if (distFromBottom < AUTO_SCROLL_BOTTOM_THRESHOLD) {
57
59
  const ratio = Math.max(
58
60
  0,
59
61
  1 - distFromBottom / AUTO_SCROLL_BOTTOM_THRESHOLD
60
62
  );
61
- scrollDelta = ratio * AUTO_SCROLL_MAX_SPEED;
63
+ scrollDelta = ratio * AUTO_SCROLL_MAX_SPEED_PPS * dt;
62
64
  }
63
65
 
64
66
  if (scrollDelta === 0) return;