@commercetools-frontend-extensions/export-resources-modal 4.6.2 → 4.6.4

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.
@@ -886,6 +886,20 @@ const useStartExportOperation = props => {
886
886
  try {
887
887
  if (!projectKey) throw new Error('Project key is missing');
888
888
  const fields = extractFieldNamesFromGroups(values.groups);
889
+ let where = undefined;
890
+ let filters = undefined;
891
+ if (exportType === EXPORT_TYPES.SELECTED && props.selectedResourceIds?.length) {
892
+ where = buildSelectedExportFilters(props.selectedResourceIds);
893
+ } else if (exportType === EXPORT_TYPES.FILTERED) {
894
+ if (props.filters?.queryPredicate) {
895
+ where = props.filters.queryPredicate;
896
+ }
897
+ if (props.filters?.searchQuery) {
898
+ filters = {
899
+ query: props.filters.searchQuery
900
+ };
901
+ }
902
+ }
889
903
  const response = await createExportOperation({
890
904
  projectKey,
891
905
  resourceType: props.resourceType,
@@ -893,8 +907,8 @@ const useStartExportOperation = props => {
893
907
  fileFormat: values.outputFormat,
894
908
  locales: values.locales,
895
909
  fields,
896
- where: exportType === EXPORT_TYPES.SELECTED && props.selectedResourceIds?.length ? buildSelectedExportFilters(props.selectedResourceIds) : props.filters?.queryPredicate || undefined,
897
- filters: props.filters?.searchQuery || undefined
910
+ where,
911
+ filters
898
912
  }, asyncDispatch);
899
913
  switch (response.state) {
900
914
  case EXPORT_OPERATION_STATES.QUEUED:
@@ -944,7 +958,8 @@ function ExportScopeSection() {
944
958
  hasFilters = _useExportResourcesMo.hasFilters,
945
959
  selectedResourceIds = _useExportResourcesMo.selectedResourceIds,
946
960
  setExportType = _useExportResourcesMo.setExportType,
947
- resourceType = _useExportResourcesMo.resourceType;
961
+ resourceType = _useExportResourcesMo.resourceType,
962
+ hideExportSelectedResourcesOption = _useExportResourcesMo.hideExportSelectedResourcesOption;
948
963
  return jsxRuntime.jsx(uiKit.Spacings.Stack, {
949
964
  scale: "m",
950
965
  children: jsxRuntime.jsxs(uiKit.RadioInput.Group, {
@@ -976,7 +991,7 @@ function ExportScopeSection() {
976
991
  }
977
992
  }) : messages.exportScopeFilteredWithoutCount
978
993
  })
979
- }), jsxRuntime.jsx(uiKit.RadioInput.Option, {
994
+ }), !hideExportSelectedResourcesOption && jsxRuntime.jsx(uiKit.RadioInput.Option, {
980
995
  value: EXPORT_TYPES.SELECTED,
981
996
  isDisabled: !selectedResourceIds?.length,
982
997
  children: jsxRuntime.jsx(uiKit.Text.Body, {
@@ -1690,6 +1705,7 @@ const ExportResourcesProvider = _ref => {
1690
1705
  exportType: exportType,
1691
1706
  totalResourcesCount: props.totalResourcesCount,
1692
1707
  selectedResourceIds: props.selectedResourceIds,
1708
+ hideExportSelectedResourcesOption: props.hideExportSelectedResourcesOption,
1693
1709
  filters: props.filters,
1694
1710
  hasFilters: areFiltersApplied(props.filters),
1695
1711
  setExportType
@@ -886,6 +886,20 @@ const useStartExportOperation = props => {
886
886
  try {
887
887
  if (!projectKey) throw new Error('Project key is missing');
888
888
  const fields = extractFieldNamesFromGroups(values.groups);
889
+ let where = undefined;
890
+ let filters = undefined;
891
+ if (exportType === EXPORT_TYPES.SELECTED && props.selectedResourceIds?.length) {
892
+ where = buildSelectedExportFilters(props.selectedResourceIds);
893
+ } else if (exportType === EXPORT_TYPES.FILTERED) {
894
+ if (props.filters?.queryPredicate) {
895
+ where = props.filters.queryPredicate;
896
+ }
897
+ if (props.filters?.searchQuery) {
898
+ filters = {
899
+ query: props.filters.searchQuery
900
+ };
901
+ }
902
+ }
889
903
  const response = await createExportOperation({
890
904
  projectKey,
891
905
  resourceType: props.resourceType,
@@ -893,8 +907,8 @@ const useStartExportOperation = props => {
893
907
  fileFormat: values.outputFormat,
894
908
  locales: values.locales,
895
909
  fields,
896
- where: exportType === EXPORT_TYPES.SELECTED && props.selectedResourceIds?.length ? buildSelectedExportFilters(props.selectedResourceIds) : props.filters?.queryPredicate || undefined,
897
- filters: props.filters?.searchQuery || undefined
910
+ where,
911
+ filters
898
912
  }, asyncDispatch);
899
913
  switch (response.state) {
900
914
  case EXPORT_OPERATION_STATES.QUEUED:
@@ -944,7 +958,8 @@ function ExportScopeSection() {
944
958
  hasFilters = _useExportResourcesMo.hasFilters,
945
959
  selectedResourceIds = _useExportResourcesMo.selectedResourceIds,
946
960
  setExportType = _useExportResourcesMo.setExportType,
947
- resourceType = _useExportResourcesMo.resourceType;
961
+ resourceType = _useExportResourcesMo.resourceType,
962
+ hideExportSelectedResourcesOption = _useExportResourcesMo.hideExportSelectedResourcesOption;
948
963
  return jsxRuntime.jsx(uiKit.Spacings.Stack, {
949
964
  scale: "m",
950
965
  children: jsxRuntime.jsxs(uiKit.RadioInput.Group, {
@@ -976,7 +991,7 @@ function ExportScopeSection() {
976
991
  }
977
992
  }) : messages.exportScopeFilteredWithoutCount
978
993
  })
979
- }), jsxRuntime.jsx(uiKit.RadioInput.Option, {
994
+ }), !hideExportSelectedResourcesOption && jsxRuntime.jsx(uiKit.RadioInput.Option, {
980
995
  value: EXPORT_TYPES.SELECTED,
981
996
  isDisabled: !selectedResourceIds?.length,
982
997
  children: jsxRuntime.jsx(uiKit.Text.Body, {
@@ -1657,6 +1672,7 @@ const ExportResourcesProvider = _ref => {
1657
1672
  exportType: exportType,
1658
1673
  totalResourcesCount: props.totalResourcesCount,
1659
1674
  selectedResourceIds: props.selectedResourceIds,
1675
+ hideExportSelectedResourcesOption: props.hideExportSelectedResourcesOption,
1660
1676
  filters: props.filters,
1661
1677
  hasFilters: areFiltersApplied(props.filters),
1662
1678
  setExportType
@@ -852,6 +852,20 @@ const useStartExportOperation = props => {
852
852
  try {
853
853
  if (!projectKey) throw new Error('Project key is missing');
854
854
  const fields = extractFieldNamesFromGroups(values.groups);
855
+ let where = undefined;
856
+ let filters = undefined;
857
+ if (exportType === EXPORT_TYPES.SELECTED && props.selectedResourceIds?.length) {
858
+ where = buildSelectedExportFilters(props.selectedResourceIds);
859
+ } else if (exportType === EXPORT_TYPES.FILTERED) {
860
+ if (props.filters?.queryPredicate) {
861
+ where = props.filters.queryPredicate;
862
+ }
863
+ if (props.filters?.searchQuery) {
864
+ filters = {
865
+ query: props.filters.searchQuery
866
+ };
867
+ }
868
+ }
855
869
  const response = await createExportOperation({
856
870
  projectKey,
857
871
  resourceType: props.resourceType,
@@ -859,8 +873,8 @@ const useStartExportOperation = props => {
859
873
  fileFormat: values.outputFormat,
860
874
  locales: values.locales,
861
875
  fields,
862
- where: exportType === EXPORT_TYPES.SELECTED && props.selectedResourceIds?.length ? buildSelectedExportFilters(props.selectedResourceIds) : props.filters?.queryPredicate || undefined,
863
- filters: props.filters?.searchQuery || undefined
876
+ where,
877
+ filters
864
878
  }, asyncDispatch);
865
879
  switch (response.state) {
866
880
  case EXPORT_OPERATION_STATES.QUEUED:
@@ -910,7 +924,8 @@ function ExportScopeSection() {
910
924
  hasFilters = _useExportResourcesMo.hasFilters,
911
925
  selectedResourceIds = _useExportResourcesMo.selectedResourceIds,
912
926
  setExportType = _useExportResourcesMo.setExportType,
913
- resourceType = _useExportResourcesMo.resourceType;
927
+ resourceType = _useExportResourcesMo.resourceType,
928
+ hideExportSelectedResourcesOption = _useExportResourcesMo.hideExportSelectedResourcesOption;
914
929
  return jsx(Spacings.Stack, {
915
930
  scale: "m",
916
931
  children: jsxs(RadioInput.Group, {
@@ -942,7 +957,7 @@ function ExportScopeSection() {
942
957
  }
943
958
  }) : messages.exportScopeFilteredWithoutCount
944
959
  })
945
- }), jsx(RadioInput.Option, {
960
+ }), !hideExportSelectedResourcesOption && jsx(RadioInput.Option, {
946
961
  value: EXPORT_TYPES.SELECTED,
947
962
  isDisabled: !selectedResourceIds?.length,
948
963
  children: jsx(Text.Body, {
@@ -1656,6 +1671,7 @@ const ExportResourcesProvider = _ref => {
1656
1671
  exportType: exportType,
1657
1672
  totalResourcesCount: props.totalResourcesCount,
1658
1673
  selectedResourceIds: props.selectedResourceIds,
1674
+ hideExportSelectedResourcesOption: props.hideExportSelectedResourcesOption,
1659
1675
  filters: props.filters,
1660
1676
  hasFilters: areFiltersApplied(props.filters),
1661
1677
  setExportType
@@ -5,7 +5,9 @@ export interface ExportApiRequest {
5
5
  fileFormat: string;
6
6
  fields: string[];
7
7
  locales: string[];
8
- filters?: Record<string, unknown>;
8
+ filters?: {
9
+ query: Record<string, unknown>;
10
+ };
9
11
  where?: string;
10
12
  }
11
13
  export interface ExportApiResponse {
@@ -14,4 +14,5 @@ export interface ExportResourcesModalContext {
14
14
  filters: Filters;
15
15
  hasFilters: boolean;
16
16
  setExportType: React.Dispatch<React.SetStateAction<ExportType>>;
17
+ hideExportSelectedResourcesOption?: boolean;
17
18
  }
@@ -28,6 +28,7 @@ export interface ExportResourcesModalProps {
28
28
  selectedResourceIds?: string[];
29
29
  fieldGroups: FieldGroup[];
30
30
  fieldOrder?: string[];
31
+ hideExportSelectedResourcesOption?: boolean;
31
32
  onClose: () => void;
32
33
  onExportSuccess?: () => void;
33
34
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@commercetools-frontend-extensions/export-resources-modal",
3
3
  "description": "Shared export modal for exporting resources",
4
- "version": "4.6.2",
4
+ "version": "4.6.4",
5
5
  "license": "BSD-3-Clause",
6
6
  "publishConfig": {
7
7
  "access": "public"
@@ -40,8 +40,8 @@
40
40
  "@commercetools-frontend/jest-preset-mc-app": "22.31.0",
41
41
  "@commercetools-frontend/sdk": "22.31.0",
42
42
  "@commercetools-frontend/sentry": "22.31.0",
43
- "@commercetools-frontend/ui-kit": "19.10.0",
44
- "@commercetools-uikit/design-system": "19.10.0",
43
+ "@commercetools-frontend/ui-kit": "19.11.0",
44
+ "@commercetools-uikit/design-system": "19.11.0",
45
45
  "@preconstruct/cli": "2.8.7",
46
46
  "@types/jest": "29.5.12",
47
47
  "@types/testing-library__jest-dom": "^5.14.5",