@yogiswara/honcho-editor-ui 3.6.0 → 3.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -4,19 +4,21 @@ import { Stack, Slider, Typography, Box } from "@mui/material";
|
|
|
4
4
|
import useHonchoTypography from "../../themes/honchoTheme";
|
|
5
5
|
import useColors from '../../themes/colors';
|
|
6
6
|
import useSliderEvents from "../editor/sliderComponents/useSliderEvents";
|
|
7
|
-
const formatValue = (value) => {
|
|
7
|
+
const formatValue = (value, isZeroBased = false) => {
|
|
8
|
+
if (isZeroBased)
|
|
9
|
+
return value.toString();
|
|
8
10
|
if (value > 0)
|
|
9
11
|
return `+${value}`;
|
|
10
12
|
if (value < 0)
|
|
11
13
|
return value.toString();
|
|
12
14
|
return "0";
|
|
13
15
|
};
|
|
14
|
-
function useAdjustmentField(propValue, setValue, onDragStart, onDragEnd, isBatchMode) {
|
|
15
|
-
const [local, setLocal] = useState(formatValue(propValue));
|
|
16
|
+
function useAdjustmentField(propValue, setValue, onDragStart, onDragEnd, isBatchMode, isZeroBased = false) {
|
|
17
|
+
const [local, setLocal] = useState(formatValue(propValue, isZeroBased));
|
|
16
18
|
const [started, setStarted] = useState(false);
|
|
17
19
|
// keep sync with external changes
|
|
18
20
|
useEffect(() => {
|
|
19
|
-
setLocal(formatValue(propValue));
|
|
21
|
+
setLocal(formatValue(propValue, isZeroBased));
|
|
20
22
|
}, [propValue]);
|
|
21
23
|
const handleChange = (e, min, max) => {
|
|
22
24
|
const raw = e.target.value;
|
|
@@ -56,7 +58,7 @@ function useAdjustmentField(propValue, setValue, onDragStart, onDragEnd, isBatch
|
|
|
56
58
|
if (isNaN(num))
|
|
57
59
|
num = 0;
|
|
58
60
|
num = Math.max(min, Math.min(max, num));
|
|
59
|
-
setLocal(formatValue(num));
|
|
61
|
+
setLocal(formatValue(num, isZeroBased));
|
|
60
62
|
setValue(num);
|
|
61
63
|
}
|
|
62
64
|
// end batch when user leaves field
|
|
@@ -82,7 +84,7 @@ export default function HSliderDetailsMobile(props) {
|
|
|
82
84
|
const clarityRef = useSliderEvents(props.onDragStart, props.onDragEnd, props.isBatchMode);
|
|
83
85
|
const sharpnessRef = useSliderEvents(props.onDragStart, props.onDragEnd, props.isBatchMode);
|
|
84
86
|
const clarityInput = useAdjustmentField(props.clarityScore, (val) => props.onClarityChange("clarityScore", val), props.onDragStart, props.onDragEnd, props.isBatchMode);
|
|
85
|
-
const sharpnessInput = useAdjustmentField(props.sharpnessScore, (val) => props.onSharpnessChange("sharpnessScore", val), props.onDragStart, props.onDragEnd, props.isBatchMode);
|
|
87
|
+
const sharpnessInput = useAdjustmentField(props.sharpnessScore, (val) => props.onSharpnessChange("sharpnessScore", val), props.onDragStart, props.onDragEnd, props.isBatchMode, true);
|
|
86
88
|
return (_jsx(_Fragment, { children: _jsxs(Stack, { spacing: 0, direction: "column", sx: { width: '100%', paddingX: 1, m: "0px", userSelect: 'none' }, onTouchStart: (e) => e.stopPropagation(), children: [_jsxs(Stack, { direction: "row", justifyContent: "space-between", alignItems: "center", sx: { pt: '10px', pb: '0px' }, children: [_jsx(Typography, { sx: { ...typography.bodyMedium, color: colors.surface, userSelect: 'none' }, onDoubleClick: clarityInput.handleDoubleClick, children: "Clarity" }), _jsx(Typography, { sx: {
|
|
87
89
|
...typography.bodyMedium, // Use your standard typography
|
|
88
90
|
color: colors.surface,
|
|
@@ -171,5 +173,5 @@ export default function HSliderDetailsMobile(props) {
|
|
|
171
173
|
ref: sharpnessRef,
|
|
172
174
|
onDoubleClick: sharpnessInput.handleDoubleClick
|
|
173
175
|
}
|
|
174
|
-
}, size: "small", value: props.sharpnessScore, step: 1, min:
|
|
176
|
+
}, size: "small", value: props.sharpnessScore, step: 1, min: 0, max: 100, onChange: (_event, newValue) => props.onSharpnessChange("sharpnessScore", newValue) })] })] }) }));
|
|
175
177
|
}
|