import React, {useState, useRef, useCallback} from 'react'; import {StyleSheet, ScrollView} from 'react-native'; import {Constants, Colors, View, Text, Button, Incubator, GradientSlider, ColorSliderGroup} from 'react-native-ui-lib'; //eslint-disable-line import {renderBooleanOption} from '../ExampleScreenPresenter'; const VALUE = 20; const NEGATIVE_VALUE = -30; const MIN = 0; const MAX = 350; const INITIAL_MIN = 30; const INITIAL_MAX = 270; const COLOR = Colors.blue30; const GROUP_COLOR = Colors.yellow30; const IncubatorSliderScreen = () => { const [disableRTL, setDisableRTL] = useState(false); const [sliderValue, setSliderValue] = useState(0); const [customSliderValue, setCustomSliderValue] = useState(VALUE); const [negativeSliderValue, setNegativeSliderValue] = useState(NEGATIVE_VALUE); const [sliderMinValue, setSliderMinValue] = useState(INITIAL_MIN); const [sliderMaxValue, setSliderMaxValue] = useState(INITIAL_MAX); const [color, setColor] = useState(COLOR); const [groupColor, setGroupColor] = useState(GROUP_COLOR); const [alpha, setAlpha] = useState(1); const slider = useRef(null); const customSlider = useRef(null); const negativeSlider = useRef(null); const rangeSlider = useRef(null); const resetSliders = useCallback(() => { slider.current?.reset(); customSlider.current?.reset(); rangeSlider.current?.reset(); negativeSlider.current?.reset(); }, []); const onValueChange = useCallback((value: number) => { setSliderValue(value); }, []); const onCustomValueChange = useCallback((value: number) => { setCustomSliderValue(value); }, []); const onNegativeValueChange = useCallback((value: number) => { setNegativeSliderValue(value); }, []); const onRangeChange = useCallback((value: {min: number; max: number}) => { setSliderMaxValue(value.max); setSliderMinValue(value.min); }, []); const onGradientValueChange = useCallback((value: string, _: number) => { setColor(value); }, []); const onGradientAlphaValueChange = useCallback((_: string, alpha: number) => { setAlpha(alpha); }, []); const onGroupValueChange = (value: string) => { setGroupColor(value); }; const renderValuesBox = (min: number, max?: number) => { if (max !== undefined) { return ( min. {min} max. {max} ); } else { return ( value: {min} ); } }; const renderDefaultSliderExample = () => { return ( Default Slider values 0 to 1 {renderValuesBox(sliderValue)} ); }; const renderDisabledSliderExample = () => { return ( Disabled Slider ); }; const renderCustomSliderExample = () => { return ( Custom Slider {renderValuesBox(customSliderValue)} ); }; const renderNegativeSliderExample = () => { return ( Negative values -20 to -100 initial -30 {renderValuesBox(negativeSliderValue)} ); }; const renderRangeSliderExample = () => { return ( Range Slider values 0 to 100 {renderValuesBox(sliderMinValue, sliderMaxValue)} ); }; const renderGradientSlidersExample = () => { return ( Gradient Sliders DEFAULT HUE ); }; const renderColorSliderGroupExample = () => { return ( <> Color Slider Group ); }; return ( Slider