diff --git a/packages/react/src/Alert.js b/packages/react/src/Alert.js index 484ac088..341b48c1 100644 --- a/packages/react/src/Alert.js +++ b/packages/react/src/Alert.js @@ -17,14 +17,17 @@ library.add( faXmark ); -function Alert({ message, style }) { +function Alert({style, variant, message, autohide, delay}) { const [showAlert, setShowAlert] = useState(true); + autohide && typeof autohide === "boolean" ? autohide : false; + autohide && delay && typeof delay === "number" ? delay : 5000; + const dismissAlert = () => setShowAlert(!showAlert); let variantClass, icon, col; - switch (message.type) { + switch (variant) { case "success": variantClass = "alert-success"; icon = ( @@ -80,7 +83,11 @@ function Alert({ message, style }) { return ( - setShowAlert(false)} className={`alert ${variantClass}`} show={showAlert} delay={3000} autohide> + setShowAlert(false)} + className={`alert ${variantClass}`} + show={showAlert} + delay={delay} + autohide={autohide}> @@ -100,11 +107,13 @@ function Alert({ message, style }) { Alert.displayName = "St.Jude Cloud Alert"; Alert.propTypes = { style: PropTypes.oneOf(["oneline", "multiplelines"]), + variant: PropTypes.oneOf(["success", "warning", "error", "info"]), message: { - type: PropTypes.oneOf(["success", "warning", "error", "info"]), title: PropTypes.string, - body: PropTypes.string - } + body: PropTypes.string, + }, + autohide: PropTypes.bool, + delay: PropTypes.number, } export default Alert; \ No newline at end of file diff --git a/packages/react/stories/Alert.stories.js b/packages/react/stories/Alert.stories.js index 41315665..6a4c5435 100644 --- a/packages/react/stories/Alert.stories.js +++ b/packages/react/stories/Alert.stories.js @@ -6,14 +6,92 @@ export default { component: Alert, }; -export const DefaultOneline = () => ; -export const SuccessOneline = () => ; -export const WarningOneLine = () => ; -export const ErrorOneline = () => ; -export const ExtraLongMessageOneLine = () => ; - -export const DefaultMultiplelines = () => ; -export const SuccessMultiplelines = () => ; -export const WarningMultiplelines = () => ; -export const ErrorMultiplelines = () => ; -export const ExtraLongMessageMultiplelines = () => ; +export const DefaultOneline = () => + ; + +export const SuccessOneline = () => + ; + +export const WarningOneLine = () => + ; + +export const ErrorOneline = () => + ; + +export const ExtraLongMessageOneLine = () => + ; + +export const DefaultMultiplelines = () => + ; + +export const SuccessMultiplelines = () => + ; + +export const WarningMultiplelines = () => + ; + +export const ErrorMultiplelines = () => + ; + +export const ExtraLongMessageMultiplelines = () => + ;