diff --git a/admin/src/pages/Home/components/LinkItem/LinkItem.jsx b/admin/src/pages/Home/components/LinkItem/LinkItem.jsx index caa8fa0..8c39551 100644 --- a/admin/src/pages/Home/components/LinkItem/LinkItem.jsx +++ b/admin/src/pages/Home/components/LinkItem/LinkItem.jsx @@ -1,15 +1,17 @@ import {FontAwesomeIcon} from "@fortawesome/react-fontawesome"; -import {faExternalLink, faEye, faPencil, faTrash} from "@fortawesome/free-solid-svg-icons"; +import {faExternalLink, faEye, faPencil, faToggleOff, faToggleOn, 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 {deleteRequest, patchRequest} from "@/common/utils/RequestUtil.js"; import ModuleContext from "@/common/contexts/Module"; import {createGravatarUrl} from "@/pages/Home/utils.js"; +import LinkDialog from "@/pages/Home/components/LinkDialog"; import "./styles.sass"; export const LinkItem = (props) => { + const [showDialog, setShowDialog] = useState(false); const [links, updateLinks] = useContext(LinkContext); const modules = useContext(ModuleContext); const [icon, setIcon] = useState("link"); @@ -19,6 +21,11 @@ export const LinkItem = (props) => { setIcon(modules[props.type]["icon"]); }, [modules]); + const switchState = async () => { + await patchRequest(`/link/${props.id}`, {isEnabled: !props.isEnabled}); + updateLinks(); + } + const clickLink = () => window.open(`http://${props.domain}/${props.accessId}`, '_blank').focus(); const deleteLink = async () => { @@ -27,41 +34,46 @@ export const LinkItem = (props) => { } return ( -
-
-
- -
-
-

{props.title}

-

ID: {props.accessId}

-
+ <> + setShowDialog(false)} editMode={true} + meta={props.meta} accessId={props.accessId} title={props.title} tags={props.tags} id={props.id}/> +
+
+
+ +
+
+

{props.title}

+

ID: {props.accessId}

+
-
- {props.tags?.map(tag => )} +
+ {props.tags?.map(tag => )} +
+
+
+
+ +

{props.creator.username}

+
+ +
+ | +
+ +
+ +

{props.views}

+
+ +
+ + setShowDialog(true)}/> + +
-
-
- -

{props.creator.username}

-
- -
- | -
- -
- -

{props.views}

-
- -
- - -
-
-
+ ); } \ No newline at end of file