PluginProbe
Tableberg – Simple Gutenberg Table Block / 1.1.5
Tableberg – Simple Gutenberg Table Block v1.1.5
1.1.5 1.1.4 1.1.3 1.1.2 1.1.1 1.1.0 1.0.5 1.0.4 1.0.3 1.0.2 1.0.1 trunk 0.0.2 0.2.1 0.3.2 0.3.3 0.4.1 0.5.0 0.5.1 0.5.2 0.5.3 0.5.4 0.5.5 0.5.6 0.5.7 All 42 releases
tableberg / admin / src / components / NumberSettings.jsx

NumberSettings.jsx in Tableberg – Simple Gutenberg Table Block 1.1.5, at admin/src/components/NumberSettings.jsx

60 lines 2.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 import { debounce } from "lodash";
2 import { useState, useEffect } from "react";
3 import BoxContent from "./BoxContent/BoxContent";
4 const debouncedOnValueChange = debounce((val, setVal) => {
5 setVal(val);
6 }, 500);
7 function NumberSettings({ title, content, name, value, onValueChange }) {
8 const [numValue, setNumValue] = useState(value);
9 const [debouncedValue, setDebouncedValue] = useState(numValue);
10
11 useEffect(() => {
12 onValueChange(debouncedValue, name);
13 }, [debouncedValue]);
14 useEffect(() => {
15 debouncedOnValueChange(numValue, setDebouncedValue);
16 }, [numValue]);
17
18 return (
19 <div className="tableberg-number-settings tableberg-settings-card">
20 <BoxContent title={title} content={content}>
21 {name !== "font_size" && (
22 <button
23 onClick={() => {
24 if (numValue > 1) {
25 setNumValue(numValue - 1);
26 }
27 }}
28 className="tableberg-number-settings-value-button tableberg-number-settings-decrease-value-button"
29 >
30 -
31 </button>
32 )}
33 <input
34 value={numValue}
35 type="number"
36 min={1}
37 className="tableberg-number-settings-value"
38 onChange={e => {
39 setNumValue(Number(e.target.value));
40 }}
41 />
42 {name !== "font_size" && (
43 <button
44 onClick={() => {
45 setNumValue(numValue + 1);
46 }}
47 className="tableberg-number-settings-value-button tableberg-number-settings-increase-value-button"
48 >
49 +
50 </button>
51 )}
52 {name === "font_size" && (
53 <div className="tableberg-number-unit">{"PX"}</div>
54 )}
55 </BoxContent>
56 </div>
57 );
58 }
59 export default NumberSettings;
60