From 14007bb8f2ff02f442ea64e3197637de913eb242 Mon Sep 17 00:00:00 2001 From: Mikael Sand Date: Tue, 27 Aug 2019 00:07:31 +0300 Subject: [PATCH] optimize: remove use of rest props --- xml.js | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/xml.js b/xml.js index 94a4037e..7f7d37dc 100644 --- a/xml.js +++ b/xml.js @@ -56,9 +56,10 @@ export function SvgAst({ ast, override }) { ); } -export function SvgXml({ xml, ...props }) { +export function SvgXml(props) { + const { xml, override } = props; const ast = useMemo(() => xml && parse(xml), [xml]); - return (ast && ) || null; + return (ast && ) || null; } async function fetchText(uri) { @@ -68,14 +69,15 @@ async function fetchText(uri) { const err = console.error.bind(console); -export function SvgUri({ uri, ...props }) { +export function SvgUri(props) { + const { uri } = props; const [xml, setXml] = useState(); useEffect(() => { fetchText(uri) .then(setXml) .catch(err); }, [uri]); - return (xml && ) || null; + return (xml && ) || null; } // Extending Component is required for Animated support. @@ -83,8 +85,7 @@ export function SvgUri({ uri, ...props }) { export class SvgFromXml extends Component { state = {}; componentDidMount() { - const { xml } = this.props; - this.parse(xml); + this.parse(this.props.xml); } componentDidUpdate(prevProps) { const { xml } = this.props; @@ -94,23 +95,24 @@ export class SvgFromXml extends Component { } parse(xml) { try { - const ast = parse(xml); - this.setState({ ast }); + this.setState({ ast: parse(xml) }); } catch (e) { console.error(e); } } render() { - const { ast } = this.state; - return ast ? : null; + const { + props, + state: { ast }, + } = this; + return ast ? : null; } } export class SvgFromUri extends Component { state = {}; componentDidMount() { - const { uri } = this.props; - this.fetch(uri); + this.fetch(this.props.uri); } componentDidUpdate(prevProps) { const { uri } = this.props; @@ -120,15 +122,17 @@ export class SvgFromUri extends Component { } async fetch(uri) { try { - const xml = await fetchText(uri); - this.setState({ xml }); + this.setState({ xml: await fetchText(uri) }); } catch (e) { console.error(e); } } render() { - const { xml } = this.state; - return xml ? : null; + const { + props, + state: { xml }, + } = this; + return xml ? : null; } }