diff --git a/Client/src/components/TextFields/Website/WebsiteTextField.jsx b/Client/src/components/TextFields/Website/WebsiteTextField.jsx index 41ebb1867..376ee4be5 100644 --- a/Client/src/components/TextFields/Website/WebsiteTextField.jsx +++ b/Client/src/components/TextFields/Website/WebsiteTextField.jsx @@ -1,8 +1,53 @@ -import React from "react"; +import React, { useState } from "react"; import "./websiteTextField.css"; +import HelpOutlineIcon from "@mui/icons-material/HelpOutline"; +import ContentCopyIcon from "@mui/icons-material/ContentCopy"; -function WebsiteTextField() { - return
WebsiteTextField
; +function WebsiteTextField({ + showHelp = true, + hasCopyButton = false, + hintText, +}) { + const [copied, setCopied] = useState(false); + + const handleCopy = () => { + setCopied(true); + setTimeout(() => setCopied(false), 1000); + }; + + return ( + <> +
+ + + {showHelp && ( +
+ +
+ )} + {hasCopyButton && ( +
+ + {copied ? " Copied " : " Copy "} +
+ )} +
+ + + ); } export default WebsiteTextField; diff --git a/Client/src/components/TextFields/Website/websiteTextField.css b/Client/src/components/TextFields/Website/websiteTextField.css index e69de29bb..d398fc055 100644 --- a/Client/src/components/TextFields/Website/websiteTextField.css +++ b/Client/src/components/TextFields/Website/websiteTextField.css @@ -0,0 +1,78 @@ +:root { + --border-color: #d0d5dd; + --label-font-color: #475467; + --icon-color: #98a2b3; + --text-field-margin-0: 10px 20px; + --text-field-margin-1: 10px 20px 5px; + --font-family: "Roboto", "Helvetica", "Arial", sans-serif; +} + +.website-textfield { + font-family: var(--font-family); + display: flex; + align-items: center; + position: relative; + margin: var(--text-field-margin-1); +} + +.website-textfield-hint { + margin: var(--text-field-margin-0); + font-family: var(--font-family); + font-size: 11px; +} + +.website-label { + height: 33px; + padding: 5px 20px 5px 10px; + border: solid 1px var(--border-color); + border-right: none; + border-radius: 8px 0 0 8px; + font-size: 13px; + text-align: center; + display: flex; + justify-content: center; + align-items: center; + color: var(--label-font-color); +} + +.website-url { + width: 248px; + height: 33px; + padding: 5px 15px; + border: solid 1px var(--border-color); +} + +.website-icon-holder { + width: 40px; + height: 33px; + padding: 5px; + border: solid 1px var(--border-color); + border-left: none; + text-align: center; + display: flex; + justify-content: center; + align-items: center; +} + +.copy-to-clipboard-button { + height: 33px; + padding: 5px 20px 5px 10px; + border: solid 1px var(--border-color); + border-left: none; + border-radius: 0 8px 8px 0; + font-size: 13px; + text-align: center; + display: flex; + justify-content: space-evenly; + align-items: center; + color: var(--label-font-color); + cursor: pointer; +} + +.copy-icon { + margin-right: 10px; +} + +.with-no-copy-button { + display: none; +} diff --git a/Client/src/screens/PlayGround/PlayGround.jsx b/Client/src/screens/PlayGround/PlayGround.jsx index 61fa39516..5625265d7 100644 --- a/Client/src/screens/PlayGround/PlayGround.jsx +++ b/Client/src/screens/PlayGround/PlayGround.jsx @@ -2,6 +2,7 @@ import React from "react"; import EmailTextField from "../../components/TextFields/Email/EmailTextField"; import ErrorOutlineIcon from "@mui/icons-material/ErrorOutline"; import HelpOutlineIcon from "@mui/icons-material/HelpOutline"; +import WebsiteTextField from "../../components/TextFields/Website/WebsiteTextField"; // This Component is just for the development and test // purposes and just to see what my components look like while development @@ -32,6 +33,15 @@ function PlayGround() { icon={} helperText="This is a hint text to help user." /> +
+
+ {/* Now, illustration of the Website text fields */} +
+ + ); }