1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
import React = require("react");
import { library } from '@fortawesome/fontawesome-svg-core';
import { faCaretUp, faFilePdf, faFilm, faImage, faObjectGroup, faStickyNote } from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { Doc } from "../../new_fields/Doc";
import { DocumentManager } from "../util/DocumentManager";
import { SetupDrag } from "../util/DragManager";
export interface SearchProps {
doc: Doc;
}
library.add(faCaretUp);
library.add(faObjectGroup);
library.add(faStickyNote);
library.add(faFilePdf);
library.add(faFilm);
export class SearchItem extends React.Component<SearchProps> {
onClick = () => {
DocumentManager.Instance.jumpToDocument(this.props.doc);
}
//needs help
// @computed get layout(): string { const field = Cast(this.props.doc[fieldKey], IconField); return field ? field.icon : "<p>Error loading icon data</p>"; }
public static DocumentIcon(layout: string) {
let button = layout.indexOf("PDFBox") !== -1 ? faFilePdf :
layout.indexOf("ImageBox") !== -1 ? faImage :
layout.indexOf("Formatted") !== -1 ? faStickyNote :
layout.indexOf("Video") !== -1 ? faFilm :
layout.indexOf("Collection") !== -1 ? faObjectGroup :
faCaretUp;
return <FontAwesomeIcon icon={button} className="documentView-minimizedIcon" />;
}
onPointerEnter = (e: React.PointerEvent) => {
this.props.doc.libraryBrush = true;
Doc.SetOnPrototype(this.props.doc, "protoBrush", true);
}
onPointerLeave = (e: React.PointerEvent) => {
this.props.doc.libraryBrush = false;
Doc.SetOnPrototype(this.props.doc, "protoBrush", false);
}
collectionRef = React.createRef<HTMLDivElement>();
startDocDrag = () => {
let doc = this.props.doc;
const isProto = Doc.GetT(doc, "isPrototype", "boolean", true);
if (isProto) {
return Doc.MakeDelegate(doc);
} else {
return Doc.MakeAlias(doc);
}
}
render() {
return (
<div className="search-item" ref={this.collectionRef} id="result"
onPointerEnter={this.onPointerEnter} onPointerLeave={this.onPointerLeave}
onClick={this.onClick} onPointerDown={SetupDrag(this.collectionRef, this.startDocDrag)} >
<div className="search-title" id="result" >title: {this.props.doc.title}</div>
{/* <div className="search-type" id="result" >Type: {this.props.doc.layout}</div> */}
{/* <div className="search-type" >{SearchItem.DocumentIcon(this.layout)}</div> */}
</div>
);
}
}
|