A better version of regex 101
now has 1 sec autosave
1 file changed, +12 -2
+12-2src/App.jsx
| @@ -12,7 +12,7 @@ group1Delim:\\n | ||
| 12 | 12 | function App() { |
| 13 | 13 | const [valid, setValid] = useState(false); |
| 14 | 14 | const [build, setBuild] = useState(""); |
| 15 | - const [edited, setEdited] = useState(false); | |
| 15 | + const [edited, setEdited] = useState(0); | |
| 16 | 16 | const [target, setTarget] = useState(null); |
| 17 | 17 | const regexInput = document.querySelector( |
| 18 | 18 | "#regex-app > div > div.QtZzw > div > div.AUc0W > div.rjodX > div.cO83v > div.h9z_E.T886D > div > div > div:nth-child(1) > textarea" |
| @@ -50,11 +50,21 @@ function App() { | ||
| 50 | 50 | else setValid(true); |
| 51 | 51 | setBuild(parseBuild); |
| 52 | 52 | setTarget(e.target); |
| 53 | + setTimeout( | |
| 54 | + () => | |
| 55 | + setEdited((old) => { | |
| 56 | + console.log(old); | |
| 57 | + return old - 1; | |
| 58 | + }), | |
| 59 | + 1000 | |
| 60 | + ); | |
| 61 | + setEdited(edited + 1); | |
| 53 | 62 | }} |
| 54 | 63 | ></textarea> |
| 55 | 64 | ); |
| 56 | 65 | |
| 57 | 66 | const updateRegex = () => { |
| 67 | + if (edited !== 1) return; | |
| 58 | 68 | const length = regexValue.textContent.length; |
| 59 | 69 | for (let i = 0; i < length; i++) |
| 60 | 70 | regexInput.dispatchEvent( |
| @@ -68,7 +78,7 @@ function App() { | ||
| 68 | 78 | setTimeout(() => target?.focus(), 100); |
| 69 | 79 | }; |
| 70 | 80 | |
| 71 | - useEffect(updateRegex, [build]); | |
| 81 | + useEffect(updateRegex, [edited]); | |
| 72 | 82 | |
| 73 | 83 | return ( |
| 74 | 84 | <div> |