From a548851245b07fc616a3010a3eb3e407ba1fc410 Mon Sep 17 00:00:00 2001 From: Johannes Kirschbauer Date: Thu, 17 Jul 2025 10:51:32 +0200 Subject: [PATCH] ui/hooks: useMaybeClanUri init hook Needed for pre-rendering the cube scene with clanURI = null When it later receives a value scene will get populated without completely re-rendering --- pkgs/clan-app/ui/src/hooks/clan.ts | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/pkgs/clan-app/ui/src/hooks/clan.ts b/pkgs/clan-app/ui/src/hooks/clan.ts index fe1a6db5f..faf1953fa 100644 --- a/pkgs/clan-app/ui/src/hooks/clan.ts +++ b/pkgs/clan-app/ui/src/hooks/clan.ts @@ -1,6 +1,6 @@ import { callApi } from "@/src/hooks/api"; import { addClanURI, setActiveClanURI } from "@/src/stores/clan"; -import { Params, Navigator } from "@solidjs/router"; +import { Params, Navigator, useParams } from "@solidjs/router"; export const selectClanFolder = async () => { const req = callApi("get_clan_folder", {}); @@ -27,3 +27,19 @@ export const navigateToClan = (navigate: Navigator, uri: string) => { export const clanURIParam = (params: Params) => { return window.atob(params.clanURI); }; + +export const useMaybeClanURI = () => { + const params = useParams(); + + if (!params.clanURI) { + return null; + } + + const clanURI = clanURIParam(params); + + if (!clanURI) { + throw new Error("Could not decode clan URI from params: " + params.clanURI); + } + + return clanURI; +};