From 9608599dd2f1949f7220ad3b571052af66f31bd0 Mon Sep 17 00:00:00 2001 From: Sean Hatfield Date: Tue, 26 Nov 2024 11:39:37 -0800 Subject: [PATCH] Community hub integration UX improvements (#2727) * add empty states to your account hub page + disconnect button for api key * lint * lint --------- Co-authored-by: timothycarambat --- .../SlashCommands/SlashPresets/index.jsx | 2 +- .../Authentication/UserItems/index.jsx | 16 +++++- .../CommunityHub/Authentication/index.jsx | 52 +++++++++++++++---- .../PullAndReview/HubItem/AgentSkill.jsx | 12 +++-- 4 files changed, 66 insertions(+), 16 deletions(-) diff --git a/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/SlashPresets/index.jsx b/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/SlashPresets/index.jsx index ec42050a..e7e5536e 100644 --- a/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/SlashPresets/index.jsx +++ b/frontend/src/components/WorkspaceChat/ChatContainer/PromptInput/SlashCommands/SlashPresets/index.jsx @@ -100,7 +100,7 @@ export default function SlashPresets({ setShowing, sendCommand }) { e.stopPropagation(); handleEditPreset(preset); }} - className="text-theme-text-primary text-sm p-1 hover:cursor-pointer hover:bg-theme-action-menu-item-hover rounded-full mt-1" + className="border-none text-theme-text-primary text-sm p-1 hover:cursor-pointer hover:bg-theme-action-menu-item-hover rounded-full mt-1" > diff --git a/frontend/src/pages/GeneralSettings/CommunityHub/Authentication/UserItems/index.jsx b/frontend/src/pages/GeneralSettings/CommunityHub/Authentication/UserItems/index.jsx index 03787b02..89457542 100644 --- a/frontend/src/pages/GeneralSettings/CommunityHub/Authentication/UserItems/index.jsx +++ b/frontend/src/pages/GeneralSettings/CommunityHub/Authentication/UserItems/index.jsx @@ -9,6 +9,10 @@ export default function UserItems({ connectionKey }) { const { createdByMe = {}, teamItems = [] } = userItems || {}; if (loading) return ; + const hasItems = (items) => { + return Object.values(items).some((category) => category?.items?.length > 0); + }; + return (
{/* Created By Me Section */} @@ -46,6 +50,11 @@ export default function UserItems({ connectionKey }) {
); })} + {!hasItems(createdByMe) && ( +

+ You haven't created any items yet. +

+ )} @@ -66,7 +75,7 @@ export default function UserItems({ connectionKey }) { {team.teamName} {Object.keys(team.items).map((type) => { - if (team.items[type].items.length === 0) return null; + if (!team.items[type]?.items?.length) return null; return (

@@ -80,6 +89,11 @@ export default function UserItems({ connectionKey }) {

); })} + {!hasItems(team.items) && ( +

+ No items shared with this team yet. +

+ )} ))} diff --git a/frontend/src/pages/GeneralSettings/CommunityHub/Authentication/index.jsx b/frontend/src/pages/GeneralSettings/CommunityHub/Authentication/index.jsx index 98f4450c..7cf0d1c7 100644 --- a/frontend/src/pages/GeneralSettings/CommunityHub/Authentication/index.jsx +++ b/frontend/src/pages/GeneralSettings/CommunityHub/Authentication/index.jsx @@ -46,6 +46,26 @@ function useCommunityHubAuthentication() { } } + async function disconnectHub() { + setLoading(true); + try { + const response = await CommunityHub.updateSettings({ + hub_api_key: "", + }); + if (!response.success) + return showToast("Failed to disconnect from hub", "error"); + setHasChanges(false); + showToast("Disconnected from AnythingLLM Community Hub", "success"); + setOriginalConnectionKey(""); + setConnectionKey(""); + } catch (error) { + console.error(error); + showToast("Failed to disconnect from hub", "error"); + } finally { + setLoading(false); + } + } + useEffect(() => { const fetchData = async () => { setLoading(true); @@ -70,6 +90,7 @@ function useCommunityHubAuthentication() { updateConnectionKey, hasChanges, resetChanges, + disconnectHub, }; } @@ -82,6 +103,7 @@ export default function CommunityHubAuthentication() { updateConnectionKey, hasChanges, resetChanges, + disconnectHub, } = useCommunityHubAuthentication(); if (loading) return ; return ( @@ -149,16 +171,26 @@ export default function CommunityHubAuthentication() { className="border-none bg-theme-settings-input-bg text-theme-text-primary placeholder:text-theme-settings-input-placeholder text-sm rounded-lg focus:outline-primary-button active:outline-primary-button outline-none block w-full p-2.5" placeholder="Enter your AnythingLLM Hub API key" /> -

- You can get your API key from your{" "} - - AnythingLLM Community Hub profile page - - . -

+
+

+ You can get your API key from your{" "} + + AnythingLLM Community Hub profile page + + . +

+ {!!originalConnectionKey && ( + + )} +
diff --git a/frontend/src/pages/GeneralSettings/CommunityHub/ImportItem/Steps/PullAndReview/HubItem/AgentSkill.jsx b/frontend/src/pages/GeneralSettings/CommunityHub/ImportItem/Steps/PullAndReview/HubItem/AgentSkill.jsx index b3d94911..c5f10a65 100644 --- a/frontend/src/pages/GeneralSettings/CommunityHub/ImportItem/Steps/PullAndReview/HubItem/AgentSkill.jsx +++ b/frontend/src/pages/GeneralSettings/CommunityHub/ImportItem/Steps/PullAndReview/HubItem/AgentSkill.jsx @@ -150,7 +150,7 @@ function FileReview({ item }) {