import React, { useState } from
'react'
;
import { Alert } from
'react-bootstrap'
;
import
'./App.css'
;
const App = () => {
const [padding, setPadding] = useState(
'10px'
);
const [margin, setMargin] = useState(
'5px'
);
const paddingChangeFunction = (e) => {
setPadding(e.target.value);
};
const marginChangeFunction = (e) => {
setMargin(e.target.value);
};
const paddingIncrease = () => {
setPadding((prevPadding) => {
const numericValue = parseInt(prevPadding) + 5;
return
`${numericValue}px`;
});
};
const reducePadding = () => {
setPadding((prevPadding) => {
const numericValue = parseInt(prevPadding) - 5;
return
`${numericValue}px`;
});
};
const marginIncrease = () => {
setMargin((prevMargin) => {
const numericValue = parseInt(prevMargin) + 5;
return
`${numericValue}px`;
});
};
const reduceMargin = () => {
setMargin((prevMargin) => {
const numericValue = parseInt(prevMargin) - 5;
return
`${numericValue}px`;
});
};
return
(
<div className=
"container"
>
<h1 style={{ color:
'green'
}}>
GeeksforGeeks
</h1>
<h3>
Pass padding/margin as props
in
React-Bootstrap Alert
</h3>
<AlertProps
padding={padding}
margin={margin}
onClick={() => alert(
'Alert Clicked'
)}
>
GeeksforGeeks is Great
</AlertProps>
<div className=
"input-container"
>
<div>
<label>Padding:</label>
<input type=
"text"
value={padding}
onChange={paddingChangeFunction} />
<div className=
"button-container"
>
<span className=
"adjust-button"
onClick={paddingIncrease}>
+
</span>
<span className=
"adjust-button"
onClick={reducePadding}>
-
</span>
</div>
</div>
<div>
<label>Margin:</label>
<input type=
"text"
value={margin}
onChange={marginChangeFunction} />
<div className=
"button-container"
>
<span className=
"adjust-button"
onClick={marginIncrease}>+</span>
<span className=
"adjust-button"
onClick={reduceMargin}>-</span>
</div>
</div>
</div>
</div>
);
};
const AlertProps =
({ padding, margin, onClick, children }) => {
const alertStyle = {
padding,
margin,
backgroundColor:
'lightyellow'
,
};
return
(
<Alert style={alertStyle}
onClick={onClick} variant=
"warning"
>
{children}
</Alert>
);
};
export
default
App;