Skip to content

Commit 377b3d7

Browse files
committed
redirect to last known replica
1 parent 3d8b119 commit 377b3d7

File tree

2 files changed

+11
-14
lines changed

2 files changed

+11
-14
lines changed

typescript/packages/jumble/src/contexts/CharmManagerContext.tsx

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,28 +17,20 @@ export const CharmsManagerProvider: React.FC<{ children: React.ReactNode }> = (
1717
{ children },
1818
) => {
1919
const { replicaName } = useParams<{ replicaName: string }>();
20-
const [effectiveReplica, setEffectiveReplica] = React.useState<string>(
21-
() => localStorage.getItem("lastReplica") || "common-knowledge",
22-
);
2320
const { user } = useAuthentication();
2421

25-
React.useEffect(() => {
22+
const charmManager = useMemo(() => {
2623
console.log("CharmManagerProvider", replicaName);
2724

2825
if (replicaName) {
29-
// When a replica is provided in the URL, use it and save it as the last visited
30-
setEffectiveReplica(replicaName);
3126
localStorage.setItem("lastReplica", replicaName);
3227
}
33-
}, [replicaName]);
34-
35-
const charmManager = useMemo(() => {
36-
return user ? new CharmManager(effectiveReplica, user) : null;
37-
}, [effectiveReplica, user]);
28+
return user && replicaName ? new CharmManager(replicaName, user) : null;
29+
}, [replicaName, user]);
3830

3931
return (
4032
<CharmManagerContext.Provider
41-
value={{ charmManager, currentReplica: effectiveReplica }}
33+
value={{ charmManager, currentReplica: replicaName || "" }}
4234
>
4335
{children}
4436
</CharmManagerContext.Provider>

typescript/packages/jumble/src/main.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,11 @@ import SpellbookLaunchView from "./views/spellbook/SpellbookLaunchView.tsx";
2626
import { ActionManagerProvider } from "./contexts/ActionManagerContext.tsx";
2727
import { ROUTES } from "./routes.ts";
2828

29+
const ReplicaRedirect = () => {
30+
const savedReplica = localStorage.getItem("replica");
31+
return <Navigate to={savedReplica || ROUTES.defaultReplica} replace />;
32+
};
33+
2934
setupIframe();
3035

3136
createRoot(document.getElementById("root")!).render(
@@ -37,10 +42,10 @@ createRoot(document.getElementById("root")!).render(
3742
<LanguageModelProvider>
3843
<Router>
3944
<Routes>
40-
{/* Redirect root to common-knowledge */}
45+
{/* Redirect root to saved replica or default */}
4146
<Route
4247
path={ROUTES.root}
43-
element={<Navigate to={ROUTES.defaultReplica} replace />}
48+
element={<ReplicaRedirect />}
4449
/>
4550

4651
<Route

0 commit comments

Comments
 (0)