aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/pdf
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/views/pdf')
-rw-r--r--src/client/views/pdf/AnchorMenu.tsx24
-rw-r--r--src/client/views/pdf/GPTPopup/GPTPopup.tsx42
-rw-r--r--src/client/views/pdf/PDFViewer.tsx1
3 files changed, 51 insertions, 16 deletions
diff --git a/src/client/views/pdf/AnchorMenu.tsx b/src/client/views/pdf/AnchorMenu.tsx
index 844c1e36d..7cb6a20f4 100644
--- a/src/client/views/pdf/AnchorMenu.tsx
+++ b/src/client/views/pdf/AnchorMenu.tsx
@@ -15,6 +15,7 @@ import { AntimodeMenu, AntimodeMenuProps } from '../AntimodeMenu';
import { LinkPopup } from '../linking/LinkPopup';
import './AnchorMenu.scss';
import { GPTPopup, GPTPopupMode } from './GPTPopup/GPTPopup';
+import { PDFViewer } from 'pdfjs-dist/web/pdf_viewer.mjs';
@observer
export class AnchorMenu extends AntimodeMenu<AntimodeMenuProps> {
@@ -57,6 +58,7 @@ export class AnchorMenu extends AntimodeMenu<AntimodeMenuProps> {
public get Active() {
return this._left > 0;
}
+ public addToCollection: ((doc: Doc | Doc[], annotationKey?: string | undefined) => boolean) | undefined;
componentWillUnmount() {
this._disposer?.();
@@ -96,14 +98,34 @@ export class AnchorMenu extends AntimodeMenu<AntimodeMenuProps> {
try {
const res = await gptAPICall(this.selectedText, GPTCallType.FLASHCARD);
+
GPTPopup.Instance.setText(res || 'Something went wrong.');
- GPTPopup.Instance.transferToFlashcard();
+ this.transferToFlashcard(res);
} catch (err) {
console.error(err);
}
GPTPopup.Instance.setLoading(false);
};
+ transferToFlashcard = (text: string) => {
+ const senArr = text.split('Question');
+ const collectionArr: Doc[] = [];
+ for (var i = 1; i < senArr.length; i++) {
+ console.log('Arr ' + i + ': ' + senArr[i]);
+ const newDoc = Docs.Create.ComparisonDocument(senArr[i], { _layout_isFlashcard: true, _width: 300, _height: 300 });
+ newDoc.text = senArr[i];
+ collectionArr.push(newDoc);
+ }
+ const newCol = Docs.Create.CarouselDocument(collectionArr, {
+ _width: 200,
+ _height: 200,
+ _layout_fitWidth: true,
+ _layout_autoHeight: true,
+ });
+
+ this.addToCollection?.(newCol);
+ };
+
pointerDown = (e: React.PointerEvent) => {
setupMoveUpEvents(
this,
diff --git a/src/client/views/pdf/GPTPopup/GPTPopup.tsx b/src/client/views/pdf/GPTPopup/GPTPopup.tsx
index dbcdd4e3a..32c1721ec 100644
--- a/src/client/views/pdf/GPTPopup/GPTPopup.tsx
+++ b/src/client/views/pdf/GPTPopup/GPTPopup.tsx
@@ -144,6 +144,15 @@ export class GPTPopup extends ObservableReactComponent<GPTPopupProps> {
_layout_autoHeight: true,
});
this.addDoc(newDoc, this.sidebarId);
+ // const arr = [newDoc];
+ // const newCol = Docs.Create.CarouselDocument(arr, {
+ // _width: 200,
+ // _height: 200,
+ // _layout_fitWidth: true,
+ // _layout_autoHeight: true,
+ // });
+ // this.addDoc(newDoc, this.sidebarId);
+ // this.addDoc(newCol, this.sidebarId);
const anchor = AnchorMenu.Instance?.GetAnchor(undefined, false);
if (anchor) {
DocUtils.MakeLink(newDoc, anchor, {
@@ -152,21 +161,24 @@ export class GPTPopup extends ObservableReactComponent<GPTPopupProps> {
}
};
- transferToFlashcard = () => {
- const senArr = this.text.split('.');
- for (var i = 0; i < senArr.length; i += 2) {
- console.log('SEN: ' + senArr[i]);
- const newDoc = Docs.Create.ComparisonDocument(senArr[i], { _layout_isFlashcard: true, _width: 300, _height: 300 });
- newDoc.text = senArr[i];
- this.addDoc(newDoc, this.sidebarId);
- const anchor = AnchorMenu.Instance?.GetAnchor(undefined, false);
- if (anchor) {
- DocUtils.MakeLink(newDoc, anchor, {
- link_relationship: 'GPT Summary',
- });
- }
- }
- };
+ // transferToFlashcard = () => {
+ // const senArr = this.text.split('Question');
+ // const collectionArr: Doc[] = [];
+ // for (var i = 1; i < senArr.length; i++) {
+ // console.log('Arr ' + i + ': ' + senArr[i]);
+ // const newDoc = Docs.Create.ComparisonDocument(senArr[i], { _layout_isFlashcard: true, _width: 300, _height: 300 });
+ // newDoc.text = senArr[i];
+ // collectionArr.push(newDoc);
+ // }
+ // const newCol = Docs.Create.CarouselDocument(collectionArr, {
+ // _width: 200,
+ // _height: 200,
+ // _layout_fitWidth: true,
+ // _layout_autoHeight: true,
+ // });
+ // this.addDoc(newCol, this.sidebarId);
+ // this.addToCollection?.(newCol);
+ // };
/**
* Transfers the image urls to actual image docs
diff --git a/src/client/views/pdf/PDFViewer.tsx b/src/client/views/pdf/PDFViewer.tsx
index 7d8529a1c..cecaf17ff 100644
--- a/src/client/views/pdf/PDFViewer.tsx
+++ b/src/client/views/pdf/PDFViewer.tsx
@@ -417,6 +417,7 @@ export class PDFViewer extends ObservableReactComponent<IViewerProps> {
// Changing which document to add the annotation to (the currently selected PDF)
GPTPopup.Instance.setSidebarId('data_sidebar');
GPTPopup.Instance.addDoc = this._props.sidebarAddDoc;
+ AnchorMenu.Instance.addToCollection = this._props.DocumentView?.()._props.addDocument;
// const newDoc = Docs.Create.ComparisonDocument({ _layout_isFlashcard: true, _width: 300, _height: 300 });
// this.props.addDocument?.(newDoc);
};