roamjs-components 0.71.0 → 0.71.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/FormDialog.d.ts +22 -13
- package/components/FormDialog.js +47 -35
- package/components/FormDialog.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,28 +1,37 @@
|
|
|
1
|
-
|
|
1
|
+
import React from "react";
|
|
2
2
|
import { RoamOverlayProps } from "../util/createOverlayRender";
|
|
3
|
-
declare
|
|
4
|
-
|
|
3
|
+
declare type Props<T> = {
|
|
4
|
+
title?: React.ReactNode;
|
|
5
|
+
content?: React.ReactNode;
|
|
6
|
+
onSubmit?: (data: T) => Promise<unknown> | unknown;
|
|
5
7
|
fields?: Record<string, ({
|
|
6
|
-
defaultValue?: string
|
|
8
|
+
defaultValue?: string;
|
|
7
9
|
type: "text";
|
|
8
10
|
} | {
|
|
9
|
-
defaultValue?: number
|
|
11
|
+
defaultValue?: number;
|
|
10
12
|
type: "number";
|
|
11
13
|
} | {
|
|
12
|
-
defaultValue?: string
|
|
14
|
+
defaultValue?: string;
|
|
13
15
|
type: "select";
|
|
14
|
-
options?: string[]
|
|
16
|
+
options?: string[];
|
|
15
17
|
} | {
|
|
16
|
-
defaultValue?: string
|
|
18
|
+
defaultValue?: string;
|
|
17
19
|
type: "page";
|
|
18
20
|
} | {
|
|
19
|
-
defaultValue?: string
|
|
21
|
+
defaultValue?: string;
|
|
20
22
|
type: "block";
|
|
21
23
|
} | {
|
|
22
|
-
defaultValue?: boolean
|
|
24
|
+
defaultValue?: boolean;
|
|
23
25
|
type: "flag";
|
|
24
26
|
}) & {
|
|
25
|
-
label?: string
|
|
26
|
-
}
|
|
27
|
-
}
|
|
27
|
+
label?: string;
|
|
28
|
+
}>;
|
|
29
|
+
};
|
|
30
|
+
declare const FormDialog: <T extends Record<string, unknown>>({ title, content, isOpen, onClose, onSubmit, fields, }: RoamOverlayProps<Props<T>>) => JSX.Element;
|
|
31
|
+
export declare const render: (props: Props<Record<string, unknown>>) => () => void;
|
|
32
|
+
export declare const prompt: ({ defaultAnswer, question, title, }: {
|
|
33
|
+
title: string;
|
|
34
|
+
question: string;
|
|
35
|
+
defaultAnswer: string;
|
|
36
|
+
}) => Promise<string>;
|
|
28
37
|
export default FormDialog;
|
package/components/FormDialog.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.prompt = exports.render = void 0;
|
|
3
4
|
const tslib_1 = require("tslib");
|
|
4
5
|
const core_1 = require("@blueprintjs/core");
|
|
5
6
|
const react_1 = tslib_1.__importStar(require("react"));
|
|
7
|
+
const createOverlayRender_1 = tslib_1.__importDefault(require("../util/createOverlayRender"));
|
|
6
8
|
const BlockInput_1 = tslib_1.__importDefault(require("./BlockInput"));
|
|
7
9
|
const MenuItemSelect_1 = tslib_1.__importDefault(require("./MenuItemSelect"));
|
|
8
10
|
const PageInput_1 = tslib_1.__importDefault(require("./PageInput"));
|
|
9
|
-
const FormDialog = ({ isOpen, onClose, onSubmit = () => Promise.resolve(), fields = {}, }) => {
|
|
11
|
+
const FormDialog = ({ title, content, isOpen, onClose, onSubmit = () => Promise.resolve(), fields = {}, }) => {
|
|
10
12
|
const [loading, setLoading] = (0, react_1.useState)(false);
|
|
11
13
|
const [error, setError] = (0, react_1.useState)("");
|
|
12
14
|
const [data, setData] = (0, react_1.useState)(() => Object.fromEntries(Object.entries(fields)
|
|
@@ -18,45 +20,55 @@ const FormDialog = ({ isOpen, onClose, onSubmit = () => Promise.resolve(), field
|
|
|
18
20
|
setError(e.message);
|
|
19
21
|
setLoading(false);
|
|
20
22
|
}), [data, onClose, setError, setLoading]);
|
|
21
|
-
return (react_1.default.createElement(core_1.Dialog, { isOpen: isOpen, onClose: onClose },
|
|
22
|
-
react_1.default.createElement("div", { className: core_1.Classes.DIALOG_BODY },
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
react_1.default.createElement(core_1.
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
react_1.default.createElement(core_1.
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
react_1.default.createElement(
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
react_1.default.createElement(
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
react_1.default.createElement(
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
23
|
+
return (react_1.default.createElement(core_1.Dialog, { isOpen: isOpen, onClose: onClose, title: title },
|
|
24
|
+
react_1.default.createElement("div", { className: core_1.Classes.DIALOG_BODY },
|
|
25
|
+
content,
|
|
26
|
+
Object.entries(fields).map(([name, meta]) => {
|
|
27
|
+
if (meta.type === "text") {
|
|
28
|
+
return (react_1.default.createElement(core_1.Label, null,
|
|
29
|
+
meta.label,
|
|
30
|
+
react_1.default.createElement(core_1.InputGroup, { value: data[name], onChange: (e) => setData(Object.assign(Object.assign({}, data), { [name]: e.target.value })) })));
|
|
31
|
+
}
|
|
32
|
+
else if (meta.type === "number") {
|
|
33
|
+
return (react_1.default.createElement(core_1.Label, null,
|
|
34
|
+
meta.label,
|
|
35
|
+
react_1.default.createElement(core_1.NumericInput, { value: data[name], onChange: (e) => setData(Object.assign(Object.assign({}, data), { [name]: e.target.value })) })));
|
|
36
|
+
}
|
|
37
|
+
else if (meta.type === "flag") {
|
|
38
|
+
return (react_1.default.createElement(core_1.Checkbox, { label: meta.label, value: data[name], onChange: (e) => setData(Object.assign(Object.assign({}, data), { [name]: e.target.checked })) }));
|
|
39
|
+
}
|
|
40
|
+
else if (meta.type === "select") {
|
|
41
|
+
return (react_1.default.createElement(core_1.Label, null,
|
|
42
|
+
meta.label,
|
|
43
|
+
react_1.default.createElement(MenuItemSelect_1.default, { activeItem: data[name], onItemSelect: (e) => setData(Object.assign(Object.assign({}, data), { [name]: e })), items: meta.options || [] })));
|
|
44
|
+
}
|
|
45
|
+
else if (meta.type === "page") {
|
|
46
|
+
return (react_1.default.createElement(core_1.Label, null,
|
|
47
|
+
meta.label,
|
|
48
|
+
react_1.default.createElement(PageInput_1.default, { value: data[name], setValue: (e) => setData(Object.assign(Object.assign({}, data), { [name]: e })) })));
|
|
49
|
+
}
|
|
50
|
+
else if (meta.type === "block") {
|
|
51
|
+
return (react_1.default.createElement(core_1.Label, null,
|
|
52
|
+
meta.label,
|
|
53
|
+
react_1.default.createElement(BlockInput_1.default, { value: data[name], setValue: (e) => setData(Object.assign(Object.assign({}, data), { [name]: e })) })));
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
return react_1.default.createElement(react_1.default.Fragment, null);
|
|
57
|
+
}
|
|
58
|
+
})),
|
|
55
59
|
react_1.default.createElement("div", { className: core_1.Classes.DIALOG_FOOTER },
|
|
56
60
|
react_1.default.createElement("div", { className: core_1.Classes.DIALOG_FOOTER_ACTIONS },
|
|
57
61
|
react_1.default.createElement("span", { className: "text-red-700" }, error),
|
|
58
62
|
react_1.default.createElement(core_1.Button, { text: "Cancel", onClick: onClose, disabled: loading }),
|
|
59
63
|
react_1.default.createElement(core_1.Button, { text: "Submit", intent: core_1.Intent.PRIMARY, onClick: onClick, disabled: loading })))));
|
|
60
64
|
};
|
|
65
|
+
exports.render = (0, createOverlayRender_1.default)("form-dialog", FormDialog);
|
|
66
|
+
const prompt = ({ defaultAnswer, question, title, }) => new Promise((resolve) => (0, exports.render)({
|
|
67
|
+
onSubmit: (data) => resolve(data.value),
|
|
68
|
+
fields: { value: { type: "text", defaultValue: defaultAnswer } },
|
|
69
|
+
title,
|
|
70
|
+
content: question,
|
|
71
|
+
}));
|
|
72
|
+
exports.prompt = prompt;
|
|
61
73
|
exports.default = FormDialog;
|
|
62
74
|
//# sourceMappingURL=FormDialog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormDialog.js","sourceRoot":"","sources":["../src/components/FormDialog.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FormDialog.js","sourceRoot":"","sources":["../src/components/FormDialog.tsx"],"names":[],"mappings":";;;;AAAA,4CAS2B;AAC3B,uDAAqD;AACrD,8FAEqC;AACrC,sEAAsC;AACtC,8EAA8C;AAC9C,oEAAoC;AAsCpC,MAAM,UAAU,GAAG,CAAoC,EACrD,KAAK,EACL,OAAO,EACP,MAAM,EACN,OAAO,EACP,QAAQ,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAClC,MAAM,GAAG,EAAE,GACgB,EAAE,EAAE;IAC/B,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAC,EAAE,CAAC,CAAC;IACvC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAC9B,GAAG,EAAE,CACH,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;SACnB,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,OAAO,IAAI,CAAC,YAAY,KAAK,WAAW,CAAC;SAC9D,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAC7C,CACT,CAAC;IACF,MAAM,OAAO,GAAG,IAAA,mBAAW,EACzB,GAAG,EAAE,CACH,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SAC5B,IAAI,CAAC,OAAO,CAAC;SACb,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACX,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACpB,UAAU,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC,CAAC,EACN,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CACtC,CAAC;IACF,OAAO,CACL,8BAAC,aAAM,IAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK;QACpD,uCAAK,SAAS,EAAE,cAAO,CAAC,WAAW;YAChC,OAAO;YACP,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;gBAC3C,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;oBACxB,OAAO,CACL,8BAAC,YAAK;wBACH,IAAI,CAAC,KAAK;wBACX,8BAAC,iBAAU,IACT,KAAK,EAAE,IAAI,CAAC,IAAI,CAAW,EAC3B,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CACd,OAAO,iCACF,IAAI,KACP,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,IACtB,GAEJ,CACI,CACT,CAAC;iBACH;qBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;oBACjC,OAAO,CACL,8BAAC,YAAK;wBACH,IAAI,CAAC,KAAK;wBACX,8BAAC,mBAAY,IACX,KAAK,EAAE,IAAI,CAAC,IAAI,CAAW,EAC3B,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CACd,OAAO,iCACF,IAAI,KACP,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,IACtB,GAEJ,CACI,CACT,CAAC;iBACH;qBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;oBAC/B,OAAO,CACL,8BAAC,eAAQ,IACP,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,KAAK,EAAE,IAAI,CAAC,IAAI,CAAW,EAC3B,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CACd,OAAO,iCACF,IAAI,KACP,CAAC,IAAI,CAAC,EAAG,CAAC,CAAC,MAA2B,CAAC,OAAO,IAC9C,GAEJ,CACH,CAAC;iBACH;qBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;oBACjC,OAAO,CACL,8BAAC,YAAK;wBACH,IAAI,CAAC,KAAK;wBACX,8BAAC,wBAAc,IACb,UAAU,EAAE,IAAI,CAAC,IAAI,CAAW,EAChC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,CAClB,OAAO,iCACF,IAAI,KACP,CAAC,IAAI,CAAC,EAAE,CAAC,IACT,EAEJ,KAAK,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE,GACzB,CACI,CACT,CAAC;iBACH;qBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;oBAC/B,OAAO,CACL,8BAAC,YAAK;wBACH,IAAI,CAAC,KAAK;wBACX,8BAAC,mBAAS,IACR,KAAK,EAAE,IAAI,CAAC,IAAI,CAAW,EAC3B,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CACd,OAAO,iCACF,IAAI,KACP,CAAC,IAAI,CAAC,EAAE,CAAC,IACT,GAEJ,CACI,CACT,CAAC;iBACH;qBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;oBAChC,OAAO,CACL,8BAAC,YAAK;wBACH,IAAI,CAAC,KAAK;wBACX,8BAAC,oBAAU,IACT,KAAK,EAAE,IAAI,CAAC,IAAI,CAAW,EAC3B,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CACd,OAAO,iCACF,IAAI,KACP,CAAC,IAAI,CAAC,EAAE,CAAC,IACT,GAEJ,CACI,CACT,CAAC;iBACH;qBAAM;oBACL,OAAO,6DAAK,CAAC;iBACd;YACH,CAAC,CAAC,CACE;QACN,uCAAK,SAAS,EAAE,cAAO,CAAC,aAAa;YACnC,uCAAK,SAAS,EAAE,cAAO,CAAC,qBAAqB;gBAC3C,wCAAM,SAAS,EAAC,cAAc,IAAE,KAAK,CAAQ;gBAC7C,8BAAC,aAAM,IAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAI;gBAC/D,8BAAC,aAAM,IACL,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,aAAM,CAAC,OAAO,EACtB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,OAAO,GACjB,CACE,CACF,CACC,CACV,CAAC;AACJ,CAAC,CAAC;AAEW,QAAA,MAAM,GAAG,IAAA,6BAAmB,EACvC,aAAa,EACb,UAAU,CACX,CAAC;AAEK,MAAM,MAAM,GAAG,CAAC,EACrB,aAAa,EACb,QAAQ,EACR,KAAK,GAKN,EAAE,EAAE,CACH,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE,CAC9B,IAAA,cAAM,EAAC;IACL,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAe,CAAC;IACjD,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,EAAE;IAChE,KAAK;IACL,OAAO,EAAE,QAAQ;CAClB,CAAC,CACH,CAAC;AAhBS,QAAA,MAAM,UAgBf;AAEJ,kBAAe,UAAU,CAAC"}
|