diff --git a/superset-frontend/src/components/BootstrapSliderWrapper/index.jsx b/superset-frontend/src/components/Slider/Slider.stories.tsx
similarity index 56%
rename from superset-frontend/src/components/BootstrapSliderWrapper/index.jsx
rename to superset-frontend/src/components/Slider/Slider.stories.tsx
index 5d2a5c8da13..e5eea76304a 100644
--- a/superset-frontend/src/components/BootstrapSliderWrapper/index.jsx
+++ b/superset-frontend/src/components/Slider/Slider.stories.tsx
@@ -17,14 +17,41 @@
* under the License.
*/
import React from 'react';
-import ReactBootstrapSlider from 'react-bootstrap-slider';
-import 'bootstrap-slider/dist/css/bootstrap-slider.min.css';
-import './BootstrapSliderWrapper.less';
+import Slider, { SliderSingleProps } from '.';
-export default function BootstrapSliderWrapper(props) {
- return (
-
-
-
- );
-}
+export default {
+ title: 'Slider',
+ component: Slider,
+};
+
+export const InteractiveSlider = (args: SliderSingleProps) => (
+
+);
+
+InteractiveSlider.args = {
+ min: 0,
+ max: 100,
+ defaultValue: 70,
+ step: 1,
+};
+
+InteractiveSlider.argTypes = {
+ onChange: { action: 'onChange' },
+ disabled: {
+ control: { type: 'boolean' },
+ },
+ reverse: {
+ control: { type: 'boolean' },
+ },
+ vertical: {
+ control: { type: 'boolean' },
+ },
+};
+
+InteractiveSlider.story = {
+ parameters: {
+ knobs: {
+ disable: true,
+ },
+ },
+};
diff --git a/superset-frontend/src/components/BootstrapSliderWrapper/BootstrapSliderWrapper.less b/superset-frontend/src/components/Slider/index.tsx
similarity index 71%
rename from superset-frontend/src/components/BootstrapSliderWrapper/BootstrapSliderWrapper.less
rename to superset-frontend/src/components/Slider/index.tsx
index afc9bac586b..904833e174f 100644
--- a/superset-frontend/src/components/BootstrapSliderWrapper/BootstrapSliderWrapper.less
+++ b/superset-frontend/src/components/Slider/index.tsx
@@ -16,12 +16,14 @@
* specific language governing permissions and limitations
* under the License.
*/
-@import '../../../stylesheets/less/variables.less';
+import React from 'react';
+import AntDSlider, {
+ SliderSingleProps,
+ SliderRangeProps,
+} from 'antd/lib/slider';
-.BootstrapSliderWrapper .slider-selection {
- background: @gray-bg;
-}
+export { SliderSingleProps, SliderRangeProps };
-.BootstrapSliderWrapper .slider-handle {
- background: @gray-light;
+export default function Slider(props: SliderSingleProps | SliderRangeProps) {
+ return ;
}
diff --git a/superset-frontend/src/explore/components/controls/SliderControl.jsx b/superset-frontend/src/explore/components/controls/SliderControl.jsx
index c23d1c91306..3823c91ce9a 100644
--- a/superset-frontend/src/explore/components/controls/SliderControl.jsx
+++ b/superset-frontend/src/explore/components/controls/SliderControl.jsx
@@ -18,8 +18,7 @@
*/
import React from 'react';
import PropTypes from 'prop-types';
-
-import BootstrapSliderWrapper from 'src/components/BootstrapSliderWrapper';
+import Slider from 'src/components/Slider';
import ControlHeader from 'src/explore/components/ControlHeader';
const propTypes = {
@@ -32,17 +31,11 @@ const defaultProps = {
};
export default function SliderControl(props) {
- // This wouldn't be necessary but might as well
return (
-
+ <>
- {
- props.onChange(obj.target.value);
- }}
- />
-
+
+ >
);
}