Skip to content

Perf/large dataset#130

Merged
righ merged 7 commits into
masterfrom
perf/large-dataset
Apr 5, 2026
Merged

Perf/large dataset#130
righ merged 7 commits into
masterfrom
perf/large-dataset

Conversation

@righ
Copy link
Copy Markdown
Member

@righ righ commented Apr 5, 2026

Description

Improve large dataset performance for GridSheet. Previously the grid already supported large datasets, but initialization was slow due to upfront data formatting. This PR introduces lazy initialization and deferred cell expansion to avoid blocking the UI during initial render. A loading overlay provides feedback during heavy mutations. Several bugs are also fixed: IME composition handling, blank space after sheet resize, sheet edge selection, and tabular size clamping.

Type of Change

  • Bug fix
  • Improvement
  • New feature
  • Breaking change
  • Reword
  • The other

Impact Area

  • packages/core/src/lib/sheet.ts — Major refactor for lazy initialization and deferred matrix cell expansion. Reviewers should pay close attention here.
  • packages/core/src/lib/spatial.ts / virtualization.ts — Adjustments for large grid support and edge selection fixes.
  • packages/react-core/src/components/GridSheet.tsx — Loading overlay integration and resize observer fixes.
  • packages/react-core/src/components/Tabular.tsx — Tabular size clamping to content bounds.
  • packages/react-core/src/components/Editor.tsx / FormulaBar.tsx — IME composition fix.
  • packages/react-core/src/store/actions.ts — New actions for loading state management.
  • packages/storybook/stories/basic/huge.stories.tsx — New story for testing large datasets.

How Has This Been Tested?

  • Visual operation check - pnpm storybook
  • Test - pnpm test
  • Lint - pnpm lint:fix

@righ righ merged commit 4a0ca26 into master Apr 5, 2026
3 checks passed
@righ righ deleted the perf/large-dataset branch April 5, 2026 16:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant