@churchapps/apphelper 0.4.4 → 0.4.5
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/dist/components/CreatePerson.d.ts +1 -2
- package/dist/components/CreatePerson.d.ts.map +1 -1
- package/dist/components/CreatePerson.js +1 -6
- package/dist/components/CreatePerson.js.map +1 -1
- package/dist/components/PersonAdd.d.ts +1 -0
- package/dist/components/PersonAdd.d.ts.map +1 -1
- package/dist/components/PersonAdd.js +3 -2
- package/dist/components/PersonAdd.js.map +1 -1
- package/package.json +1 -1
- package/src/components/CreatePerson.tsx +1 -6
- package/src/components/PersonAdd.tsx +64 -62
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { PersonInterface } from "@churchapps/helpers";
|
|
2
2
|
interface CommonProps {
|
|
3
|
-
navigateOnCreate?: boolean;
|
|
4
3
|
onCreate?: (person: PersonInterface) => void;
|
|
5
4
|
}
|
|
6
5
|
type ConditionalProps = {
|
|
@@ -11,6 +10,6 @@ type ConditionalProps = {
|
|
|
11
10
|
onClose?: never;
|
|
12
11
|
};
|
|
13
12
|
type Props = CommonProps & ConditionalProps;
|
|
14
|
-
export declare function CreatePerson({
|
|
13
|
+
export declare function CreatePerson({ onCreate, showInModal, ...props }: Props): import("react/jsx-runtime").JSX.Element;
|
|
15
14
|
export {};
|
|
16
15
|
//# sourceMappingURL=CreatePerson.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreatePerson.d.ts","sourceRoot":"","sources":["../../src/components/CreatePerson.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAe,eAAe,EAAsB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"CreatePerson.d.ts","sourceRoot":"","sources":["../../src/components/CreatePerson.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAe,eAAe,EAAsB,MAAM,qBAAqB,CAAC;AAKvF,UAAU,WAAW;IACpB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;CAC7C;AAED,KAAK,gBAAgB,GAClB;IAAE,WAAW,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAAE,GAC3C;IAAE,WAAW,CAAC,EAAE,KAAK,CAAC;IAAC,OAAO,CAAC,EAAE,KAAK,CAAC;CAAE,CAAA;AAE5C,KAAK,KAAK,GAAG,WAAW,GAAG,gBAAgB,CAAA;AAE3C,wBAAgB,YAAY,CAAC,EAAE,QAAoB,EAAE,WAAmB,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,2CAmH1F"}
|
|
@@ -12,12 +12,10 @@ const helpers_2 = require("@churchapps/helpers");
|
|
|
12
12
|
const material_1 = require("@mui/material");
|
|
13
13
|
const ErrorMessages_1 = require("./ErrorMessages");
|
|
14
14
|
const useMountedState_1 = require("../hooks/useMountedState");
|
|
15
|
-
|
|
16
|
-
function CreatePerson({ navigateOnCreate = true, onCreate = () => { }, showInModal = false, ...props }) {
|
|
15
|
+
function CreatePerson({ onCreate = () => { }, showInModal = false, ...props }) {
|
|
17
16
|
const [person, setPerson] = react_1.default.useState({ name: { first: "", last: "" }, contactInfo: {} });
|
|
18
17
|
const [errors, setErrors] = react_1.default.useState([]);
|
|
19
18
|
const [isSubmitting, setIsSubmitting] = react_1.default.useState(false);
|
|
20
|
-
const [redirect, setRedirect] = react_1.default.useState("");
|
|
21
19
|
const isMounted = (0, useMountedState_1.useMountedState)();
|
|
22
20
|
const validate = () => {
|
|
23
21
|
const result = [];
|
|
@@ -61,7 +59,6 @@ function CreatePerson({ navigateOnCreate = true, onCreate = () => { }, showInMod
|
|
|
61
59
|
person.id = data[0].id;
|
|
62
60
|
onCreate(person);
|
|
63
61
|
setPerson({ ...person, name: { first: "", last: "" }, contactInfo: { email: "" } });
|
|
64
|
-
navigateOnCreate && setRedirect("/people/" + person.id);
|
|
65
62
|
}).finally(() => {
|
|
66
63
|
if (isMounted()) {
|
|
67
64
|
setIsSubmitting(false);
|
|
@@ -93,8 +90,6 @@ function CreatePerson({ navigateOnCreate = true, onCreate = () => { }, showInMod
|
|
|
93
90
|
}
|
|
94
91
|
}
|
|
95
92
|
}
|
|
96
|
-
if (redirect !== "")
|
|
97
|
-
return (0, jsx_runtime_1.jsx)(react_router_dom_1.Navigate, { to: redirect });
|
|
98
93
|
if (!helpers_1.UserHelper.checkAccess(helpers_2.Permissions.membershipApi.people.edit))
|
|
99
94
|
return null;
|
|
100
95
|
if (showInModal) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreatePerson.js","sourceRoot":"","sources":["../../src/components/CreatePerson.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;
|
|
1
|
+
{"version":3,"file":"CreatePerson.js","sourceRoot":"","sources":["../../src/components/CreatePerson.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PersonAdd.d.ts","sourceRoot":"","sources":["../../src/components/PersonAdd.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAKrD,UAAU,KAAK;
|
|
1
|
+
{"version":3,"file":"PersonAdd.d.ts","sourceRoot":"","sources":["../../src/components/PersonAdd.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAKrD,UAAU,KAAK;IACd,WAAW,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IAC/C,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,WAAW,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,MAAM,CAAC;IACjD,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;CAE7C;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA0DrC,CAAA"}
|
|
@@ -8,7 +8,7 @@ const helpers_1 = require("../helpers");
|
|
|
8
8
|
const material_1 = require("@mui/material");
|
|
9
9
|
const SmallButton_1 = require("./SmallButton");
|
|
10
10
|
const CreatePerson_1 = require("./CreatePerson");
|
|
11
|
-
const PersonAdd = ({ addFunction, getPhotoUrl, searchClicked, filterList = [], includeEmail = false, actionLabel, showCreatePersonOnNotFound = false }) => {
|
|
11
|
+
const PersonAdd = ({ addFunction, getPhotoUrl, searchClicked, filterList = [], includeEmail = false, actionLabel, showCreatePersonOnNotFound = false, onCreate }) => {
|
|
12
12
|
const [searchResults, setSearchResults] = (0, react_1.useState)([]);
|
|
13
13
|
const [searchText, setSearchText] = (0, react_1.useState)("");
|
|
14
14
|
const [hasSearched, setHasSearched] = (0, react_1.useState)(false);
|
|
@@ -45,7 +45,8 @@ const PersonAdd = ({ addFunction, getPhotoUrl, searchClicked, filterList = [], i
|
|
|
45
45
|
const sr = searchResults[i];
|
|
46
46
|
rows.push((0, jsx_runtime_1.jsxs)(material_1.TableRow, { children: [(0, jsx_runtime_1.jsx)(material_1.TableCell, { children: (0, jsx_runtime_1.jsx)("img", { src: getPhotoUrl(sr), alt: "avatar" }) }), (0, jsx_runtime_1.jsxs)(material_1.TableCell, { children: [sr.name.display, includeEmail && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)("i", { style: { color: "#999" }, children: sr.contactInfo.email })] }))] }), (0, jsx_runtime_1.jsx)(material_1.TableCell, { children: (0, jsx_runtime_1.jsx)(SmallButton_1.SmallButton, { color: "success", icon: "person", text: actionLabel || "Add", ariaLabel: "addPerson", onClick: () => handleAdd(sr), "data-testid": `add-person-${sr.id}` }) })] }, sr.id));
|
|
47
47
|
}
|
|
48
|
-
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(material_1.TextField, { fullWidth: true, name: "personAddText", label: helpers_1.Locale.label("person.person"), value: searchText, onChange: handleChange, onKeyDown: handleKeyDown, "data-testid": "person-search-input", InputProps: { endAdornment: (0, jsx_runtime_1.jsx)(material_1.Button, { variant: "contained", id: "searchButton", "data-testid": "search-button", onClick: handleSearch, children: helpers_1.Locale.label("common.search") }) } }), showCreatePersonOnNotFound && hasSearched && searchText && searchResults.length === 0 && ((0, jsx_runtime_1.jsxs)(material_1.Typography, { sx: { marginTop: "7px" }, children: [helpers_1.Locale.label("person.noRec"), " ", (0, jsx_runtime_1.jsx)("a", { href: "about:blank", onClick: (e) => { e.preventDefault(); setOpen(true); }, children: helpers_1.Locale.label("createPerson.addNewPerson") })] })), (0, jsx_runtime_1.jsx)(material_1.Table, { size: "small", id: "householdMemberAddTable", children: (0, jsx_runtime_1.jsx)(material_1.TableBody, { children: rows }) }), open && (0, jsx_runtime_1.jsx)(CreatePerson_1.CreatePerson, { showInModal: true, onClose: () => { setOpen(false); },
|
|
48
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(material_1.TextField, { fullWidth: true, name: "personAddText", label: helpers_1.Locale.label("person.person"), value: searchText, onChange: handleChange, onKeyDown: handleKeyDown, "data-testid": "person-search-input", InputProps: { endAdornment: (0, jsx_runtime_1.jsx)(material_1.Button, { variant: "contained", id: "searchButton", "data-testid": "search-button", onClick: handleSearch, children: helpers_1.Locale.label("common.search") }) } }), showCreatePersonOnNotFound && hasSearched && searchText && searchResults.length === 0 && ((0, jsx_runtime_1.jsxs)(material_1.Typography, { sx: { marginTop: "7px" }, children: [helpers_1.Locale.label("person.noRec"), " ", (0, jsx_runtime_1.jsx)("a", { href: "about:blank", onClick: (e) => { e.preventDefault(); setOpen(true); }, children: helpers_1.Locale.label("createPerson.addNewPerson") })] })), (0, jsx_runtime_1.jsx)(material_1.Table, { size: "small", id: "householdMemberAddTable", children: (0, jsx_runtime_1.jsx)(material_1.TableBody, { children: rows }) }), open && (0, jsx_runtime_1.jsx)(CreatePerson_1.CreatePerson, { showInModal: true, onClose: () => { setOpen(false); }, onCreate: person => { setSearchText(""); setSearchResults([person]); if (onCreate)
|
|
49
|
+
onCreate(person); } })] }));
|
|
49
50
|
};
|
|
50
51
|
exports.PersonAdd = PersonAdd;
|
|
51
52
|
//# sourceMappingURL=PersonAdd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PersonAdd.js","sourceRoot":"","sources":["../../src/components/PersonAdd.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;AAEb,iCAAwC;AACxC,wCAA+C;AAE/C,
|
|
1
|
+
{"version":3,"file":"PersonAdd.js","sourceRoot":"","sources":["../../src/components/PersonAdd.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -6,10 +6,8 @@ import { Permissions, PersonInterface, HouseholdInterface } from "@churchapps/he
|
|
|
6
6
|
import { Button, Dialog, DialogActions, DialogContent, DialogTitle, Grid, TextField } from "@mui/material"
|
|
7
7
|
import { ErrorMessages } from "./ErrorMessages"
|
|
8
8
|
import { useMountedState } from "../hooks/useMountedState"
|
|
9
|
-
import { Navigate } from "react-router-dom";
|
|
10
9
|
|
|
11
10
|
interface CommonProps {
|
|
12
|
-
navigateOnCreate?: boolean;
|
|
13
11
|
onCreate?: (person: PersonInterface) => void;
|
|
14
12
|
}
|
|
15
13
|
|
|
@@ -19,11 +17,10 @@ type ConditionalProps =
|
|
|
19
17
|
|
|
20
18
|
type Props = CommonProps & ConditionalProps
|
|
21
19
|
|
|
22
|
-
export function CreatePerson({
|
|
20
|
+
export function CreatePerson({ onCreate = () => { }, showInModal = false, ...props }: Props) {
|
|
23
21
|
const [person, setPerson] = React.useState<PersonInterface>({ name: { first: "", last: "" }, contactInfo: {} });
|
|
24
22
|
const [errors, setErrors] = React.useState<string[]>([]);
|
|
25
23
|
const [isSubmitting, setIsSubmitting] = React.useState(false);
|
|
26
|
-
const [redirect, setRedirect] = React.useState("");
|
|
27
24
|
const isMounted = useMountedState()
|
|
28
25
|
|
|
29
26
|
const validate = () => {
|
|
@@ -65,7 +62,6 @@ export function CreatePerson({ navigateOnCreate = true, onCreate = () => { }, sh
|
|
|
65
62
|
person.id = data[0].id
|
|
66
63
|
onCreate(person);
|
|
67
64
|
setPerson({ ...person, name: { first: "", last: "" }, contactInfo: { email: "" } });
|
|
68
|
-
navigateOnCreate && setRedirect("/people/" + person.id)
|
|
69
65
|
}).finally(() => {
|
|
70
66
|
if (isMounted()) {
|
|
71
67
|
setIsSubmitting(false);
|
|
@@ -96,7 +92,6 @@ export function CreatePerson({ navigateOnCreate = true, onCreate = () => { }, sh
|
|
|
96
92
|
}
|
|
97
93
|
}
|
|
98
94
|
|
|
99
|
-
if (redirect !== "") return <Navigate to={redirect} />;
|
|
100
95
|
if (!UserHelper.checkAccess(Permissions.membershipApi.people.edit)) return null;
|
|
101
96
|
if (showInModal) {
|
|
102
97
|
return (
|
|
@@ -3,77 +3,79 @@
|
|
|
3
3
|
import React, { useState } from "react";
|
|
4
4
|
import { ApiHelper, Locale } from "../helpers";
|
|
5
5
|
import { PersonInterface } from "@churchapps/helpers"
|
|
6
|
-
import { TextField, Button, Table, TableBody, TableRow, TableCell, Typography } from "@mui/material";
|
|
6
|
+
import { TextField, Button, Table, TableBody, TableRow, TableCell, Typography, useThemeProps } from "@mui/material";
|
|
7
7
|
import { SmallButton } from "./SmallButton";
|
|
8
8
|
import { CreatePerson } from "./CreatePerson";
|
|
9
9
|
|
|
10
10
|
interface Props {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
11
|
+
addFunction: (person: PersonInterface) => void;
|
|
12
|
+
person?: PersonInterface;
|
|
13
|
+
getPhotoUrl: (person: PersonInterface) => string;
|
|
14
|
+
searchClicked?: () => void;
|
|
15
|
+
filterList?: string[];
|
|
16
|
+
includeEmail?: boolean;
|
|
17
|
+
actionLabel?: string;
|
|
18
|
+
showCreatePersonOnNotFound?: boolean;
|
|
19
|
+
onCreate?: (person: PersonInterface) => void;
|
|
20
|
+
|
|
19
21
|
}
|
|
20
22
|
|
|
21
|
-
export const PersonAdd: React.FC<Props> = ({ addFunction, getPhotoUrl, searchClicked, filterList = [], includeEmail = false, actionLabel, showCreatePersonOnNotFound = false }) => {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
export const PersonAdd: React.FC<Props> = ({ addFunction, getPhotoUrl, searchClicked, filterList = [], includeEmail = false, actionLabel, showCreatePersonOnNotFound = false, onCreate }) => {
|
|
24
|
+
const [searchResults, setSearchResults] = useState<PersonInterface[]>([]);
|
|
25
|
+
const [searchText, setSearchText] = useState("");
|
|
26
|
+
const [hasSearched, setHasSearched] = useState<boolean>(false);
|
|
27
|
+
const [open, setOpen] = useState<boolean>(false);
|
|
26
28
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
+
const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => { e.preventDefault(); setHasSearched(false); setSearchText(e.currentTarget.value); }
|
|
30
|
+
const handleKeyDown = (e: React.KeyboardEvent<any>) => { if (e.key === "Enter") { e.preventDefault(); handleSearch(null); } }
|
|
29
31
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
32
|
+
const handleSearch = (e: React.MouseEvent) => {
|
|
33
|
+
if (e !== null) e.preventDefault();
|
|
34
|
+
let term = searchText.trim();
|
|
35
|
+
ApiHelper.post("/people/search", { term: term }, "MembershipApi")
|
|
36
|
+
.then((data: PersonInterface[]) => {
|
|
37
|
+
setHasSearched(true);
|
|
38
|
+
const filteredResult = data.filter(s => !filterList.includes(s.id))
|
|
39
|
+
setSearchResults(filteredResult);
|
|
40
|
+
if (searchClicked) {
|
|
41
|
+
searchClicked();
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
const handleAdd = (person: PersonInterface) => {
|
|
46
|
+
let sr: PersonInterface[] = [...searchResults];
|
|
47
|
+
const idx = sr.indexOf(person);
|
|
48
|
+
sr.splice(idx, 1);
|
|
49
|
+
setSearchResults(sr);
|
|
50
|
+
addFunction(person);
|
|
51
|
+
}
|
|
50
52
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
53
|
+
//<button className="text-success no-default-style" aria-label="addPerson" data-index={i} onClick={handleAdd}><Icon>person</Icon> Add</button>
|
|
54
|
+
let rows = [];
|
|
55
|
+
for (let i = 0; i < searchResults.length; i++) {
|
|
56
|
+
const sr = searchResults[i];
|
|
55
57
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
58
|
+
rows.push(
|
|
59
|
+
<TableRow key={sr.id}>
|
|
60
|
+
<TableCell><img src={getPhotoUrl(sr)} alt="avatar" /></TableCell>
|
|
61
|
+
<TableCell>{sr.name.display}{includeEmail && (<><br /><i style={{ color: "#999" }}>{sr.contactInfo.email}</i></>)}</TableCell>
|
|
62
|
+
<TableCell>
|
|
63
|
+
<SmallButton color="success" icon="person" text={actionLabel || "Add"} ariaLabel="addPerson" onClick={() => handleAdd(sr)} data-testid={`add-person-${sr.id}`} />
|
|
64
|
+
</TableCell>
|
|
65
|
+
</TableRow>
|
|
66
|
+
);
|
|
67
|
+
}
|
|
66
68
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
69
|
+
return (
|
|
70
|
+
<>
|
|
71
|
+
<TextField fullWidth name="personAddText" label={Locale.label("person.person")} value={searchText} onChange={handleChange} onKeyDown={handleKeyDown} data-testid="person-search-input"
|
|
72
|
+
InputProps={{ endAdornment: <Button variant="contained" id="searchButton" data-testid="search-button" onClick={handleSearch}>{Locale.label("common.search")}</Button> }}
|
|
73
|
+
/>
|
|
74
|
+
{showCreatePersonOnNotFound && hasSearched && searchText && searchResults.length === 0 && (
|
|
75
|
+
<Typography sx={{ marginTop: "7px" }}>{Locale.label("person.noRec")} <a href="about:blank" onClick={(e) => { e.preventDefault(); setOpen(true); }}>{Locale.label("createPerson.addNewPerson")}</a></Typography>
|
|
76
|
+
)}
|
|
77
|
+
<Table size="small" id="householdMemberAddTable"><TableBody>{rows}</TableBody></Table>
|
|
78
|
+
{open && <CreatePerson showInModal onClose={() => { setOpen(false); }} onCreate={person => { setSearchText(""); setSearchResults([person]); if (onCreate) onCreate(person); }} />}
|
|
79
|
+
</>
|
|
80
|
+
);
|
|
79
81
|
}
|