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:
@@ -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;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user