Skip to content

Commit

Permalink
Community hub integration UX improvements (#2727)
Browse files Browse the repository at this point in the history
* add empty states to your account hub page + disconnect button for api key

* lint

* lint

---------

Co-authored-by: timothycarambat <[email protected]>
  • Loading branch information
shatfield4 and timothycarambat authored Nov 26, 2024
1 parent c3d098f commit 9608599
Show file tree
Hide file tree
Showing 4 changed files with 66 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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"
>
<DotsThree size={24} weight="bold" />
</button>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@ export default function UserItems({ connectionKey }) {
const { createdByMe = {}, teamItems = [] } = userItems || {};

if (loading) return <HubItemCardSkeleton />;
const hasItems = (items) => {
return Object.values(items).some((category) => category?.items?.length > 0);
};

return (
<div className="flex flex-col gap-y-8">
{/* Created By Me Section */}
Expand Down Expand Up @@ -46,6 +50,11 @@ export default function UserItems({ connectionKey }) {
</div>
);
})}
{!hasItems(createdByMe) && (
<p className="text-white/60 text-xs text-center mt-4">
You haven&apos;t created any items yet.
</p>
)}
</div>
</div>

Expand All @@ -66,7 +75,7 @@ export default function UserItems({ connectionKey }) {
{team.teamName}
</h3>
{Object.keys(team.items).map((type) => {
if (team.items[type].items.length === 0) return null;
if (!team.items[type]?.items?.length) return null;
return (
<div key={type} className="rounded-lg w-full">
<h3 className="text-white capitalize font-medium mb-3">
Expand All @@ -80,6 +89,11 @@ export default function UserItems({ connectionKey }) {
</div>
);
})}
{!hasItems(team.items) && (
<p className="text-white/60 text-xs text-center mt-4">
No items shared with this team yet.
</p>
)}
</div>
))}
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -70,6 +90,7 @@ function useCommunityHubAuthentication() {
updateConnectionKey,
hasChanges,
resetChanges,
disconnectHub,
};
}

Expand All @@ -82,6 +103,7 @@ export default function CommunityHubAuthentication() {
updateConnectionKey,
hasChanges,
resetChanges,
disconnectHub,
} = useCommunityHubAuthentication();
if (loading) return <FullScreenLoader />;
return (
Expand Down Expand Up @@ -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"
/>
<p className="text-theme-text-secondary text-xs mt-2">
You can get your API key from your{" "}
<a
href={paths.communityHub.profile()}
className="underline text-primary-button"
>
AnythingLLM Community Hub profile page
</a>
.
</p>
<div className="flex items-center justify-between mt-2">
<p className="text-theme-text-secondary text-xs">
You can get your API key from your{" "}
<a
href={paths.communityHub.profile()}
className="underline text-primary-button"
>
AnythingLLM Community Hub profile page
</a>
.
</p>
{!!originalConnectionKey && (
<button
onClick={disconnectHub}
className="text-red-500 hover:text-red-600 text-sm font-medium transition-colors duration-200"
>
Disconnect
</button>
)}
</div>
</div>
</div>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ function FileReview({ item }) {
<div className="flex justify-between items-center">
<button
type="button"
className={`bg-black/70 light:bg-slate-200 rounded-md p-1 text-white/60 light:text-theme-text-secondary text-xs font-mono ${
className={`border-none bg-black/70 light:bg-slate-200 rounded-md p-1 text-white/60 light:text-theme-text-secondary text-xs font-mono ${
index === 0 ? "opacity-50 cursor-not-allowed" : ""
}`}
onClick={handlePrevious}
Expand All @@ -162,7 +162,7 @@ function FileReview({ item }) {
</p>
<button
type="button"
className={`bg-black/70 light:bg-slate-200 rounded-md p-1 text-white/60 light:text-theme-text-secondary text-xs font-mono ${
className={`border-none bg-black/70 light:bg-slate-200 rounded-md p-1 text-white/60 light:text-theme-text-secondary text-xs font-mono ${
index === files.length - 1 ? "opacity-50 cursor-not-allowed" : ""
}`}
onClick={handleNext}
Expand All @@ -171,11 +171,15 @@ function FileReview({ item }) {
</button>
</div>
<span
className="whitespace-pre-line flex flex-col gap-y-1 text-sm leading-[20px] max-h-[500px] overflow-y-auto hljs"
className="whitespace-pre-line flex flex-col gap-y-1 text-sm leading-[20px] max-h-[500px] overflow-y-auto hljs text-theme-text-primary"
dangerouslySetInnerHTML={{
__html: DOMPurify.sanitize(
renderMarkdown(
`\`\`\`${fileMarkup(file)}\n${file.content}\n\`\`\``
`\`\`\`${fileMarkup(file)}\n${
fileMarkup(file) === "markdown"
? file.content.replace(/```/g, "~~~") // Escape triple backticks in markdown
: file.content
}\n\`\`\``
)
),
}}
Expand Down

0 comments on commit 9608599

Please sign in to comment.