diff --git a/admin/src/pages/Home/components/LinkItem/LinkItem.jsx b/admin/src/pages/Home/components/LinkItem/LinkItem.jsx new file mode 100644 index 0000000..caa8fa0 --- /dev/null +++ b/admin/src/pages/Home/components/LinkItem/LinkItem.jsx @@ -0,0 +1,67 @@ +import {FontAwesomeIcon} from "@fortawesome/react-fontawesome"; +import {faExternalLink, faEye, faPencil, faTrash} from "@fortawesome/free-solid-svg-icons"; +import Tag from "@/pages/Home/components/Tag"; +import {useContext, useEffect, useState} from "react"; +import LinkContext from "@/common/contexts/Link"; +import {deleteRequest} from "@/common/utils/RequestUtil.js"; +import ModuleContext from "@/common/contexts/Module"; +import {createGravatarUrl} from "@/pages/Home/utils.js"; +import "./styles.sass"; + +export const LinkItem = (props) => { + + const [links, updateLinks] = useContext(LinkContext); + const modules = useContext(ModuleContext); + const [icon, setIcon] = useState("link"); + + useEffect(() => { + if (!modules) return; + setIcon(modules[props.type]["icon"]); + }, [modules]); + + const clickLink = () => window.open(`http://${props.domain}/${props.accessId}`, '_blank').focus(); + + const deleteLink = async () => { + await deleteRequest(`/link/${props.id}`); + updateLinks(); + } + + return ( +
ID: {props.accessId}