Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 4 additions & 12 deletions typescript/packages/jumble/src/contexts/CharmManagerContext.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,28 +17,20 @@ export const CharmsManagerProvider: React.FC<{ children: React.ReactNode }> = (
{ children },
) => {
const { replicaName } = useParams<{ replicaName: string }>();
const [effectiveReplica, setEffectiveReplica] = React.useState<string>(
() => localStorage.getItem("lastReplica") || "common-knowledge",
);
const { user } = useAuthentication();

React.useEffect(() => {
const charmManager = useMemo(() => {
console.log("CharmManagerProvider", replicaName);

if (replicaName) {
// When a replica is provided in the URL, use it and save it as the last visited
setEffectiveReplica(replicaName);
localStorage.setItem("lastReplica", replicaName);
}
}, [replicaName]);

const charmManager = useMemo(() => {
return user ? new CharmManager(effectiveReplica, user) : null;
}, [effectiveReplica, user]);
return user && replicaName ? new CharmManager(replicaName, user) : null;
}, [replicaName, user]);

return (
<CharmManagerContext.Provider
value={{ charmManager, currentReplica: effectiveReplica }}
value={{ charmManager, currentReplica: replicaName || "" }}
>
{children}
</CharmManagerContext.Provider>
Expand Down
9 changes: 7 additions & 2 deletions typescript/packages/jumble/src/main.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,11 @@ import SpellbookLaunchView from "./views/spellbook/SpellbookLaunchView.tsx";
import { ActionManagerProvider } from "./contexts/ActionManagerContext.tsx";
import { ROUTES } from "./routes.ts";

const ReplicaRedirect = () => {
const savedReplica = localStorage.getItem("replica");
return <Navigate to={savedReplica || ROUTES.defaultReplica} replace />;
};

setupIframe();

createRoot(document.getElementById("root")!).render(
Expand All @@ -37,10 +42,10 @@ createRoot(document.getElementById("root")!).render(
<LanguageModelProvider>
<Router>
<Routes>
{/* Redirect root to common-knowledge */}
{/* Redirect root to saved replica or default */}
<Route
path={ROUTES.root}
element={<Navigate to={ROUTES.defaultReplica} replace />}
element={<ReplicaRedirect />}
/>

<Route
Expand Down