import { library } from '@fortawesome/fontawesome-svg-core'; import { faEdit, faEye, faTimes, faArrowRight } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { observer } from "mobx-react"; import { DocumentManager } from "../../util/DocumentManager"; import { undoBatch } from "../../util/UndoManager"; import { CollectionDockingView } from "../collections/CollectionDockingView"; import './LinkBox.scss'; import React = require("react"); import { Doc } from '../../../new_fields/Doc'; import { Cast, NumCast } from '../../../new_fields/Types'; import { listSpec } from '../../../new_fields/Schema'; import { action } from 'mobx'; library.add(faEye); library.add(faEdit); library.add(faTimes); library.add(faArrowRight); interface Props { linkDoc: Doc; linkName: String; pairedDoc: Doc; type: String; showEditor: () => void; } @observer export class LinkBox extends React.Component { @undoBatch followLink = async (e: React.PointerEvent): Promise => { e.stopPropagation(); DocumentManager.Instance.jumpToDocument(this.props.pairedDoc, e.altKey); } onEditButtonPressed = (e: React.PointerEvent): void => { e.stopPropagation(); this.props.showEditor(); } // @action // onDeleteButtonPressed = async (e: React.PointerEvent): Promise => { // e.stopPropagation(); // const [linkedFrom, linkedTo] = await Promise.all([Cast(this.props.linkDoc.linkedFrom, Doc), Cast(this.props.linkDoc.linkedTo, Doc)]); // if (linkedFrom) { // const linkedToDocs = Cast(linkedFrom.linkedToDocs, listSpec(Doc)); // if (linkedToDocs) { // linkedToDocs.splice(linkedToDocs.indexOf(this.props.linkDoc), 1); // } // } // if (linkedTo) { // const linkedFromDocs = Cast(linkedTo.linkedFromDocs, listSpec(Doc)); // if (linkedFromDocs) { // linkedFromDocs.splice(linkedFromDocs.indexOf(this.props.linkDoc), 1); // } // } // } render() { return ( //

{this.props.linkName}

{this.props.type}{this.props.pairedDoc.Title}

{/*
*/}
{/*
*/}
); } }