diff options
| author | 2022-12-11 16:00:23 +0100 | |
|---|---|---|
| committer | 2022-12-11 16:00:23 +0100 | |
| commit | 4b8d7bd952dd97091d1baddeab10213e9c38cef3 (patch) | |
| tree | 368b80e82590ca85c031b9d720dc7dd7c4fbbb6b /web/source/settings/components/form | |
| parent | [docs] Serve static assets with nginx (#1251) (diff) | |
| download | gotosocial-4b8d7bd952dd97091d1baddeab10213e9c38cef3.tar.xz | |
[frogend] Emoji copy "Steal this look" (#1222)
* split emoji into local and remote, allow looking up remote emoji by toot url
* optimize some/all filtering
* fix local emoji routes
* implement copy action
* shortcode validation, don't wipe form on error
* copy & disable PATCH
* remove local toot acceptance for testing
* unused import
* parse emoji from account and status, get web_url from status uri
* fix url parse
* submit button loading info
* actually send category
* code cleanup, distinguish between account and status responses
* use loading icons
* fix loading icon on federation page
* require Loading element
* remove unused require
* query explanation, small accessibility tweaks
Diffstat (limited to 'web/source/settings/components/form')
| -rw-r--r-- | web/source/settings/components/form/text.jsx | 16 | 
1 files changed, 8 insertions, 8 deletions
| diff --git a/web/source/settings/components/form/text.jsx b/web/source/settings/components/form/text.jsx index a392239dc..c24628dd7 100644 --- a/web/source/settings/components/form/text.jsx +++ b/web/source/settings/components/form/text.jsx @@ -20,17 +20,14 @@  const React = require("react"); -module.exports = function useTextInput({name, Name}, {validator} = {}) { -	const [text, setText] = React.useState(""); +module.exports = function useTextInput({name, Name}, {validator, defaultValue=""} = {}) { +	const [text, setText] = React.useState(defaultValue); +	const [valid, setValid] = React.useState(true);  	const textRef = React.useRef(null);  	function onChange(e) {  		let input = e.target.value;  		setText(input); - -		if (validator) { -			validator(input); -		}  	}  	function reset() { @@ -39,7 +36,9 @@ module.exports = function useTextInput({name, Name}, {validator} = {}) {  	React.useEffect(() => {  		if (validator) { -			textRef.current.setCustomValidity(validator(text)); +			let res = validator(text); +			setValid(res == ""); +			textRef.current.setCustomValidity(res);  			textRef.current.reportValidity();  		}  	}, [text, textRef, validator]); @@ -50,7 +49,8 @@ module.exports = function useTextInput({name, Name}, {validator} = {}) {  		{  			[name]: text,  			[`${name}Ref`]: textRef, -			[`set${Name}`]: setText +			[`set${Name}`]: setText, +			[`${name}Valid`]: valid  		}  	];  };
\ No newline at end of file | 
