From 7068cbb51dba45dbe1b3c1d40ba65b4bf3cc37bb Mon Sep 17 00:00:00 2001 From: KaWaite Date: Thu, 16 Sep 2021 12:59:39 +0900 Subject: [PATCH 01/19] Update TextBox atom to have message --- src/components/atoms/TextBox/index.tsx | 88 +++++++++++++++----------- 1 file changed, 50 insertions(+), 38 deletions(-) diff --git a/src/components/atoms/TextBox/index.tsx b/src/components/atoms/TextBox/index.tsx index 71f39f537..d40a66f8b 100644 --- a/src/components/atoms/TextBox/index.tsx +++ b/src/components/atoms/TextBox/index.tsx @@ -1,6 +1,7 @@ import React, { useEffect, useState, useCallback, useRef } from "react"; import Flex from "@reearth/components/atoms/Flex"; +import Text from "@reearth/components/atoms/Text"; import { styled, metrics } from "@reearth/theme"; import fonts from "@reearth/theme/fonts"; import { metricsSizes } from "@reearth/theme/metrics"; @@ -15,6 +16,7 @@ export type Props = { prefix?: string; suffix?: string; placeholder?: string; + message?: string; throttle?: boolean; throttleTimeout?: number; color?: string; @@ -34,6 +36,7 @@ const TextBox: React.FC = ({ prefix, suffix, placeholder, + message, throttle, throttleTimeout: throttleTimeout = 3000, color, @@ -103,44 +106,47 @@ const TextBox: React.FC = ({ }, [innerValue, onChange, throttle, throttleTimeout]); return ( - - {prefix && ( - - {prefix} - - )} - {multiline ? ( - - ) : ( - - )} - {suffix && ( - - {suffix} - - )} - +
+ + {prefix && ( + + {prefix} + + )} + {multiline ? ( + + ) : ( + + )} + {suffix && ( + + {suffix} + + )} + + {message && {message}} +
); }; @@ -194,4 +200,10 @@ const FloatedText = styled.span` user-select: none; `; +const StyledText = styled(Text)` + margin-left: 12px; + margin-top: 5px; + font-style: italic; +`; + export default TextBox; From fee2431e58ee9daca8c1b3708286f76d3928bfc9 Mon Sep 17 00:00:00 2001 From: KaWaite Date: Thu, 16 Sep 2021 13:01:11 +0900 Subject: [PATCH 02/19] WIP: Password modal prepared for regex checking --- .../Settings/Account/PasswordModal/index.tsx | 37 +++++++++++++++---- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/src/components/molecules/Settings/Account/PasswordModal/index.tsx b/src/components/molecules/Settings/Account/PasswordModal/index.tsx index 38e616a38..f0950e9ed 100644 --- a/src/components/molecules/Settings/Account/PasswordModal/index.tsx +++ b/src/components/molecules/Settings/Account/PasswordModal/index.tsx @@ -1,4 +1,4 @@ -import React, { useState, useCallback, useEffect } from "react"; +import React, { useState, useCallback, useEffect, useMemo } from "react"; import { useIntl } from "react-intl"; import Button from "@reearth/components/atoms/Button"; @@ -33,12 +33,35 @@ const PasswordModal: React.FC = ({ isVisible, onClose, hasPassword, updat const [passwordConfirmation, setPasswordConfirmation] = useState(""); const [disabled, setDisabled] = useState(true); + const lowSecurityRegex = ""; + const medSecurityRegex = ""; + const highSecurityRegex = ""; + + const regexMessage = useMemo(() => { + switch (password) { + case highSecurityRegex: + return intl.formatMessage({ defaultMessage: "That password is great." }); + case medSecurityRegex: + return intl.formatMessage({ defaultMessage: "That password is better." }); + case lowSecurityRegex: + return intl.formatMessage({ defaultMessage: "That password is okay." }); + default: + return intl.formatMessage({ defaultMessage: "That password is too weak." }); + } + }, [password, intl]); + + console.log(regexMessage, "regexmes"); + const handleClose = useCallback(() => { setPassword(""); setPasswordConfirmation(""); onClose?.(); }, [onClose]); + useEffect(() => { + console.log(password, "password"); + }, [password]); + const save = useCallback(() => { if (password === passwordConfirmation) { updatePassword?.(password, passwordConfirmation); @@ -94,18 +117,14 @@ const PasswordModal: React.FC = ({ isVisible, onClose, hasPassword, updat - +