diff --git a/README.md b/README.md
index 1c964df..cfcb050 100644
--- a/README.md
+++ b/README.md
@@ -14,9 +14,13 @@ MindWork AI Studio is a desktop application available for macOS, Windows, and Li
## Support the Project
Thank you for using MindWork AI Studio and considering supporting its development 😀. Your support helps keep the project alive and ensures continuous improvements and new features.
+We offer various ways you can support the project:
+- **Monthly Support**: Choose from different tiers that offer a range of benefits, including having your name or company logo featured in the app, access to exclusive content, and more.
+- **One-Time Contributions**: Make a one-time donation and have your name or company logo included in the app as a gesture of our gratitude.
-You might make a one-time contribution or opt for monthly support. When you choose to make a one-time contribution, we would be thrilled to honor you by including your name in the app as a gesture of our gratitude 🤝. Monthly supporters will not only have their names featured in the app but will also enjoy additional perks with future releases 🙏. These perks may include ready-made prompt presets for various use cases and pre-built functions for the so-called function calling of the LLM, which will be directly integrated into the app.
-
+For companies, sponsoring MindWork AI Studio is not only a way to support innovation but also a valuable opportunity for public relations and marketing. Your company's name and logo will be featured prominently, showcasing your commitment to using cutting-edge AI tools and enhancing your reputation as an innovative enterprise.
+
+To view all available tiers and their specific perks, please visit our [GitHub Sponsors page](https://github.com/sponsors/MindWorkAI).
Your support, whether big or small, keeps the wheels turning and is deeply appreciated ❤️.
## Planned Features
diff --git a/app/MindWork AI Studio/Components/App.razor b/app/MindWork AI Studio/Components/App.razor
index ae3b65b..152203c 100644
--- a/app/MindWork AI Studio/Components/App.razor
+++ b/app/MindWork AI Studio/Components/App.razor
@@ -17,7 +17,8 @@
-
+
+
diff --git a/app/MindWork AI Studio/Components/Layout/MainLayout.razor b/app/MindWork AI Studio/Components/Layout/MainLayout.razor
index ff7c92d..5e042ad 100644
--- a/app/MindWork AI Studio/Components/Layout/MainLayout.razor
+++ b/app/MindWork AI Studio/Components/Layout/MainLayout.razor
@@ -11,6 +11,9 @@
Chats
+
+ Supporters
+
About
diff --git a/app/MindWork AI Studio/Components/Pages/Supporters.razor b/app/MindWork AI Studio/Components/Pages/Supporters.razor
new file mode 100644
index 0000000..f3cef07
--- /dev/null
+++ b/app/MindWork AI Studio/Components/Pages/Supporters.razor
@@ -0,0 +1,50 @@
+@page "/Supporters"
+
+Supporters
+
+
+
+
+
+ Our Titans
+
+ In this section, we highlight the titan supporters of MindWork AI Studio. Titans are prestigious companies that provide significant support to our mission.
+
+
+ For companies, sponsoring MindWork AI Studio is not only a way to support innovation but also a valuable opportunity for public relations and marketing. Your company's name and logo will be featured prominently, showcasing your commitment to using cutting-edge AI tools and enhancing your reputation as an innovative enterprise.
+
+
+ Become our first Titan
+
+
+
+
+
+
+
+
+ Individual Contributors
+
+
+
+ Become a contributor
+
+
+
+
+
+
+
+
+ Business Contributors
+
+
+
+ Become a contributor
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/MindWork AI Studio/Components/Pages/Supporters.razor.cs b/app/MindWork AI Studio/Components/Pages/Supporters.razor.cs
new file mode 100644
index 0000000..90c0fad
--- /dev/null
+++ b/app/MindWork AI Studio/Components/Pages/Supporters.razor.cs
@@ -0,0 +1,7 @@
+using Microsoft.AspNetCore.Components;
+
+namespace AIStudio.Components.Pages;
+
+public partial class Supporters : ComponentBase
+{
+}
\ No newline at end of file
diff --git a/app/MindWork AI Studio/Program.cs b/app/MindWork AI Studio/Program.cs
index ffd873f..38d72dc 100644
--- a/app/MindWork AI Studio/Program.cs
+++ b/app/MindWork AI Studio/Program.cs
@@ -30,9 +30,11 @@ builder.Services.AddSingleton();
builder.Services.AddSingleton();
builder.Services.AddRazorComponents()
.AddInteractiveServerComponents()
- .AddHubOptions(x =>
+ .AddHubOptions(options =>
{
- x.MaximumReceiveMessageSize = null;
+ options.MaximumReceiveMessageSize = null;
+ options.ClientTimeoutInterval = TimeSpan.FromSeconds(1_200);
+ options.HandshakeTimeout = TimeSpan.FromSeconds(30);
});
var port = args.Length > 0 ? args[0] : "5000";
diff --git a/app/MindWork AI Studio/wwwroot/boot.js b/app/MindWork AI Studio/wwwroot/boot.js
new file mode 100644
index 0000000..d18dd7e
--- /dev/null
+++ b/app/MindWork AI Studio/wwwroot/boot.js
@@ -0,0 +1,66 @@
+(() => {
+ const maximumRetryCount = 3;
+ const retryIntervalMilliseconds = 500;
+ const reconnectModal = document.getElementById('reconnect-modal');
+
+ const startReconnectionProcess = () => {
+ reconnectModal.style.display = 'block';
+
+ let isCanceled = false;
+
+ (async () => {
+ for (let i = 0; i < maximumRetryCount; i++) {
+ reconnectModal.innerText = `Attempting to reconnect: ${i + 1} of ${maximumRetryCount}`;
+
+ await new Promise(resolve => setTimeout(resolve, retryIntervalMilliseconds));
+
+ if (isCanceled) {
+ return;
+ }
+
+ try {
+ const result = await Blazor.reconnect();
+ if (!result) {
+ // The server was reached, but the connection was rejected; reload the page.
+ location.reload();
+ return;
+ }
+
+ // Successfully reconnected to the server.
+ return;
+ } catch {
+ // Didn't reach the server; try again.
+ }
+ }
+
+ // Retried too many times; reload the page.
+ location.reload();
+ })();
+
+ return {
+ cancel: () => {
+ isCanceled = true;
+ reconnectModal.style.display = 'none';
+ },
+ };
+ };
+
+ let currentReconnectionProcess = null;
+
+ Blazor.start({
+ circuit: {
+ reconnectionHandler: {
+ onConnectionDown: () => currentReconnectionProcess ??= startReconnectionProcess(),
+ onConnectionUp: () => {
+ currentReconnectionProcess?.cancel();
+ currentReconnectionProcess = null;
+ }
+ },
+
+ configureSignalR: function (builder) {
+ builder.withServerTimeout(1_200_000);
+ builder.withKeepAliveInterval(30_000);
+ },
+ }
+ });
+})();
\ No newline at end of file