add bar chart support and other fixes
This commit is contained in:
47
apps/web/src/components/report/chart/ChartProvider.tsx
Normal file
47
apps/web/src/components/report/chart/ChartProvider.tsx
Normal file
@@ -0,0 +1,47 @@
|
||||
import { pick } from "ramda";
|
||||
import { createContext, memo, useContext, useMemo } from "react";
|
||||
|
||||
type ChartContextType = {
|
||||
editMode: boolean;
|
||||
};
|
||||
|
||||
type ChartProviderProps = {
|
||||
children: React.ReactNode;
|
||||
} & ChartContextType;
|
||||
|
||||
const ChartContext = createContext<ChartContextType>({
|
||||
editMode: false,
|
||||
});
|
||||
|
||||
export function ChartProvider({ children, editMode }: ChartProviderProps) {
|
||||
return (
|
||||
<ChartContext.Provider
|
||||
value={useMemo(
|
||||
() => ({
|
||||
editMode,
|
||||
}),
|
||||
[editMode],
|
||||
)}
|
||||
>
|
||||
{children}
|
||||
</ChartContext.Provider>
|
||||
);
|
||||
}
|
||||
|
||||
export function withChartProivder<ComponentProps>(WrappedComponent: React.FC<ComponentProps>) {
|
||||
const WithChartProvider = (props: ComponentProps & ChartContextType) => {
|
||||
return (
|
||||
<ChartProvider {...props}>
|
||||
<WrappedComponent {...props} />
|
||||
</ChartProvider>
|
||||
)
|
||||
}
|
||||
|
||||
WithChartProvider.displayName = `WithChartProvider(${WrappedComponent.displayName ?? WrappedComponent.name ?? 'Component'})`
|
||||
|
||||
return memo(WithChartProvider)
|
||||
}
|
||||
|
||||
export function useChartContext() {
|
||||
return useContext(ChartContext);
|
||||
}
|
||||
Reference in New Issue
Block a user