diff --git a/lib/examples/react-typescript.tsx b/lib/examples/react-typescript.tsx new file mode 100644 index 0000000..0eeba5b --- /dev/null +++ b/lib/examples/react-typescript.tsx @@ -0,0 +1,48 @@ +import React, { useState, useEffect } from 'react'; + +const MyLovelyComponent: React.FC = () => { + const [userInput, setUserInput] = useState(''); + const [items, setItems] = useState([]); + const [filteredItems, setFilteredItems] = useState([]); + + const handleChange = (event: React.ChangeEvent) => { + setUserInput(event.target.value); + }; + + // Simulate fetching data + useEffect(() => { + const fetchData = async () => { + const data = ['item1', 'item2', 'item3', 'item4', 'item5']; + setItems(data); + }; + fetchData(); + }, []); + + // Filter items based on user input (Performance bottleneck) + useEffect(() => { + const result = items.filter(item => item.includes(userInput)); + setFilteredItems(result); + }, [userInput, items]); + + return ( +
+

My Lovely Component

+ +
+

Output:

+ {/* Directly rendering user input without sanitization */} +
+
+
+

List of Items:

+
    + {filteredItems.map((item, index) => ( +
  • {item}
  • + ))} +
+
+
+ ); +}; + +export default MyLovelyComponent;