aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBob Zeleznik <zzzman@gmail.com>2020-04-08 21:31:15 -0400
committerBob Zeleznik <zzzman@gmail.com>2020-04-08 21:31:15 -0400
commit7a0e13267df4cae0fee2ecb0908261497c2a4515 (patch)
tree921bfae320c560283335d7bb76ae2feac6224f01 /src
parent9bb6366fe72661e933c58ac1f639f00e5f2913e2 (diff)
reversions
Diffstat (limited to 'src')
-rw-r--r--src/client/documents/Documents.ts2
-rw-r--r--src/client/util/Scripting.ts1
-rw-r--r--src/client/views/MainView.tsx6
-rw-r--r--src/client/views/ScriptBox.scss8
-rw-r--r--src/client/views/ScriptBox.tsx82
5 files changed, 17 insertions, 82 deletions
diff --git a/src/client/documents/Documents.ts b/src/client/documents/Documents.ts
index b99abc07b..5eca71ca9 100644
--- a/src/client/documents/Documents.ts
+++ b/src/client/documents/Documents.ts
@@ -931,7 +931,7 @@ export namespace DocUtils {
});
ContextMenu.Instance.addItem({
description: "Add Template Doc ...",
- subitems: DocListCast(Cast(Doc.UserDoc().expandingButtons, Doc, null) ?.data).map(btnDoc => Cast(btnDoc ?.dragFactory, Doc, null)).filter(doc => doc).map((dragDoc, i) => ({
+ subitems: DocListCast(Cast(Doc.UserDoc().expandingButtons, Doc, null)?.data).map(btnDoc => Cast(btnDoc?.dragFactory, Doc, null)).filter(doc => doc).map((dragDoc, i) => ({
description: ":" + StrCast(dragDoc.title),
event: (args: { x: number, y: number }) => {
const newDoc = Doc.ApplyTemplate(dragDoc);
diff --git a/src/client/util/Scripting.ts b/src/client/util/Scripting.ts
index 8207b940d..f97d91d10 100644
--- a/src/client/util/Scripting.ts
+++ b/src/client/util/Scripting.ts
@@ -275,7 +275,6 @@ export function CompileScript(script: string, options: ScriptOptions = {}): Comp
const result = Run(outputText, paramNames, diagnostics, script, options);
-
if (options.globals) {
Scripting.resetScriptingGlobals();
}
diff --git a/src/client/views/MainView.tsx b/src/client/views/MainView.tsx
index d7c769ddd..721a478a6 100644
--- a/src/client/views/MainView.tsx
+++ b/src/client/views/MainView.tsx
@@ -55,7 +55,7 @@ export class MainView extends React.Component {
@observable private _panelHeight: number = 0;
@observable private _flyoutTranslate: boolean = true;
@observable public flyoutWidth: number = 250;
- private get darkScheme() { return BoolCast(Cast(this.userDoc.activeWorkspace, Doc, null) ?.darkScheme); }
+ private get darkScheme() { return BoolCast(Cast(this.userDoc.activeWorkspace, Doc, null)?.darkScheme); }
@computed private get userDoc() { return Doc.UserDoc(); }
@computed private get mainContainer() { return this.userDoc ? FieldValue(Cast(this.userDoc.activeWorkspace, Doc)) : CurrentUserUtils.GuestWorkspace; }
@@ -390,7 +390,7 @@ export class MainView extends React.Component {
mainContainerXf = () => new Transform(0, -this._buttonBarHeight, 1);
@computed get flyout() {
- const sidebarContent = this.userDoc ?.sidebarContainer;
+ const sidebarContent = this.userDoc?.sidebarContainer;
if (!(sidebarContent instanceof Doc)) {
return (null);
}
@@ -506,7 +506,7 @@ export class MainView extends React.Component {
return new Transform(-translateX, -translateY, 1 / scale);
}
@computed get docButtons() {
- const expandingBtns = Doc.UserDoc() ?.expandingButtons;
+ const expandingBtns = Doc.UserDoc()?.expandingButtons;
if (expandingBtns instanceof Doc) {
return <div className="mainView-docButtons" ref={this._docBtnRef}
style={{ height: !expandingBtns.linearViewIsExpanded ? "42px" : undefined }} >
diff --git a/src/client/views/ScriptBox.scss b/src/client/views/ScriptBox.scss
index b91a36c1f..28326624a 100644
--- a/src/client/views/ScriptBox.scss
+++ b/src/client/views/ScriptBox.scss
@@ -3,9 +3,6 @@
height: 100%;
display: flex;
flex-direction: column;
- pointer-events: all;
- background-color: rgb(241, 239, 235);
- padding: 10px;
}
.scriptBox-toolbar {
@@ -17,9 +14,4 @@
height: 100%;
box-sizing: border-box;
resize: none;
- padding: 7px;
-}
-
-.scriptBox-button {
- width: 50%
} \ No newline at end of file
diff --git a/src/client/views/ScriptBox.tsx b/src/client/views/ScriptBox.tsx
index f094feb0b..81e8dbcbb 100644
--- a/src/client/views/ScriptBox.tsx
+++ b/src/client/views/ScriptBox.tsx
@@ -7,50 +7,28 @@ import { OverlayView } from "./OverlayView";
import { DocumentIconContainer } from "./nodes/DocumentIcon";
import { Opt, Doc } from "../../new_fields/Doc";
import { emptyFunction } from "../../Utils";
-import { ScriptCast, StrCast } from "../../new_fields/Types";
+import { ScriptCast } from "../../new_fields/Types";
import { CompileScript } from "../util/Scripting";
import { ScriptField } from "../../new_fields/ScriptField";
import { DragManager } from "../util/DragManager";
import { EditableView } from "./EditableView";
-import { FieldView, FieldViewProps } from "./nodes/FieldView";
-import { DocAnnotatableComponent } from "./DocComponent";
-import { makeInterface } from "../../new_fields/Schema";
-import { documentSchema } from "../../new_fields/documentSchemas";
-import { CompileResult } from "../northstar/model/idea/idea";
-import { red } from "colors";
-import { forEach } from "typescript-collections/dist/lib/arrays";
export interface ScriptBoxProps {
- onSave?: (text: string, onError: (error: string) => void) => void;
+ onSave: (text: string, onError: (error: string) => void) => void;
onCancel?: () => void;
initialText?: string;
showDocumentIcons?: boolean;
setParams?: (p: string[]) => void;
}
-type ScriptDocument = makeInterface<[typeof documentSchema]>;
-const ScriptDocument = makeInterface(documentSchema);
-
@observer
-export class ScriptBox extends DocAnnotatableComponent<FieldViewProps & ScriptBoxProps, ScriptDocument>(ScriptDocument) {
- protected multiTouchDisposer?: import("../util/InteractionUtils").InteractionUtils.MultiTouchEventDisposer | undefined;
- public static LayoutString(fieldStr: string) { return FieldView.LayoutString(ScriptBox, fieldStr); }
-
+export class ScriptBox extends React.Component<ScriptBoxProps> {
@observable
private _scriptText: string;
- @observable
- private _errorMessage: string;
-
constructor(props: ScriptBoxProps) {
super(props);
this._scriptText = props.initialText || "";
- this._errorMessage = "";
- }
-
- @action
- componentDidMount() {
- this._scriptText = StrCast(this.props.Document.documentText) || this.props.initialText || "";
}
@action
@@ -59,10 +37,8 @@ export class ScriptBox extends DocAnnotatableComponent<FieldViewProps & ScriptBo
}
@action
- onError = (error: any) => {
- for (const entry of error) {
- this._errorMessage = this._errorMessage + " " + entry.messageText;
- }
+ onError = (error: string) => {
+ console.log(error);
}
overlayDisposer?: () => void;
@@ -77,43 +53,12 @@ export class ScriptBox extends DocAnnotatableComponent<FieldViewProps & ScriptBo
this.overlayDisposer?.();
}
- @action
- onCompile = () => {
- const result = CompileScript(this._scriptText, {});
- this._errorMessage = "";
- if (result.compiled) {
- this._errorMessage = "";
- this.props.Document.data = new ScriptField(result);
- }
- else {
- this.onError(result.errors);
- }
- this.props.Document.documentText = this._scriptText;
- }
-
- @action
- onRun = () => {
- const result = CompileScript(this._scriptText, {});
- this._errorMessage = "";
- if (result.compiled) {
- result.run({}, (err: any) => {
- this._errorMessage = "";
- this.onError(err);
- });
- this.props.Document.data = new ScriptField(result);
- }
- else {
- this.onError(result.errors);
- }
- this.props.Document.documentText = this._scriptText;
- }
-
render() {
let onFocus: Opt<() => void> = undefined, onBlur: Opt<() => void> = undefined;
- //if (this.props.showDocumentIcons) {
- onFocus = this.onFocus;
- onBlur = this.onBlur;
- // }
+ if (this.props.showDocumentIcons) {
+ onFocus = this.onFocus;
+ onBlur = this.onBlur;
+ }
const params = <EditableView
contents={""}
display={"block"}
@@ -126,13 +71,12 @@ export class ScriptBox extends DocAnnotatableComponent<FieldViewProps & ScriptBo
return (
<div className="scriptBox-outerDiv">
<div style={{ display: "flex", flexDirection: "column", height: "100%" }}>
- <textarea className="scriptBox-textarea" placeholder="write your script here" onChange={this.onChange} value={this._scriptText} onFocus={onFocus} onBlur={onBlur}></textarea>
- <div className="errorMessage">{this._errorMessage}</div>
+ <textarea className="scriptBox-textarea" onChange={this.onChange} value={this._scriptText} onFocus={onFocus} onBlur={onBlur}></textarea>
<div style={{ background: "beige" }} >{params}</div>
</div>
<div className="scriptBox-toolbar">
- <button className="scriptBox-button" onPointerDown={e => { this.onCompile(); e.stopPropagation(); }}>Compile</button>
- <button className="scriptBox-button" onPointerDown={e => { this.onRun(); e.stopPropagation(); }}>Run</button>
+ <button onClick={e => { this.props.onSave(this._scriptText, this.onError); e.stopPropagation(); }}>Save</button>
+ <button onClick={e => { this.props.onCancel && this.props.onCancel(); e.stopPropagation(); }}>Cancel</button>
</div>
</div>
);
@@ -179,4 +123,4 @@ export class ScriptBox extends DocAnnotatableComponent<FieldViewProps & ScriptBo
}} showDocumentIcons />;
overlayDisposer = OverlayView.Instance.addWindow(scriptingBox, { x: 400, y: 200, width: 500, height: 400, title });
}
-}
+} \ No newline at end of file