Skip to content

Commit

Permalink
refactor: change types (#1132)
Browse files Browse the repository at this point in the history
  • Loading branch information
dangreen authored Dec 18, 2022
1 parent aa69514 commit dee38b6
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 22 deletions.
6 changes: 3 additions & 3 deletions src/chart.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import React, { useEffect, useRef, forwardRef } from 'react';
import { Chart as ChartJS } from 'chart.js';
import type { ChartType, DefaultDataPoint } from 'chart.js';

import type { ForwardedRef, ChartProps, TypedChartComponent } from './types.js';
import type { ForwardedRef, ChartProps, BaseChartComponent } from './types.js';
import {
reforwardRef,
cloneData,
Expand Down Expand Up @@ -107,6 +107,6 @@ function ChartComponent<
);
}

export const Chart: TypedChartComponent = forwardRef(
export const Chart: BaseChartComponent = forwardRef(
ChartComponent
) as TypedChartComponent;
) as BaseChartComponent;
2 changes: 1 addition & 1 deletion src/typedCharts.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ function createTypedChart<T extends ChartType>(

return forwardRef<ChartJSOrUndefined<T>, Omit<ChartProps<T>, 'type'>>(
(props, ref) => <Chart {...props} ref={ref} type={type} />
) as TypedChartComponent<T, true>;
) as TypedChartComponent<T>;
}

export const Line = /* #__PURE__ */ createTypedChart('line', LineController);
Expand Down
36 changes: 18 additions & 18 deletions src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,21 +73,21 @@ export type ChartJSOrUndefined<
TLabel = unknown
> = Chart<TType, TData, TLabel> | undefined;

export type TypedChartComponent<
TDefaultType extends ChartType = ChartType,
TOmitType = false
> = TOmitType extends true
? <TData = DefaultDataPoint<TDefaultType>, TLabel = unknown>(
props: Omit<ChartProps<TDefaultType, TData, TLabel>, 'type'> & {
ref?: ForwardedRef<ChartJSOrUndefined<TDefaultType, TData, TLabel>>;
}
) => JSX.Element
: <
TType extends ChartType = ChartType,
TData = DefaultDataPoint<TType>,
TLabel = unknown
>(
props: ChartProps<TType, TData, TLabel> & {
ref?: ForwardedRef<ChartJSOrUndefined<TType, TData, TLabel>>;
}
) => JSX.Element;
export type BaseChartComponent = <
TType extends ChartType = ChartType,
TData = DefaultDataPoint<TType>,
TLabel = unknown
>(
props: ChartProps<TType, TData, TLabel> & {
ref?: ForwardedRef<ChartJSOrUndefined<TType, TData, TLabel>>;
}
) => JSX.Element;

export type TypedChartComponent<TDefaultType extends ChartType> = <
TData = DefaultDataPoint<TDefaultType>,
TLabel = unknown
>(
props: Omit<ChartProps<TDefaultType, TData, TLabel>, 'type'> & {
ref?: ForwardedRef<ChartJSOrUndefined<TDefaultType, TData, TLabel>>;
}
) => JSX.Element;

0 comments on commit dee38b6

Please sign in to comment.