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
This commit is contained in:
Johannes Kirschbauer
2025-07-17 10:51:32 +02:00
parent b32e61bb6d
commit a548851245

View File

@@ -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;
};