Skip to content

feat: add vui-rerender and vui-update for instance management#37

Merged
d12frosted merged 1 commit intomasterfrom
feat/vui-update-rerender
Jan 26, 2026
Merged

feat: add vui-rerender and vui-update for instance management#37
d12frosted merged 1 commit intomasterfrom
feat/vui-update-rerender

Conversation

@d12frosted
Copy link
Copy Markdown
Owner

Summary

  • Add vui-rerender - Re-render an instance preserving component state and memos
  • Add vui-update - Update instance props, invalidate all memos, and re-render

Motivation

Applications like vulpea-ui need to refresh content (e.g., sidebar stats on idle/save) while preserving user interactions (like collapsed sections). Previously the only option was vui-mount which creates a fresh instance tree, losing all state.

API

;; Just redraw, preserve everything
(vui-rerender instance)

;; Update props and refresh computed values, preserve UI state
(vui-update instance (list :note new-note))

The distinction:

  • vui-rerender = "redraw with current state" (memos preserved)
  • vui-update = "new data arrived, refresh everything" (memos cleared)

Both return the instance for chaining.

Closes #35

Add two public functions for re-rendering mounted instances:

- vui-rerender: Re-render an instance preserving component state and
  memos. Useful for forcing a redraw without changing data.

- vui-update: Update instance props, invalidate all memos recursively,
  and re-render. Useful when new data arrives and computed values need
  to refresh while preserving UI state (like collapsed sections).

The distinction:
- vui-rerender = "redraw with current state" (memos preserved)
- vui-update = "new data arrived, refresh everything" (memos cleared)

This enables applications like vulpea-ui to refresh sidebar content
on idle/save while preserving user interactions (collapsed sections).

Closes #35
@d12frosted d12frosted merged commit 022f7e2 into master Jan 26, 2026
2 checks passed
@d12frosted d12frosted deleted the feat/vui-update-rerender branch January 26, 2026 15:42
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.

Add public vui-rerender and vui-update functions

1 participant