add bar chart support and other fixes

This commit is contained in:
Carl-Gerhard Lindesvärd
2023-10-27 20:37:08 +02:00
parent d8c587ef90
commit ed7ed2ab24
26 changed files with 713 additions and 226 deletions

View 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);
}