aknarts / yew-custom-components

Custom components for Yew framework
MIT License
3 stars 2 forks source link

Large tables support - remove page numbers and scaling issues #8

Open shimwell opened 1 week ago

shimwell commented 1 week ago

Hi @aknarts I'm still tinkering with making a webapp based on your tables and I've started to add lots of rows to the table to see how it behaves.

In the end I need to have 30,000 entries in the table to cover the user needs.

The largest I've made had 300 entries

Is the way of not including the table page numbers for all 50 pages? Perhaps for large tables just having First, Previous, Next and Last buttons is enough

Screenshot 2024-09-11 002048

I tried to make a table with 30,000 but it doesn't compile currently

mistastn commented 1 week ago

Hello, I did add that functionality a while back, it is in the example, there is max_pages option https://github.com/aknarts/yew-custom-components/blob/main/examples/overview/src/table.rs#L210

mistastn commented 1 week ago

I would be concerned with the 30000 lines for a different reason, it all needs to be held in memory. I am not sure if it all can be helped though, maybe add external sorter and search callback so you can dynamically load the values, but that would end up being slow.

aknarts commented 1 week ago

Do not question why I answered under different account, work is messing with my flows :D

shimwell commented 1 week ago

I would be concerned with the 30000 lines for a different reason, it all needs to be held in memory. I am not sure if it all can be helped though, maybe add external sorter and search callback so you can dynamically load the values, but that would end up being slow.

An external sorter and search sounds interesting. I'm not sure the table is getting to that point yet as currently I'm typing trunk serve --open and the building process takes ages then fails.

jon@brick:~/example_yew_rust_table$ trunk serve --open
2024-09-11T10:45:59.627692Z  INFO 🚀 Starting trunk 0.20.3
2024-09-11T10:45:59.682072Z  INFO 📦 starting build
   Compiling minimal-table v0.1.0 (/home/jon/example_yew_rust_table)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 51.90s
error: failed getting Wasm module for '/home/jon/example_yew_rust_table/target/wasm32-unknown-unknown/debug/minimal-table.wasm'

Caused by:
    0: failed to parse input as wasm
    1: failed to parse code section
    2: c (at offset 0x120ba4)
2024-09-11T10:46:52.197566Z ERROR ❌ error
error from build pipeline

I'm going to give the suggestions mention here a go

shimwell commented 1 week ago

trunk serve --open --release appears to compile and I can load the website.

I appear to be getting an error when using the pagination buttons

Screenshot 2024-09-11 121139

aknarts commented 6 days ago

Do you actually have the same issue? Because your error message is different. Try cargo clean to start fresh..