|
|
|
@ -5,6 +5,16 @@ import { homeType } from "../../_constants/home_type"; |
|
|
|
|
import { useSelector } from "react-redux"; |
|
|
|
|
import moment from "moment" |
|
|
|
|
|
|
|
|
|
function validURL(str) { |
|
|
|
|
var pattern = new RegExp('^(https?:\\/\\/)?'+ // protocol
|
|
|
|
|
'((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|'+ // domain name
|
|
|
|
|
'((\\d{1,3}\\.){3}\\d{1,3}))'+ // OR ip (v4) address
|
|
|
|
|
'(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*'+ // port and path
|
|
|
|
|
'(\\?[;&a-z\\d%_.~+=-]*)?'+ // query string
|
|
|
|
|
'(\\#[-a-z\\d_]*)?$','i'); // fragment locator
|
|
|
|
|
return !!pattern.test(str); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
export default function HomePage() { |
|
|
|
|
const [typeCopy, setTypeCopy] = useState('') |
|
|
|
|
const [isCopied, setIsCopied] = useState({ |
|
|
|
@ -61,7 +71,7 @@ export default function HomePage() { |
|
|
|
|
<div className="box-link box-info"> |
|
|
|
|
<p className="title-box-link">{title}</p> |
|
|
|
|
<div className="d-flex"> |
|
|
|
|
<div className="container-link-text"><a href={link} target="_blank" className="link-text">{link}</a></div> |
|
|
|
|
<div className="container-link-text"><a href={link?.trim()?.substring(0,5)?.includes('http') ? link : `https://${link?.trim()}`} target="_blank" className="link-text">{link}</a></div> |
|
|
|
|
<button className="btn-copy-link" onMouseOver={() => setTypeCopy(type)} onMouseOut={() => setTypeCopy('')} onClick={() => handleCopy(type, link)}> |
|
|
|
|
{!!isCopied?.[type] ? <IconTick /> : <IconCopy />} |
|
|
|
|
{typeCopy === type && <span className="copy-text">{!!isCopied?.[type] ? 'Đã sao chép' : 'Sao chép'}</span>} |
|
|
|
|