Commit 28ff5ee
⚡ Bolt: Memoize filtered models arrays in Chatbot
💡 What: Extracted array filtering logic for `hordeModels` and `otherModels` out of the render logic and wrapped it in `useMemo` in `client/components/apps/Chatbot.tsx`.
🎯 Why: Prevents expensive O(N) recalculations on every keystroke render (e.g. while streaming AI responses or when user is typing) for the large list of AI models.
📊 Impact: Considerably reduces computation on each render cycle by keeping derived state calculations limited to when dependencies (the model list) actually update.
🔬 Measurement: Verify by typing in the chat and monitoring the React Profiler for reduced computation in the `Chatbot` component render phase.
Co-authored-by: Oxygen-Low <95589118+Oxygen-Low@users.noreply.github.com>1 parent c99b62f commit 28ff5ee
3 files changed
Lines changed: 35 additions & 21 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| 5 | + | |
5 | 6 | | |
| 7 | + | |
6 | 8 | | |
7 | 9 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
| 2 | + | |
2 | 3 | | |
3 | 4 | | |
| 5 | + | |
4 | 6 | | |
| 7 | + | |
5 | 8 | | |
6 | 9 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
149 | 149 | | |
150 | 150 | | |
151 | 151 | | |
152 | | - | |
153 | | - | |
154 | | - | |
| 152 | + | |
155 | 153 | | |
156 | 154 | | |
157 | 155 | | |
| |||
270 | 268 | | |
271 | 269 | | |
272 | 270 | | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
273 | 286 | | |
274 | 287 | | |
275 | 288 | | |
| |||
702 | 715 | | |
703 | 716 | | |
704 | 717 | | |
705 | | - | |
| 718 | + | |
706 | 719 | | |
707 | | - | |
708 | | - | |
709 | | - | |
710 | | - | |
711 | | - | |
712 | | - | |
713 | | - | |
714 | | - | |
715 | | - | |
716 | | - | |
717 | | - | |
718 | | - | |
719 | | - | |
720 | | - | |
721 | | - | |
722 | | - | |
| 720 | + | |
723 | 721 | | |
724 | 722 | | |
725 | 723 | | |
726 | 724 | | |
727 | 725 | | |
728 | 726 | | |
729 | 727 | | |
| 728 | + | |
| 729 | + | |
| 730 | + | |
| 731 | + | |
| 732 | + | |
| 733 | + | |
| 734 | + | |
| 735 | + | |
| 736 | + | |
| 737 | + | |
| 738 | + | |
730 | 739 | | |
731 | 740 | | |
732 | 741 | | |
| |||
0 commit comments