Skip to content

Commit 6f77f53

Browse files
feat: slider barclick and disabled prop added
1 parent 6359c22 commit 6f77f53

4 files changed

Lines changed: 22 additions & 3 deletions

File tree

packages/headless/src/slider/useSlider.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { withHeadless } from '@primereact/core/headless';
22
import { useEventListener } from '@primereact/hooks';
33
import { useSliderProps } from '@primereact/types/shared/slider';
4-
import { focus, getWindowScrollLeft, getWindowScrollTop, isRTL } from '@primeuix/utils';
4+
import { focus, getAttribute, getWindowScrollLeft, getWindowScrollTop, isRTL } from '@primeuix/utils';
55
import * as React from 'react';
66
import { defaultProps } from './useSlider.props';
77

@@ -216,6 +216,17 @@ export const useSlider = withHeadless({
216216
}
217217
};
218218

219+
const onBarClick = (event: React.MouseEvent) => {
220+
if (props.disabled) {
221+
return;
222+
}
223+
224+
if (getAttribute(event.target as Element, 'data-pc-name') !== 'sliderthumb') {
225+
updateDomData();
226+
handleValue(event);
227+
}
228+
};
229+
219230
const [bindThumbMouseMoveListener, unbindThumbMouseMoveListener] = useEventListener({
220231
type: 'mousemove',
221232
listener: (event: Event) => onDrag(event as unknown as React.MouseEvent)
@@ -372,6 +383,7 @@ export const useSlider = withHeadless({
372383
onDragEnd,
373384
onMouseDown,
374385
onKeyDown,
386+
onBarClick,
375387
rangeStyle,
376388
handleThumbStyle,
377389
rangeStartHandleStyle,

packages/primereact/src/slider/Slider.props.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,6 @@ import type { SliderProps } from '@primereact/types/shared/slider';
33

44
export const defaultProps: SliderProps = {
55
...HeadlessSlider.defaultProps,
6-
as: 'div'
6+
as: 'div',
7+
disabled: undefined
78
};

packages/primereact/src/slider/Slider.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ export const Slider = withComponent({
2525
const rootProps = mergeProps(
2626
{
2727
id,
28-
className: cx('root')
28+
className: cx('root'),
29+
onClick: instance.onBarClick
2930
},
3031
ptmi('root')
3132
);

packages/types/src/shared/slider/Slider.types.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,11 @@ export interface SliderChangeEvent extends useSliderChangeEvent<React.SyntheticE
4949
* Defines valid properties in Slider component.
5050
*/
5151
export interface SliderProps extends BaseComponentProps<SliderInstance, Omit<useSliderProps, 'onValueChange'>, SliderPassThrough> {
52+
/**
53+
* When present, it specifies that the element should be disabled.
54+
* @default false
55+
*/
56+
disabled?: boolean | undefined;
5257
/**
5358
* Callback fired when the ToggleButton's pressed state changes.
5459
* @param event The event that triggered the change.

0 commit comments

Comments
 (0)