Skip to content

Commit

Permalink
fix(marimekko): use readonly arrays for props as the library does not…
Browse files Browse the repository at this point in the history
… modify them
  • Loading branch information
pcorpet committed Dec 24, 2023
1 parent 71f3496 commit e9ae359
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 11 deletions.
2 changes: 1 addition & 1 deletion packages/marimekko/src/Bars.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { Bar } from './Bar'

interface BarsProps<RawDatum> extends MouseEventHandlers<RawDatum, SVGRectElement> {
isInteractive: boolean
bars: BarDatum<RawDatum>[]
bars: readonly BarDatum<RawDatum>[]
tooltip: CommonProps<RawDatum>['tooltip']
}

Expand Down
2 changes: 1 addition & 1 deletion packages/marimekko/src/hooks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ export const useDataDimensions = <RawDatum>(rawDimensions: DataProps<RawDatum>['
}, [rawDimensions])

export const useStack = <RawDatum>(
dimensionIds: string[],
dimensionIds: readonly string[],
dimensions: Record<string, (datum: RawDatum) => number>,
offset: OffsetId
) =>
Expand Down
18 changes: 9 additions & 9 deletions packages/marimekko/src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@ export type DatumFormattedValue = string | number
export type DatumPropertyAccessor<RawDatum, T> = (datum: RawDatum) => T

export interface DataProps<RawDatum> {
data: RawDatum[]
data: readonly RawDatum[]
id: string | number | DatumPropertyAccessor<RawDatum, DatumId>
value: string | number | DatumPropertyAccessor<RawDatum, DatumValue>
dimensions: {
dimensions: readonly {
id: string
value: string | number | DatumPropertyAccessor<RawDatum, DatumValue>
}[]
Expand Down Expand Up @@ -53,7 +53,7 @@ export interface ComputedDatum<RawDatum> extends NormalizedDatum<RawDatum> {
y: number
width: number
height: number
dimensions: DimensionDatum<RawDatum>[]
dimensions: readonly DimensionDatum<RawDatum>[]
}

export interface BarDatum<RawDatum> extends DimensionDatum<RawDatum> {
Expand All @@ -68,8 +68,8 @@ export type LabelAccessorFunction<RawDatum> = (datum: ComputedDatum<RawDatum>) =
export type LayerId = 'grid' | 'axes' | 'bars' | 'legends'

export interface CustomLayerProps<RawDatum> {
data: ComputedDatum<RawDatum>[]
bars: BarDatum<RawDatum>[]
data: readonly ComputedDatum<RawDatum>[]
bars: readonly BarDatum<RawDatum>[]
thicknessScale: ScaleLinear<number>
dimensionsScale: ScaleLinear<number>
}
Expand Down Expand Up @@ -119,9 +119,9 @@ export type CommonProps<RawDatum> = {
axisBottom?: AxisProps | null
axisLeft?: AxisProps | null
enableGridX: boolean
gridXValues?: number[]
gridXValues?: readonly number[]
enableGridY: boolean
gridYValues?: number[]
gridYValues?: readonly number[]

// colors, theme and border
colors: OrdinalColorScaleConfig<Omit<DimensionDatum<RawDatum>, 'color' | 'fill'>>
Expand All @@ -140,7 +140,7 @@ export type CommonProps<RawDatum> = {
isInteractive: boolean
tooltip: BarTooltipType<RawDatum>

legends: LegendProps[]
legends: readonly LegendProps[]

role: string
}
Expand All @@ -163,5 +163,5 @@ export type SvgProps<RawDatum> = DataProps<RawDatum> &
MotionProps &
SvgDefsAndFill<BarDatum<RawDatum>> &
MouseEventHandlers<RawDatum, SVGRectElement> & {
layers?: Layer<RawDatum>[]
layers?: readonly Layer<RawDatum>[]
}

0 comments on commit e9ae359

Please sign in to comment.