diff --git a/frontend/src/views/ViewSecretPublicPage/ViewSecretPublicPage.tsx b/frontend/src/views/ViewSecretPublicPage/ViewSecretPublicPage.tsx index 99664b780..ee5c4a65c 100644 --- a/frontend/src/views/ViewSecretPublicPage/ViewSecretPublicPage.tsx +++ b/frontend/src/views/ViewSecretPublicPage/ViewSecretPublicPage.tsx @@ -1,3 +1,4 @@ +import { useState, useCallback } from 'react' import Image from "next/image"; import Link from "next/link"; import { useRouter } from "next/router"; @@ -6,9 +7,10 @@ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { useGetActiveSharedSecretById } from "@app/hooks/api/secretSharing"; -import { SecretContainer, SecretErrorContainer } from "./components"; +import { SecretContainer, SecretErrorContainer, PasswordContainer } from "./components"; export const ViewSecretPublicPage = () => { + const [passMatches, setPassMatch] = useState(false) const router = useRouter(); const { id, key: urlEncodedPublicKey } = router.query; @@ -21,6 +23,10 @@ export const ViewSecretPublicPage = () => { hashedHex }); + const handlePassMatch = useCallback((val: boolean) => { + setPassMatch(val) + }, [setPassMatch]) + return (
@@ -52,7 +58,13 @@ export const ViewSecretPublicPage = () => {

- {secret && key && } + {secret && ( + !passMatches ? ( + + ) : ( + key && + ) + )} {error && }
diff --git a/frontend/src/views/ViewSecretPublicPage/components/PasswordContainer.tsx b/frontend/src/views/ViewSecretPublicPage/components/PasswordContainer.tsx new file mode 100644 index 000000000..b0a47a0b2 --- /dev/null +++ b/frontend/src/views/ViewSecretPublicPage/components/PasswordContainer.tsx @@ -0,0 +1,60 @@ +import { useState, ChangeEvent } from "react"; +import { + faArrowRight, +} from "@fortawesome/free-solid-svg-icons"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; + +import { Button, IconButton, Input } from "@app/components/v2"; +import { TViewSharedSecretResponse } from "@app/hooks/api/secretSharing"; + +type Props = { + secret: TViewSharedSecretResponse; + handlePassMatch: (val: boolean) => void; +}; + +export const PasswordContainer = ({ secret, handlePassMatch }: Props) => { + const [password, setPassword] = useState('') + + const handleChange = (e: ChangeEvent) => { + setPassword(e.target.value) + } + + const validatePassword = () => { + if (secret.password === password) { + handlePassMatch(true) + console.log('match') + } else { + console.log({secret}) + } + } + + return ( +
+
+ +
+ { + validatePassword() + }} + > + + +
+
+ +
+ ); +}; diff --git a/frontend/src/views/ViewSecretPublicPage/components/index.tsx b/frontend/src/views/ViewSecretPublicPage/components/index.tsx index b3424d790..fd66da812 100644 --- a/frontend/src/views/ViewSecretPublicPage/components/index.tsx +++ b/frontend/src/views/ViewSecretPublicPage/components/index.tsx @@ -1,2 +1,3 @@ export { SecretContainer } from "./SecretContainer"; export { SecretErrorContainer } from "./SecretErrorContainer"; +export { PasswordContainer } from "./PasswordContainer";