aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/nodes/formattedText/DashFieldView.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/views/nodes/formattedText/DashFieldView.tsx')
-rw-r--r--src/client/views/nodes/formattedText/DashFieldView.tsx34
1 files changed, 18 insertions, 16 deletions
diff --git a/src/client/views/nodes/formattedText/DashFieldView.tsx b/src/client/views/nodes/formattedText/DashFieldView.tsx
index 9903d0e8a..f0313fba4 100644
--- a/src/client/views/nodes/formattedText/DashFieldView.tsx
+++ b/src/client/views/nodes/formattedText/DashFieldView.tsx
@@ -1,6 +1,3 @@
-/* eslint-disable jsx-a11y/no-static-element-interactions */
-/* eslint-disable jsx-a11y/click-events-have-key-events */
-/* eslint-disable jsx-a11y/control-has-associated-label */
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { Tooltip } from '@mui/material';
import { action, computed, IReactionDisposer, makeObservable, observable, reaction, runInAction } from 'mobx';
@@ -26,6 +23,8 @@ import { ObservableReactComponent } from '../../ObservableReactComponent';
import { OpenWhere } from '../OpenWhere';
import './DashFieldView.scss';
import { FormattedTextBox } from './FormattedTextBox';
+import { Node } from 'prosemirror-model';
+import { EditorView } from 'prosemirror-view';
@observer
export class DashFieldViewMenu extends AntimodeMenu<AntimodeMenuProps> {
@@ -34,7 +33,7 @@ export class DashFieldViewMenu extends AntimodeMenu<AntimodeMenuProps> {
static createFieldView: (e: React.MouseEvent) => void = emptyFunction;
static toggleFieldHide: () => void = emptyFunction;
static toggleValueHide: () => void = emptyFunction;
- constructor(props: any) {
+ constructor(props: AntimodeMenuProps) {
super(props);
DashFieldViewMenu.Instance = this;
}
@@ -100,8 +99,8 @@ interface IDashFieldViewInternal {
height: number;
editable: boolean;
nodeSelected: () => boolean;
- node: any;
- getPos: any;
+ node: Node;
+ getPos: () => number;
unclickable: () => boolean;
}
@@ -274,7 +273,9 @@ export class DashFieldViewInternal extends ObservableReactComponent<IDashFieldVi
<select className="dashFieldView-select" tabIndex={-1} defaultValue={this._dashDoc && Field.toKeyValueString(this._dashDoc, this._fieldKey)} onChange={this.selectVal}>
<option value="-unset-">-unset-</option>
{this.values.map(val => (
- <option value={val.value}>{val.label}</option>
+ <option key={val.value} value={val.value}>
+ {val.label}
+ </option>
))}
</select>
)}
@@ -284,16 +285,17 @@ export class DashFieldViewInternal extends ObservableReactComponent<IDashFieldVi
}
export class DashFieldView {
dom: HTMLDivElement; // container for label and value
- root: any;
- node: any;
+ root: ReactDOM.Root;
+ node: Node;
tbox: FormattedTextBox;
- getpos: any;
+ getpos: () => number | undefined;
@observable _nodeSelected = false;
NodeSelected = () => this._nodeSelected;
- unclickable = () => !this.tbox._props.rootSelected?.() && this.node.marks.some((m: any) => m.type === this.tbox.EditorView?.state.schema.marks.linkAnchor && m.attrs.noPreview);
- constructor(node: any, view: any, getPos: any, tbox: FormattedTextBox) {
+ unclickable = () => !this.tbox._props.rootSelected?.() && this.node.marks.some(m => m.type === this.tbox.EditorView?.state.schema.marks.linkAnchor && m.attrs.noPreview);
+ constructor(node: Node, view: EditorView, getPos: () => number | undefined, tbox: FormattedTextBox) {
makeObservable(this);
+ const getPosition = () => getPos() ?? 0;
this.node = node;
this.tbox = tbox;
this.getpos = getPos;
@@ -312,7 +314,7 @@ export class DashFieldView {
const editor = tbox.EditorView;
if (editor) {
const { state } = editor;
- for (let i = this.getpos() + 1; i < state.doc.content.size; i++) {
+ for (let i = getPosition() + 1; i < state.doc.content.size; i++) {
if (state.doc.nodeAt(i)?.type.name === state.schema.nodes.dashField.name) {
editor.dispatch(state.tr.setSelection(new NodeSelection(state.doc.resolve(i))));
return;
@@ -321,10 +323,10 @@ export class DashFieldView {
}
}
};
- this.dom.onkeyup = function (e: any) {
+ this.dom.onkeyup = function (e: KeyboardEvent) {
e.stopPropagation();
};
- this.dom.onmousedown = function (e: any) {
+ this.dom.onmousedown = function (e: MouseEvent) {
e.stopPropagation();
};
@@ -333,7 +335,7 @@ export class DashFieldView {
<DashFieldViewInternal
node={node}
unclickable={this.unclickable}
- getPos={getPos}
+ getPos={getPosition}
fieldKey={node.attrs.fieldKey}
docId={node.attrs.docId}
width={node.attrs.width}