Live data from Hacker News

Show HN: React Spreadsheet 2

rowsncolumns.app

21–30 of 144 posts

Re: Show HN: React Spreadsheet 2

#24

Performance for something like this is critical. How do you test or plan on testing performance to prevent regressions? I’ve yet to crack this nut in a way that makes me happy.

Yes it is. The Spreadsheet is powered by ReactJS and Konva.

React and Konva provides a Profiler and Devtools to measure performance and to prevent any un-necessary re-renders.

We also measure the Canvas FPS to make sure rendering is at max 60fps. The bottleneck we have identified is with scrolling large amounts of text, especially in large 42 inch 4K monitors, where FPS limits to 55-60fps. We do have some workaround planned for large monitors, by splitting the canvas into 4 layers.

In terms of regression, we use Cypress for most e2e testing, but the test cases are small as of now.

Re: Show HN: React Spreadsheet 2

#25

It crashed: 139-d48f98f3a9d41491.js:1 TypeError: Cannot read properties of undefined (reading 'rowCount') at nI (561-5e048c82ab8ff4d8.js:5:68277) at e (452-22edc4adb41de58f.js:1:1090692) at rs (2443530c-0641256dae818679.js:9:38883) at lg (2443530c-0641256dae818679.js:9:54218)

Ah. Could you share more on how you got this error, Maybe i should setup sentry.io for the demo.

I got the following:

Application error: a client-side exception has occurred (see the browser console for more information).

And from console:

    139-d48f98f3a9d41491.js:1 TypeError: Cannot destructure property 'sheetId' of 
    '.for' as it is undefined.
        at 561-5e048c82ab8ff4d8.js:5:60688
        at Object.rQ [as useMemo] (2443530c-0641256dae818679.js:9:43805)
        at t.useMemo (139-d48f98f3a9d41491.js:17:7340)
        at nv (561-5e048c82ab8ff4d8.js:5:60642)
        at nI (561-5e048c82ab8ff4d8.js:5:68802)
        at e (452-22edc4adb41de58f.js:1:1090692)
        at rs (2443530c-0641256dae818679.js:9:38883)
    at lg (2443530c-0641256dae818679.js:9:54218)
    at iv (2443530c-0641256dae818679.js:9:112640)
    at oR (2443530c-0641256dae818679.js:9:90032)

Re: Show HN: React Spreadsheet 2

#26

It crashed: 139-d48f98f3a9d41491.js:1 TypeError: Cannot read properties of undefined (reading 'rowCount') at nI (561-5e048c82ab8ff4d8.js:5:68277) at e (452-22edc4adb41de58f.js:1:1090692) at rs (2443530c-0641256dae818679.js:9:38883) at lg (2443530c-0641256dae818679.js:9:54218)

Found the issue. In collaboration mode, when user deletes a sheet another user was on, this error is thrown. Will work on a fix. Thanks for the report.

Re: Show HN: React Spreadsheet 2

#27

Earlier quoted context omitted.

Ah. Could you share more on how you got this error, Maybe i should setup sentry.io for the demo.

I got the following: Application error: a client-side exception has occurred (see the browser console for more information). And from console: 139-d48f98f3a9d41491.js:1 TypeError: Cannot destructure property 'sheetId' of '.for' as it is undefined. at 561-5e048c82ab8ff4d8.js:5:60688 at Object.rQ [as useMemo] (2443530c-0641256dae818679.js:9:43805) at t.useMemo (139-d48f98f3a9d41491.js:17:7340) at nv (561-5e048c82ab8ff4…

Yes, this was also thrown in collaboration mode when user deleted an active sheet of another user. Will need to figure out how to handle this case :(

Thanks for the report :)

Re: Show HN: React Spreadsheet 2

#28
post #6
post #3

Is it able to handle tables with 1,000,000+ rows?

Oh you’re one of those users. Prepares LART.

I don't understand your comment. It's not far fetched to have millions of rows to handle. I myself have about 12 million rows (notes mainly), although I don't load everything at the same time, so maybe you're referring to that aspect?

Re: Show HN: React Spreadsheet 2

#29
post #5

Earlier quoted context omitted.

I'm checking it out on my phone and scrolling through the interface is pretty choppy, but rather fluid in a Google sheet. Maybe you might be able to further tweak the virtual row rendering? Props for the fact that when I scroll a bit faster things don't disappear, which I've seen before in SPAs with infinite scroll.

Could you share which phone you were using? We use virtual rendering at both row and column level.

I'm on a Fairphone 4 with Firefox, but I guess it would be the same on any midrange phone.

Re: Show HN: React Spreadsheet 2

#30
post #29

Earlier quoted context omitted.

Could you share which phone you were using? We use virtual rendering at both row and column level.

I'm on a Fairphone 4 with Firefox, but I guess it would be the same on any midrange phone.

Got it. I will try to do some performance testing on midrange phones and mobile firefox. Thanks
Post reply on HN