fingerthief / minimal-chat

MinimalChat is a lightweight, open-source chat application that allows you to interact with various large language models.
https://minimalchat.app
MIT License
143 stars 19 forks source link

ChatLayout Refactoring and Libs Expansion #124

Closed fingerthief closed 5 months ago

fingerthief commented 5 months ago

Summary of Changes


The ChatLayout component for the longest time has been used as a centralized pipe for logic to flow through. Why you might ask? I have no idea; it was a terrible architecture choice mostly left over from the initial Knockout version of the application.

With these updates the logic and functions in ChatLayout has refactored or moved into the respective component it's functionality should belong in...Message handling is largely done in the message-item component now for example.

This also reduces the insane amount of event emitting that was being done previously, while it's difficult to measure the app again seems to have had another bump in performance just by reducing the sheer event emitting that was being done.

As a result the ChatLayout file is now down to a paltry 85 or so lines of JavaScript from a staggering starting point of 1000+ lines of JS.

Additional libs do exist now and the general suite of lib files have been updated and expanded to include logic relevant to their functionality scope.

Auto Generated Notes (Do Not Change)


Contents (#124)

Uncategorised!

github-actions[bot] commented 5 months ago

Visit the preview URL for this PR (updated for commit f57ab1a):

https://minimalgpt--pr124-dev-continue-chat-la-ejug4nhq.web.app

(expires Thu, 30 May 2024 23:21:43 GMT)

🔥 via Firebase Hosting GitHub Action 🌎

Sign: 95b9f8da4861f0258375bb9789bfa436b4ed7d98