aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/client/views/collections/CollectionCardDeckView.tsx16
-rw-r--r--src/client/views/global/globalScripts.ts20
-rw-r--r--src/client/views/nodes/IconTagBox.tsx13
3 files changed, 26 insertions, 23 deletions
diff --git a/src/client/views/collections/CollectionCardDeckView.tsx b/src/client/views/collections/CollectionCardDeckView.tsx
index 97ff852b2..fced9fd37 100644
--- a/src/client/views/collections/CollectionCardDeckView.tsx
+++ b/src/client/views/collections/CollectionCardDeckView.tsx
@@ -1,4 +1,4 @@
-import { IReactionDisposer, ObservableMap, action, computed, makeObservable, observable, reaction, trace } from 'mobx';
+import { IReactionDisposer, ObservableMap, action, computed, makeObservable, observable, reaction } from 'mobx';
import { observer } from 'mobx-react';
import * as React from 'react';
import { ClientUtils, DashColor, returnFalse, returnZero } from '../../../ClientUtils';
@@ -6,11 +6,13 @@ import { emptyFunction } from '../../../Utils';
import { Doc, StrListCast } from '../../../fields/Doc';
import { DocData } from '../../../fields/DocSymbols';
import { Id } from '../../../fields/FieldSymbols';
-import { BoolCast, Cast, DateCast, NumCast, RTFCast, ScriptCast, StrCast } from '../../../fields/Types';
+import { BoolCast, DateCast, DocCast, NumCast, RTFCast, ScriptCast, StrCast } from '../../../fields/Types';
import { URLField } from '../../../fields/URLField';
import { gptImageLabel } from '../../apis/gpt/GPT';
import { DocumentType } from '../../documents/DocumentTypes';
import { DragManager } from '../../util/DragManager';
+import { dropActionType } from '../../util/DropActionTypes';
+import { SelectionManager } from '../../util/SelectionManager';
import { SnappingManager } from '../../util/SnappingManager';
import { Transform } from '../../util/Transform';
import { undoable } from '../../util/UndoManager';
@@ -19,9 +21,6 @@ import { DocumentView } from '../nodes/DocumentView';
import { GPTPopup, GPTPopupMode } from '../pdf/GPTPopup/GPTPopup';
import './CollectionCardDeckView.scss';
import { CollectionSubView, SubCollectionViewProps } from './CollectionSubView';
-import { dropActionType } from '../../util/DropActionTypes';
-import { DocCast } from '../../../fields/Types';
-import { SelectionManager } from '../../util/SelectionManager';
enum cardSortings {
Time = 'time',
@@ -354,10 +353,11 @@ export class CollectionCardView extends CollectionSubView() {
switch (sortType) {
case cardSortings.Time:
return [DateCast(docA.author_date)?.date ?? Date.now(), DateCast(docB.author_date)?.date ?? Date.now()];
- case cardSortings.Color:
+ case cardSortings.Color: {
const d1 = DashColor(StrCast(docA.backgroundColor));
const d2 = DashColor(StrCast(docB.backgroundColor));
return [d1.hsv().hue(), d2.hsv().hue()];
+ }
case cardSortings.Tag:
return [this.tagValue(docA) ?? 9999, this.tagValue(docB) ?? 9999];
case cardSortings.Chat:
@@ -531,7 +531,7 @@ export class CollectionCardView extends CollectionSubView() {
case '6':
doc.chatIndex = index;
break;
- case '1':
+ case '1': {
const allHotKeys = StrListCast(Doc.UserDoc().myFilterHotKeyTitles);
let myTag = '';
@@ -552,6 +552,7 @@ export class CollectionCardView extends CollectionSubView() {
}
}
break;
+ }
case '2':
case '4':
doc['chatFilter'] = true;
@@ -581,7 +582,6 @@ export class CollectionCardView extends CollectionSubView() {
const sortedDocs = this.sortedDocs;
const anySelected = this.childDocs.some(doc => DocumentView.SelectedDocs().includes(doc));
const isEmpty = this.childDocsWithoutLinks.length === 0;
- const isDesc = BoolCast(this.Document.cardSort_isDesc);
if (isEmpty) {
return (
diff --git a/src/client/views/global/globalScripts.ts b/src/client/views/global/globalScripts.ts
index 6ccbf28f8..2047d658f 100644
--- a/src/client/views/global/globalScripts.ts
+++ b/src/client/views/global/globalScripts.ts
@@ -138,8 +138,8 @@ ScriptingGlobals.add(function toggleOverlay(checkResult?: boolean) {
ScriptingGlobals.add(function showFreeform(attr: 'hcenter' | 'vcenter' | 'grid' | 'snaplines' | 'clusters' | 'viewAll' | 'fitOnce', checkResult?: boolean, persist?: boolean) {
const selected = DocumentView.SelectedDocs().lastElement();
- function isAttrFiltered(attr: string) {
- return StrListCast(selected._childFilters).some(filter => filter.includes(attr));
+ function isAttrFiltered(attribute: string) {
+ return StrListCast(selected._childFilters).some(filter => filter.includes(attribute));
}
// prettier-ignore
@@ -180,23 +180,23 @@ ScriptingGlobals.add(function showFreeform(attr: 'hcenter' | 'vcenter' | 'grid'
}],
['flashcards', {
checkResult: (doc: Doc) => BoolCast(Doc.UserDoc().defaultToFlashcards, false),
- setDoc: (doc: Doc, dv: DocumentView) => Doc.UserDoc().defaultToFlashcards = !Doc.UserDoc().defaultToFlashcards,
+ setDoc: (doc: Doc, dv: DocumentView) => { Doc.UserDoc().defaultToFlashcards = !Doc.UserDoc().defaultToFlashcards}, // prettier-ignore
}],
['time', {
checkResult: (doc: Doc) => StrCast(doc?.cardSort) === "time",
- setDoc: (doc: Doc, dv: DocumentView) => doc.cardSort === "time" ? doc.cardSort = '' : doc.cardSort = 'time',
+ setDoc: (doc: Doc, dv: DocumentView) => { doc.cardSort === "time" ? doc.cardSort = '' : doc.cardSort = 'time'}, // prettier-ignore
}],
['docType', {
checkResult: (doc: Doc) => StrCast(doc?.cardSort) === "type",
- setDoc: (doc: Doc, dv: DocumentView) => doc.cardSort === "type" ? doc.cardSort = '' : doc.cardSort = 'type',
+ setDoc: (doc: Doc, dv: DocumentView) => { doc.cardSort === "type" ? doc.cardSort = '' : doc.cardSort = 'type'}, // prettier-ignore
}],
['color', {
checkResult: (doc: Doc) => StrCast(doc?.cardSort) === "color",
- setDoc: (doc: Doc, dv: DocumentView) => doc.cardSort === "color" ? doc.cardSort = '' : doc.cardSort = 'color',
+ setDoc: (doc: Doc, dv: DocumentView) => { doc.cardSort === "color" ? doc.cardSort = '' : doc.cardSort = 'color'}, // prettier-ignore
}],
['tag', {
checkResult: (doc: Doc) => StrCast(doc?.cardSort) === "tag",
- setDoc: (doc: Doc, dv: DocumentView) => doc.cardSort === "tag" ? doc.cardSort = '' : doc.cardSort = 'tag',
+ setDoc: (doc: Doc, dv: DocumentView) => { doc.cardSort === "tag" ? doc.cardSort = '' : doc.cardSort = 'tag'}, // prettier-ignore
}],
['up', {
checkResult: (doc: Doc) => BoolCast(!doc?.cardSort_isDesc),
@@ -239,7 +239,7 @@ ScriptingGlobals.add(function showFreeform(attr: 'hcenter' | 'vcenter' | 'grid'
});
- const iconMap: { [key: number]: any } = {
+ const iconMap: { [key: number]: string } = {
0: 'star',
1: 'heart',
2: 'cloud',
@@ -272,7 +272,8 @@ ScriptingGlobals.add(function showFreeform(attr: 'hcenter' | 'vcenter' | 'grid'
/**
* Applies a filter to the selected document (or, if the settins button is pressed, opens the filter panel)
*/
-ScriptingGlobals.add(function handleTags(value?: any, checkResult?: boolean) {
+// eslint-disable-next-line prefer-arrow-callback
+ScriptingGlobals.add(function handleTags(value: string, checkResult?: boolean) {
const selected = DocumentView.SelectedDocs().lastElement();
function isAttrFiltered(attr: string) {
@@ -489,6 +490,7 @@ function setActiveTool(tool: InkTool | Gestures, keepPrim: boolean, checkResult?
ScriptingGlobals.add(setActiveTool, 'sets the active ink tool mode');
+// eslint-disable-next-line prefer-arrow-callback
ScriptingGlobals.add(function activeEraserTool() {
return StrCast(Doc.UserDoc().activeEraserTool, InkTool.StrokeEraser);
}, 'returns the current eraser tool');
diff --git a/src/client/views/nodes/IconTagBox.tsx b/src/client/views/nodes/IconTagBox.tsx
index e076e691a..f86372ec0 100644
--- a/src/client/views/nodes/IconTagBox.tsx
+++ b/src/client/views/nodes/IconTagBox.tsx
@@ -1,3 +1,4 @@
+import { IconProp } from '@fortawesome/fontawesome-svg-core';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { Tooltip } from '@mui/material';
import { computed } from 'mobx';
@@ -30,11 +31,11 @@ export class IconTagBox extends ObservableReactComponent<IconTagProps> {
return NumCast((this._props.doc.embedContainer as Doc)?._freeform_scale, 1);
}
- constructor(props: any) {
+ constructor(props: IconTagProps) {
super(props);
}
- componentDidUpdate(prevProps: Readonly<IconTagProps>): void {
+ componentDidUpdate(): void {
this._props.doc[DocData].tagHeight = 36 * this.currentScale;
}
@@ -52,7 +53,7 @@ export class IconTagBox extends ObservableReactComponent<IconTagProps> {
const totalWidth = (amButtons - 1) * 35 + (amButtons - 1) * 2 * 5 + 6;
const iconMap = (buttonID: number) => {
- return StrCast(Doc.UserDoc()[keys[buttonID]]);
+ return StrCast(Doc.UserDoc()[keys[buttonID]]) as IconProp;
};
const isCard = DocCast(this._props.doc.embedContainer).type_collection === CollectionViewType.Card;
@@ -69,7 +70,7 @@ export class IconTagBox extends ObservableReactComponent<IconTagProps> {
fontSize: '50px',
}}>
{numberRange(amButtons - 1).map(i => (
- <Tooltip key={i} title={<div className="dash-tooltip">Click to add/remove this card from the {iconMap(i)} group</div>}>
+ <Tooltip key={i} title={<div className="dash-tooltip">Click to add/remove this card from the {iconMap(i).toString()} group</div>}>
<button key={i} type="button" onClick={() => this.toggleButton(doc, iconMap(i))}>
{this.getButtonIcon(doc, iconMap(i))}
</button>
@@ -107,8 +108,8 @@ export class IconTagBox extends ObservableReactComponent<IconTagProps> {
* @param icon
* @returns
*/
- getButtonIcon = (doc: Doc, icon: any): JSX.Element => {
- const isActive = doc[icon];
+ getButtonIcon = (doc: Doc, icon: IconProp): JSX.Element => {
+ const isActive = doc[icon.toString()];
const color = isActive ? '#4476f7' : '#323232';
return <FontAwesomeIcon icon={icon} style={{ color, height: '30px', width: '30px' }} />;