This diff is just one step in the process of converting ChatThreadList into a functional component. When this work is done, we will be able to avoid a lot of re-rendering and hopefully improve performance quite a bit.
This should be the second to last diff in converting ChatThreadList to a functional component. After that I'll do some cleanup/refactoring to make the component more readable (group hooks, break search into its own component, etc).
Depends on D9183