@seasketch/geoprocessing
Version:
Geoprocessing and reporting framework for SeaSketch 2.0
27 lines (24 loc) • 832 B
text/typescript
import { SketchProperties, UserAttribute } from "../types/index.js";
import { useContext } from "react";
import { ReportContext } from "../context/index.js";
function useSketchProperties(): [
SketchProperties,
(exportId: string, defaultValue?: any) => any,
] {
const context = useContext(ReportContext);
if (!context) {
throw new Error("ReportContext could not be found.");
}
context.sketchProperties.userAttributes =
context.sketchProperties.userAttributes || ([] as UserAttribute[]);
return [
context.sketchProperties,
(exportId: string, defaultValue?: any): any => {
const userAttribute = context.sketchProperties.userAttributes.find(
(attr) => attr.exportId === exportId,
);
return userAttribute?.value || defaultValue;
},
];
}
export default useSketchProperties;