diff --git a/src/App.tsx b/src/App.tsx
index 5349b8e..31bc63a 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -1,10 +1,10 @@
-import logo from './logo.svg';
-import './App.css';
+import "./App.css";
+import ReactUseStateHooks from "./hooks/usestate/UseStateHook";
function App() {
return (
-
-
+
+
);
}
diff --git a/src/hooks/usestate/UseStateHook.tsx b/src/hooks/usestate/UseStateHook.tsx
new file mode 100644
index 0000000..be5f226
--- /dev/null
+++ b/src/hooks/usestate/UseStateHook.tsx
@@ -0,0 +1,50 @@
+import { Button, TextField } from "@mui/material";
+import { useState } from "react";
+import TextFieldComponent from "./component/TextField";
+import RadioGroupComponent from "./component/RadioGroup";
+import SliderComponent from "./component/Slider";
+
+export interface ReactUseStateHooksProps {}
+
+export default function ReactUseStateHooks(props: ReactUseStateHooksProps) {
+ return (
+
+
+
+
+
+ );
+}
+
+function Row1() {
+ return (
+ <>
+
+ 1. TextField component with useState hook
+
+
+ >
+ );
+}
+
+function Row2() {
+ return (
+ <>
+
+ 2. Radio group component with useState hook
+
+
+ >
+ );
+}
+
+function Row3() {
+ return (
+ <>
+
+ 3. Slider component with useState hook
+
+
+ >
+ );
+}
diff --git a/src/hooks/usestate/component/RadioGroup.tsx b/src/hooks/usestate/component/RadioGroup.tsx
new file mode 100644
index 0000000..72223d2
--- /dev/null
+++ b/src/hooks/usestate/component/RadioGroup.tsx
@@ -0,0 +1,51 @@
+import {
+ FormControl,
+ FormControlLabel,
+ FormLabel,
+ Radio,
+ RadioGroup,
+} from "@mui/material";
+import * as React from "react";
+
+export interface RadioGroupComponentProps {}
+
+export default function RadioGroupComponent(props: RadioGroupComponentProps) {
+ return (
+
+
+
+ );
+}
+
+function Radiogroup() {
+ const [selection, setSelection] = React.useState("female");
+ const handler = (e: any) => {
+ setSelection(e.target.value);
+ };
+
+ return (
+ <>
+
+
+ Gender
+
+ }
+ label="Female"
+ />
+ } label="Male" />
+ } label="Other" />
+
+
+
+
+
+ Selection display:
+
+
+ {selection}
+
+ >
+ );
+}
diff --git a/src/hooks/usestate/component/Slider.tsx b/src/hooks/usestate/component/Slider.tsx
new file mode 100644
index 0000000..221b3b2
--- /dev/null
+++ b/src/hooks/usestate/component/Slider.tsx
@@ -0,0 +1,25 @@
+import { Slider } from "@mui/material";
+import * as React from "react";
+
+export interface ISliderComponentProps {}
+
+export default function SliderComponent(props: ISliderComponentProps) {
+ const [sliderValue, setSliderValue] = React.useState(0);
+ const handleSlidingEvent = (e: any) => {
+ setSliderValue(e.target.value);
+ };
+
+ return (
+
+
+
+
+
+ Percent display:
+
+
+ {sliderValue}
+
+
+ );
+}
diff --git a/src/hooks/usestate/component/TextField.tsx b/src/hooks/usestate/component/TextField.tsx
new file mode 100644
index 0000000..85b10ca
--- /dev/null
+++ b/src/hooks/usestate/component/TextField.tsx
@@ -0,0 +1,37 @@
+import { TextField } from "@mui/material";
+import { useState } from "react";
+
+export interface TextFieldComponentProps {}
+
+/**
+ * Ui component showcasing the useState hooks usage.
+ *
+ * @param props TextField props
+ * @returns Ui component
+ */
+export default function TextFieldComponent(props: TextFieldComponentProps) {
+ const [textFieldValue, setTextFieldValue] = useState("");
+ const handleEdit = (e: any) => {
+ setTextFieldValue(e.target.value);
+ };
+
+ return (
+
+
+
+
+
+ Text display:
+
+
+ {textFieldValue}
+
+
+ );
+}