diff options
Diffstat (limited to 'src/client/views/InkTranscription.tsx')
-rw-r--r-- | src/client/views/InkTranscription.tsx | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/src/client/views/InkTranscription.tsx b/src/client/views/InkTranscription.tsx index 2e6b477e9..6220033d4 100644 --- a/src/client/views/InkTranscription.tsx +++ b/src/client/views/InkTranscription.tsx @@ -4,8 +4,8 @@ import * as React from 'react'; import { imageUrlToBase64 } from '../../ClientUtils'; import { aggregateBounds } from '../../Utils'; import { Doc, DocListCast } from '../../fields/Doc'; -import { InkData, InkField, InkInkTool, InkTool } from '../../fields/InkField'; -import { Cast, DateCast, ImageCast, NumCast } from '../../fields/Types'; +import { InkData, InkInkTool, InkTool } from '../../fields/InkField'; +import { Cast, DateCast, ImageCast, InkCast, NumCast } from '../../fields/Types'; import { ImageField, URLField } from '../../fields/URLField'; import { gptHandwriting } from '../apis/gpt/GPT'; import { DocumentType } from '../documents/DocumentTypes'; @@ -30,7 +30,7 @@ export class InkTranscription extends React.Component { // eslint-disable-next-line @typescript-eslint/no-explicit-any @observable _textRef: any = undefined; // eslint-disable-next-line @typescript-eslint/no-explicit-any - @observable iinkEditor: any = undefined; + @observable _iinkEditor: any = undefined; // eslint-disable-next-line @typescript-eslint/no-explicit-any private lastJiix: any; private currGroup?: Doc; @@ -94,7 +94,7 @@ export class InkTranscription extends React.Component { }, }, }; - this.iinkEditor = await iink.Editor.load(r, 'INKV2', options); + this._iinkEditor = await iink.Editor.load(r, 'INKV2', options); this._textRegister = r; // eslint-disable-next-line @typescript-eslint/no-explicit-any r?.addEventListener('exported', (e: any) => this.exportInk(e, this._textRef)); @@ -118,19 +118,20 @@ export class InkTranscription extends React.Component { const times: number[] = []; validInks - .filter(i => Cast(i[Doc.LayoutDataKey(i)], InkField)) + .filter(i => InkCast(i[Doc.LayoutDataKey(i)])) .forEach(i => { - const d = Cast(i[Doc.LayoutDataKey(i)], InkField, null); + const d = InkCast(i[Doc.LayoutDataKey(i)])!; + const authorTime = DateCast(i.author_date)?.getDate().getTime() ?? 0; const inkStroke = DocumentView.getDocumentView(i)?.ComponentView as InkingStroke; strokes.push(d.inkData.map(pd => inkStroke.ptToScreen({ X: pd.X, Y: pd.Y }))); - times.push(DateCast(i.author_date).getDate().getTime()); + times.push(authorTime); }); this.currGroup = groupDoc; const pointerData = strokes.map((stroke, i) => this.inkJSON(stroke, times[i])); if (math) { - this.iinkEditor.importPointEvents(pointerData); + this._iinkEditor.importPointEvents(pointerData); } else { - this.iinkEditor.importPointEvents(pointerData); + this._iinkEditor.importPointEvents(pointerData); } }; convertPointsToString(points: InkData[]): string { @@ -234,7 +235,7 @@ export class InkTranscription extends React.Component { const docList = DocListCast(this.currGroup.data); docList.forEach((inkDoc: Doc) => { // just having the times match up and be a unique value (actual timestamp doesn't matter) - const ms = DateCast(inkDoc.author_date).getDate().getTime() + 14400000; + const ms = (DateCast(inkDoc.author_date)?.getDate().getTime() ?? 0) + 14400000; const word = timestampWord.get(ms); if (!word) { return; |