t2-model-skinner/src/useModelViewer.ts
2022-12-02 22:26:17 -08:00

17 lines
529 B
TypeScript

import React, { useContext } from "react";
import { ModelViewerElement } from "@google/model-viewer";
export const ModelViewerContext = React.createContext<{
modelViewer: ModelViewerElement;
model: NonNullable<ModelViewerElement["model"]>;
isLoaded: boolean;
} | null>(null);
ModelViewerContext.displayName = "ModelViewerContext";
export default function useModelViewer() {
const context = useContext(ModelViewerContext);
if (!context) {
throw new Error("No ModelViewerContext.Provider");
}
return context;
}