diff --git a/frontend/libs/api/src/index.ts b/frontend/libs/api/src/index.ts
index baae8a30a9..cd50eea609 100644
--- a/frontend/libs/api/src/index.ts
+++ b/frontend/libs/api/src/index.ts
@@ -1,4 +1,5 @@
export * from "./lib/enums/index.js";
+export * from "./lib/models/Users.js";
export * from "./lib/AnalyticsApi.js";
export * from "./lib/BillingApi.js";
export * from "./lib/EngineApi.js";
diff --git a/frontend/libs/components/settings-modal/src/lib/panes/AccountSettings/AccountSettingsPane.tsx b/frontend/libs/components/settings-modal/src/lib/panes/AccountSettings/AccountSettingsPane.tsx
index 0d7ce097e8..b561a2e6e7 100644
--- a/frontend/libs/components/settings-modal/src/lib/panes/AccountSettings/AccountSettingsPane.tsx
+++ b/frontend/libs/components/settings-modal/src/lib/panes/AccountSettings/AccountSettingsPane.tsx
@@ -3,6 +3,7 @@ import { Button } from "@storyteller/ui-button";
import { Input } from "@storyteller/ui-input";
import { SoraAccountButton } from "./SoraAccountButton";
import { SoraAccountBlock } from "./SoraAccountBlock";
+import { ArtcraftAccountBlock } from "./ArtcraftAccountBlock";
interface AccountInfo {
username: string;
@@ -48,8 +49,11 @@ export const AccountSettingsPane = () => {
*/}
+
+
+
{/*
diff --git a/frontend/libs/components/settings-modal/src/lib/panes/AccountSettings/ArtcraftAccountBlock.tsx b/frontend/libs/components/settings-modal/src/lib/panes/AccountSettings/ArtcraftAccountBlock.tsx
new file mode 100644
index 0000000000..bbf37db101
--- /dev/null
+++ b/frontend/libs/components/settings-modal/src/lib/panes/AccountSettings/ArtcraftAccountBlock.tsx
@@ -0,0 +1,77 @@
+import { useState, useEffect } from "react";
+import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
+import { faSpinnerThird } from "@fortawesome/pro-solid-svg-icons";
+import { Button } from "@storyteller/ui-button";
+
+import { UsersApi } from "@storyteller/api";
+import { UserInfo } from "@storyteller/api";
+
+const usersApi = new UsersApi();
+
+export const ArtcraftAccountBlock = () => {
+ const [artcraftSession, setArtcraftSession] = useState(undefined);
+ const [isLoggedIn, setIsLoggedIn] = useState(false);
+ const [isCheckingArtcraftSession, setIsCheckingArtcraftSession] = useState(false);
+
+ useEffect(() => {
+ const fetchSession = async () => {
+ setIsCheckingArtcraftSession(true);
+ try {
+ const result = await usersApi.GetSession();
+ console.log(">>> result", result);
+ setArtcraftSession(result?.data?.user);
+ setIsLoggedIn(result?.data?.loggedIn || false);
+ } catch (e) {
+ console.error("Error fetching Artcraft session", e);
+ setArtcraftSession(undefined);
+ setIsLoggedIn(false);
+ } finally {
+ setIsCheckingArtcraftSession(false);
+ }
+ };
+ fetchSession();
+ }, []);
+
+ const handleArtcraftButton = async () => {
+ if (isCheckingArtcraftSession) return;
+ if (isLoggedIn) {
+ setIsCheckingArtcraftSession(true);
+ await usersApi.Logout();
+ setArtcraftSession(undefined);
+ setIsLoggedIn(false);
+ setIsCheckingArtcraftSession(false);
+ } else {
+ console.log("TODO");
+ }
+ };
+
+ return (
+
+
ArtCraft Account:
+
{artcraftSession?.display_name}
+
+
+ )
+}
\ No newline at end of file