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";