swoop-common 2.1.23 → 2.1.25

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.
@@ -5,6 +5,7 @@ interface ComponentPickerModalProps {
5
5
  onClose: () => void;
6
6
  onSelect: (component: DTOComponentRead) => void;
7
7
  selectedComponent?: DTOComponentRead | null;
8
+ parentIdsFilter?: Array<string>;
8
9
  }
9
- export default function ComponentPickerModal({ open, onClose, onSelect, selectedComponent, }: ComponentPickerModalProps): React.JSX.Element;
10
+ export default function ComponentPickerModal({ open, onClose, onSelect, selectedComponent, parentIdsFilter }: ComponentPickerModalProps): React.JSX.Element;
10
11
  export {};
@@ -13,7 +13,7 @@ import { Search as SearchIcon, Clear as ClearIcon, FilterList as FilterIcon, } f
13
13
  import { PARTNER_REGION_READABLE } from "../consts/region";
14
14
  import { fetchComponents, getAllPartners } from "../util/api";
15
15
  import { InternalServices } from "../../api/init";
16
- export default function ComponentPickerModal({ open, onClose, onSelect, selectedComponent, }) {
16
+ export default function ComponentPickerModal({ open, onClose, onSelect, selectedComponent, parentIdsFilter }) {
17
17
  const [searchTerm, setSearchTerm] = useState("");
18
18
  const [selectedRegion, setSelectedRegion] = useState("");
19
19
  const [selectedPartner, setSelectedPartner] = useState("");
@@ -91,6 +91,9 @@ export default function ComponentPickerModal({ open, onClose, onSelect, selected
91
91
  query.partners = selectedPartner;
92
92
  if (selectedTemplate)
93
93
  query.templateId = selectedTemplate;
94
+ // Parent ids overwrites templateid filter
95
+ if (parentIdsFilter === null || parentIdsFilter === void 0 ? void 0 : parentIdsFilter.length)
96
+ query.templateId = parentIdsFilter.join(",");
94
97
  const { data, pagination } = yield fetchComponents(query);
95
98
  setComponents(data || []);
96
99
  setTotalCount(pagination.total || 0);
@@ -149,12 +152,13 @@ export default function ComponentPickerModal({ open, onClose, onSelect, selected
149
152
  React.createElement(TextField, { select: true, size: "small", label: "Partner", value: selectedPartner, onChange: (e) => setSelectedPartner(e.target.value), sx: { minWidth: 160 } },
150
153
  React.createElement(MenuItem, { value: "" }, "All Partners"),
151
154
  usedPartners.map((partner) => (React.createElement(MenuItem, { key: partner.id, value: partner.id }, partner.name)))),
152
- React.createElement(TextField, { select: true, size: "small", label: "Type", value: selectedTemplate, onChange: (e) => setSelectedTemplate(e.target.value), sx: { minWidth: 160 } },
153
- React.createElement(MenuItem, { value: "" }, "All Types"),
154
- usedTemplates.map((template) => (React.createElement(MenuItem, { key: template.id, value: template.id },
155
- template.name,
156
- " v",
157
- template.revision))))),
155
+ !(parentIdsFilter === null || parentIdsFilter === void 0 ? void 0 : parentIdsFilter.length) &&
156
+ React.createElement(TextField, { select: true, size: "small", label: "Type", value: selectedTemplate, onChange: (e) => setSelectedTemplate(e.target.value), sx: { minWidth: 160 } },
157
+ React.createElement(MenuItem, { value: "" }, "All Types"),
158
+ usedTemplates.map((template) => (React.createElement(MenuItem, { key: template.id, value: template.id },
159
+ template.name,
160
+ " v",
161
+ template.revision))))),
158
162
  React.createElement(Box, { display: "flex", alignItems: "center", gap: 2, mb: 1 },
159
163
  React.createElement(Typography, { variant: "body2", color: "text.secondary" },
160
164
  totalCount,
@@ -20,9 +20,11 @@ export const ComponentPickerProvider = ({ children }) => {
20
20
  const [open, setOpen] = useState(false);
21
21
  const changeProp = useRef(() => { });
22
22
  const closeProp = useRef(() => { });
23
- const getSelectedComponent = () => __awaiter(void 0, void 0, void 0, function* () {
23
+ const [parentIds, setParentIds] = useState([]);
24
+ const getSelectedComponent = (...args_1) => __awaiter(void 0, [...args_1], void 0, function* (parentIds = []) {
24
25
  setOpen(true);
25
26
  return new Promise((res, rej) => {
27
+ setParentIds(parentIds);
26
28
  // In case of old refs being called (so i dont need to explicitly remove them)
27
29
  let done = false;
28
30
  changeProp.current = (value) => {
@@ -42,6 +44,6 @@ export const ComponentPickerProvider = ({ children }) => {
42
44
  });
43
45
  });
44
46
  return (React.createElement(ComponentSelectorContext.Provider, { value: { get: getSelectedComponent } },
45
- React.createElement(ComponentPickerModal, { open: open, onClose: closeProp.current, onSelect: changeProp.current }),
47
+ React.createElement(ComponentPickerModal, { parentIdsFilter: parentIds.length ? parentIds : undefined, open: open, onClose: closeProp.current, onSelect: changeProp.current }),
46
48
  children));
47
49
  };
@@ -18,11 +18,28 @@ const FormComponentPicker = ({ components, selectedComponent, onChange, template
18
18
  const selected = components.find(c => c.id === selectedComponent) || null;
19
19
  const { get } = useComponentPicker();
20
20
  return (React.createElement(Paper, { component: "form", sx: { display: 'flex', flexDirection: 'column', gap: 1, p: 2, mb: 1 }, noValidate: true, autoComplete: "off" },
21
- React.createElement(Button, { onClick: (e) => {
21
+ React.createElement(Button, { onClick: () => {
22
22
  get()
23
- .then((comp) => onChange(comp.id))
24
- .finally(() => { });
25
- } }, (selected === null || selected === void 0 ? void 0 : selected.name) || label)));
23
+ .then((comp) => {
24
+ onChange(comp.id);
25
+ })
26
+ .catch(() => { });
27
+ }, variant: "outlined", fullWidth: true, sx: {
28
+ height: 56,
29
+ fontSize: "1rem",
30
+ fontWeight: 500,
31
+ borderRadius: 1,
32
+ textTransform: "none",
33
+ justifyContent: "flex-start",
34
+ px: 2,
35
+ // Red if not selected
36
+ color: !selectedComponent ? "error.main" : "text.primary",
37
+ borderColor: !selectedComponent ? "error.main" : "divider",
38
+ "&:hover": {
39
+ borderColor: !selectedComponent ? "error.dark" : undefined,
40
+ backgroundColor: !selectedComponent ? "rgba(211, 47, 47, 0.04)" : undefined,
41
+ },
42
+ } }, selectedComponent ? selected === null || selected === void 0 ? void 0 : selected.name : "Select " + label + " Component")));
26
43
  };
27
44
  const FormRendererComponentPicker = ({ data, handleChange, path, label, enabled, schema }) => {
28
45
  const [components, setComponents] = useState([]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "swoop-common",
3
- "version": "2.1.23",
3
+ "version": "2.1.25",
4
4
  "main": "dist/api/index.js",
5
5
  "types": "dist/api/index.d.ts",
6
6
  "exports": {