aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/EditableView.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/views/EditableView.tsx')
-rw-r--r--src/client/views/EditableView.tsx19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/client/views/EditableView.tsx b/src/client/views/EditableView.tsx
index dd5395802..4a77db3d6 100644
--- a/src/client/views/EditableView.tsx
+++ b/src/client/views/EditableView.tsx
@@ -4,6 +4,7 @@ import { observable, action, trace } from 'mobx';
import "./EditableView.scss";
import * as Autosuggest from 'react-autosuggest';
import { undoBatch } from '../util/UndoManager';
+import { SchemaHeaderField } from '../../new_fields/SchemaHeaderField';
export interface EditableProps {
/**
@@ -41,6 +42,10 @@ export interface EditableProps {
editing?: boolean;
onClick?: (e: React.MouseEvent) => boolean;
isEditingCallback?: (isEditing: boolean) => void;
+ HeadingObject?: SchemaHeaderField | undefined;
+ HeadingsHack?: number;
+ toggle?: () => void;
+ color?: string | undefined;
}
/**
@@ -51,6 +56,7 @@ export interface EditableProps {
@observer
export class EditableView extends React.Component<EditableProps> {
@observable _editing: boolean = false;
+ @observable _headingsHack: number = 1;
constructor(props: EditableProps) {
super(props);
@@ -67,6 +73,14 @@ export class EditableView extends React.Component<EditableProps> {
}
}
+ collapseSection() {
+ if (this.props.HeadingObject) {
+ this._headingsHack++;
+ this.props.HeadingObject.setCollapsed(!this.props.HeadingObject.collapsed);
+ this.props.toggle && this.props.toggle();
+ }
+ }
+
@action
onKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {
if (e.key === "Tab") {
@@ -96,6 +110,11 @@ export class EditableView extends React.Component<EditableProps> {
this._editing = true;
this.props.isEditingCallback && this.props.isEditingCallback(true);
}
+ if (e.ctrlKey) {
+ this._editing = false;
+ this.props.isEditingCallback && this.props.isEditingCallback(false);
+ this.collapseSection();
+ }
e.stopPropagation();
}