Skip to content

Commit 9a8f03f

Browse files
committedSep 11, 2021
feat(radial-bar): add support for padAngle
1 parent 729ac4c commit 9a8f03f

File tree

6 files changed

+48
-24
lines changed

6 files changed

+48
-24
lines changed
 

‎packages/radial-bar/src/RadialBar.tsx

+4-2
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ const InnerRadialBar = ({
2020
startAngle = svgDefaultProps.startAngle,
2121
endAngle = svgDefaultProps.endAngle,
2222
padding = svgDefaultProps.padding,
23+
padAngle = svgDefaultProps.padAngle,
24+
cornerRadius = svgDefaultProps.cornerRadius,
2325
width,
2426
height,
2527
margin: partialMargin,
@@ -31,7 +33,6 @@ const InnerRadialBar = ({
3133
colors = svgDefaultProps.colors,
3234
borderWidth = svgDefaultProps.borderWidth,
3335
borderColor = svgDefaultProps.borderColor,
34-
cornerRadius = svgDefaultProps.cornerRadius,
3536
enableLabels = svgDefaultProps.enableLabels,
3637
label = svgDefaultProps.label,
3738
labelsSkipAngle = svgDefaultProps.labelsSkipAngle,
@@ -71,10 +72,11 @@ const InnerRadialBar = ({
7172
startAngle,
7273
endAngle,
7374
padding,
75+
padAngle,
76+
cornerRadius,
7477
width: innerWidth,
7578
height: innerHeight,
7679
colors,
77-
cornerRadius,
7880
tracksColor,
7981
})
8082

‎packages/radial-bar/src/hooks.ts

+7-4
Original file line numberDiff line numberDiff line change
@@ -26,21 +26,23 @@ export const useRadialBar = ({
2626
startAngle = commonDefaultProps.startAngle,
2727
endAngle = commonDefaultProps.endAngle,
2828
padding = commonDefaultProps.padding,
29+
padAngle = commonDefaultProps.padAngle,
30+
cornerRadius = commonDefaultProps.cornerRadius,
2931
width,
3032
height,
3133
colors = commonDefaultProps.colors,
32-
cornerRadius = commonDefaultProps.cornerRadius,
3334
tracksColor = commonDefaultProps.tracksColor,
3435
}: {
3536
data: RadialBarDataProps['data']
3637
valueFormat?: RadialBarCommonProps['valueFormat']
3738
startAngle: RadialBarCommonProps['startAngle']
3839
padding: RadialBarCommonProps['padding']
40+
padAngle: RadialBarCommonProps['padAngle']
41+
cornerRadius: RadialBarCommonProps['cornerRadius']
3942
endAngle: RadialBarCommonProps['endAngle']
4043
width: number
4144
height: number
4245
colors: RadialBarCommonProps['colors']
43-
cornerRadius: RadialBarCommonProps['cornerRadius']
4446
tracksColor: RadialBarCommonProps['tracksColor']
4547
}) => {
4648
// using a hook, not because it's costly to compute, but because this is used as
@@ -112,8 +114,9 @@ export const useRadialBar = ({
112114
.endAngle(d => d.endAngle)
113115
.innerRadius(d => d.innerRadius)
114116
.outerRadius(d => d.outerRadius)
115-
.cornerRadius(cornerRadius),
116-
[cornerRadius]
117+
.cornerRadius(cornerRadius)
118+
.padAngle(degreesToRadians(padAngle)),
119+
[cornerRadius, padAngle]
117120
)
118121

119122
const formatValue = useValueFormatter<number>(valueFormat)

‎packages/radial-bar/src/props.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ export const commonDefaultProps = {
88
startAngle: 0,
99
endAngle: 270,
1010
padding: 0.2,
11+
padAngle: 0,
12+
cornerRadius: 0,
1113

1214
enableTracks: true,
1315
tracksColor: 'rgba(0, 0, 0, .15)',
@@ -16,7 +18,6 @@ export const commonDefaultProps = {
1618
enableGridRadii: true,
1719

1820
colors: { scheme: 'nivo' as const },
19-
cornerRadius: 0,
2021
borderWidth: 0,
2122
borderColor: { from: 'color', modifiers: [['darker', 1]] } as InheritedColorConfig<ComputedBar>,
2223

‎packages/radial-bar/src/types.ts

+1
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ export type RadialBarCommonProps = {
7070
colors: OrdinalColorScaleConfig<Omit<ComputedBar, 'color'>>
7171
borderWidth: number
7272
borderColor: InheritedColorConfig<ComputedBar>
73+
padAngle: number
7374
cornerRadius: number
7475

7576
layers: (RadialBarLayerId | RadialBarCustomLayer)[]

‎website/src/data/components/radial-bar/props.ts

+32-16
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,38 @@ const props: ChartProperty[] = [
180180
step: 0.05,
181181
},
182182
},
183+
{
184+
key: 'padAngle',
185+
group: 'Base',
186+
type: 'number',
187+
required: false,
188+
help: 'Padding between each bar.',
189+
flavors: ['svg'],
190+
defaultValue: svgDefaultProps.padAngle,
191+
controlType: 'range',
192+
controlOptions: {
193+
unit: '°',
194+
min: 0,
195+
max: 45,
196+
step: 1,
197+
},
198+
},
199+
{
200+
key: 'cornerRadius',
201+
group: 'Base',
202+
type: 'number',
203+
required: false,
204+
help: 'Rounded corners.',
205+
flavors: ['svg'],
206+
defaultValue: svgDefaultProps.cornerRadius,
207+
controlType: 'range',
208+
controlOptions: {
209+
unit: 'px',
210+
min: 0,
211+
max: 45,
212+
step: 1,
213+
},
214+
},
183215
themeProperty(['svg']),
184216
{
185217
key: 'colors',
@@ -215,22 +247,6 @@ const props: ChartProperty[] = [
215247
defaultValue: svgDefaultProps.borderColor,
216248
controlType: 'inheritedColor',
217249
},
218-
{
219-
key: 'cornerRadius',
220-
group: 'Style',
221-
type: 'number',
222-
required: false,
223-
help: 'Rounded corners.',
224-
flavors: ['svg'],
225-
defaultValue: svgDefaultProps.cornerRadius,
226-
controlType: 'range',
227-
controlOptions: {
228-
unit: 'px',
229-
min: 0,
230-
max: 45,
231-
step: 1,
232-
},
233-
},
234250
{
235251
key: 'enableTracks',
236252
group: 'Tracks',

‎website/src/pages/radial-bar/index.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ const initialProperties: UnmappedRadarProps = {
1919
startAngle: svgDefaultProps.startAngle,
2020
endAngle: svgDefaultProps.endAngle,
2121
padding: svgDefaultProps.padding,
22+
padAngle: svgDefaultProps.padAngle,
23+
cornerRadius: 2,
2224

2325
margin: {
2426
top: 20,
@@ -30,7 +32,6 @@ const initialProperties: UnmappedRadarProps = {
3032
colors: svgDefaultProps.colors,
3133
borderWidth: svgDefaultProps.borderWidth,
3234
borderColor: svgDefaultProps.borderColor,
33-
cornerRadius: 2,
3435

3536
enableTracks: svgDefaultProps.enableTracks,
3637
tracksColor: svgDefaultProps.tracksColor,

0 commit comments

Comments
 (0)
Please sign in to comment.