feat(characters): use local character catalog
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
"use client";
|
||||
|
||||
import { createContext, type ReactNode, useContext } from "react";
|
||||
|
||||
import {
|
||||
DEFAULT_CHARACTER,
|
||||
type CharacterProfile,
|
||||
} from "@/data/constants/character";
|
||||
import { getCharacterRoutes, type CharacterRoutes } from "@/router/routes";
|
||||
|
||||
const CharacterContext = createContext<CharacterProfile>(DEFAULT_CHARACTER);
|
||||
|
||||
export interface CharacterProviderProps {
|
||||
character: CharacterProfile;
|
||||
children: ReactNode;
|
||||
}
|
||||
|
||||
export function CharacterProvider({
|
||||
character,
|
||||
children,
|
||||
}: CharacterProviderProps) {
|
||||
return (
|
||||
<CharacterContext.Provider value={character}>
|
||||
{children}
|
||||
</CharacterContext.Provider>
|
||||
);
|
||||
}
|
||||
|
||||
export function useActiveCharacter(): CharacterProfile {
|
||||
return useContext(CharacterContext);
|
||||
}
|
||||
|
||||
export function useActiveCharacterRoutes(): CharacterRoutes {
|
||||
return getCharacterRoutes(useActiveCharacter().slug);
|
||||
}
|
||||
Reference in New Issue
Block a user