@selfcommunity/react-ui 0.7.26 → 0.7.27-alpha.0

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.
@@ -16,6 +16,7 @@ const DialogContent_1 = tslib_1.__importDefault(require("@mui/material/DialogCon
16
16
  const react_core_1 = require("@selfcommunity/react-core");
17
17
  const constants_1 = require("../../constants");
18
18
  const GroupAutocomplete_1 = tslib_1.__importDefault(require("../../../GroupAutocomplete"));
19
+ const types_1 = require("@selfcommunity/types");
19
20
  var AudienceTypes;
20
21
  (function (AudienceTypes) {
21
22
  AudienceTypes["AUDIENCE_ALL"] = "all";
@@ -54,6 +55,9 @@ const AudienceLayer = react_1.default.forwardRef((props, ref) => {
54
55
  const [value, setValue] = (0, react_1.useState)(defaultValue || undefined);
55
56
  // HOOKS
56
57
  const { scAddressingTags } = (0, react_core_1.useSCFetchAddressingTagList)({ fetch: autocompleteOpen });
58
+ const { features } = (0, react_core_1.useSCPreferences)();
59
+ // MEMO
60
+ const groupsEnabled = (0, react_1.useMemo)(() => features && features.includes(types_1.SCFeatureName.GROUPING) && features.includes(types_1.SCFeatureName.TAGGING), [features]);
57
61
  // HANDLERS
58
62
  const handleSave = (0, react_1.useCallback)(() => {
59
63
  audience === AudienceTypes.AUDIENCE_GROUP ? onSave(value) : onSave((value === null || value === void 0 ? void 0 : value.length) && (value === null || value === void 0 ? void 0 : value.length) > 0 ? value : null);
@@ -74,9 +78,9 @@ const AudienceLayer = react_1.default.forwardRef((props, ref) => {
74
78
  react_1.default.createElement(DialogContent_1.default, { className: classes.content },
75
79
  react_1.default.createElement(material_1.Tabs, { value: audience, onChange: handleChangeAudience, "aria-label": "audience type" },
76
80
  react_1.default.createElement(material_1.Tab, { value: AudienceTypes.AUDIENCE_ALL, icon: react_1.default.createElement(Icon_1.default, null, "public"), label: react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.composer.layer.audience.all", defaultMessage: "ui.composer.layer.audience.all" }) }),
77
- react_1.default.createElement(material_1.Tab, { disabled: (Boolean(value === null || value === void 0 ? void 0 : value.length) && !Object.prototype.hasOwnProperty.call(value, 'managed_by')) ||
81
+ groupsEnabled && (react_1.default.createElement(material_1.Tab, { disabled: (Boolean(value === null || value === void 0 ? void 0 : value.length) && !Object.prototype.hasOwnProperty.call(value, 'managed_by')) ||
78
82
  (value !== undefined && Boolean(!(value === null || value === void 0 ? void 0 : value.length)) && audience !== AudienceTypes.AUDIENCE_ALL) ||
79
- (Boolean((value === null || value === void 0 ? void 0 : value.length) === 0) && audience === AudienceTypes.AUDIENCE_ALL && Boolean((defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.length) !== 0)), value: AudienceTypes.AUDIENCE_GROUP, icon: react_1.default.createElement(Icon_1.default, null, "groups"), label: react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.composer.layer.audience.group", defaultMessage: "ui.composer.layer.audience.group" }) }),
83
+ (Boolean((value === null || value === void 0 ? void 0 : value.length) === 0) && audience === AudienceTypes.AUDIENCE_ALL && Boolean((defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.length) !== 0)), value: AudienceTypes.AUDIENCE_GROUP, icon: react_1.default.createElement(Icon_1.default, null, "groups"), label: react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.composer.layer.audience.group", defaultMessage: "ui.composer.layer.audience.group" }) })),
80
84
  react_1.default.createElement(material_1.Tab, { disabled: value && Object.prototype.hasOwnProperty.call(value, 'managed_by'), value: AudienceTypes.AUDIENCE_TAG, icon: react_1.default.createElement(Icon_1.default, null, "label"), label: react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.composer.layer.audience.tag", defaultMessage: "ui.composer.layer.audience.tag" }) })),
81
85
  react_1.default.createElement(material_1.Typography, { className: classes.message },
82
86
  audience === AudienceTypes.AUDIENCE_ALL && (react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.composer.layer.audience.all.message", defaultMessage: "ui.composer.audience.layer.all.message" })),
@@ -1,5 +1,5 @@
1
1
  import { __rest } from "tslib";
2
- import React, { useCallback, useState } from 'react';
2
+ import React, { useCallback, useMemo, useState } from 'react';
3
3
  import { FormattedMessage } from 'react-intl';
4
4
  import TextField from '@mui/material/TextField';
5
5
  import parse from 'autosuggest-highlight/parse';
@@ -10,9 +10,10 @@ import TagChip from '../../../../shared/TagChip';
10
10
  import classNames from 'classnames';
11
11
  import Icon from '@mui/material/Icon';
12
12
  import DialogContent from '@mui/material/DialogContent';
13
- import { useSCFetchAddressingTagList } from '@selfcommunity/react-core';
13
+ import { useSCFetchAddressingTagList, useSCPreferences } from '@selfcommunity/react-core';
14
14
  import { PREFIX } from '../../constants';
15
15
  import GroupAutocomplete from '../../../GroupAutocomplete';
16
+ import { SCFeatureName } from '@selfcommunity/types';
16
17
  export var AudienceTypes;
17
18
  (function (AudienceTypes) {
18
19
  AudienceTypes["AUDIENCE_ALL"] = "all";
@@ -51,6 +52,9 @@ const AudienceLayer = React.forwardRef((props, ref) => {
51
52
  const [value, setValue] = useState(defaultValue || undefined);
52
53
  // HOOKS
53
54
  const { scAddressingTags } = useSCFetchAddressingTagList({ fetch: autocompleteOpen });
55
+ const { features } = useSCPreferences();
56
+ // MEMO
57
+ const groupsEnabled = useMemo(() => features && features.includes(SCFeatureName.GROUPING) && features.includes(SCFeatureName.TAGGING), [features]);
54
58
  // HANDLERS
55
59
  const handleSave = useCallback(() => {
56
60
  audience === AudienceTypes.AUDIENCE_GROUP ? onSave(value) : onSave((value === null || value === void 0 ? void 0 : value.length) && (value === null || value === void 0 ? void 0 : value.length) > 0 ? value : null);
@@ -71,9 +75,9 @@ const AudienceLayer = React.forwardRef((props, ref) => {
71
75
  React.createElement(DialogContent, { className: classes.content },
72
76
  React.createElement(Tabs, { value: audience, onChange: handleChangeAudience, "aria-label": "audience type" },
73
77
  React.createElement(Tab, { value: AudienceTypes.AUDIENCE_ALL, icon: React.createElement(Icon, null, "public"), label: React.createElement(FormattedMessage, { id: "ui.composer.layer.audience.all", defaultMessage: "ui.composer.layer.audience.all" }) }),
74
- React.createElement(Tab, { disabled: (Boolean(value === null || value === void 0 ? void 0 : value.length) && !Object.prototype.hasOwnProperty.call(value, 'managed_by')) ||
78
+ groupsEnabled && (React.createElement(Tab, { disabled: (Boolean(value === null || value === void 0 ? void 0 : value.length) && !Object.prototype.hasOwnProperty.call(value, 'managed_by')) ||
75
79
  (value !== undefined && Boolean(!(value === null || value === void 0 ? void 0 : value.length)) && audience !== AudienceTypes.AUDIENCE_ALL) ||
76
- (Boolean((value === null || value === void 0 ? void 0 : value.length) === 0) && audience === AudienceTypes.AUDIENCE_ALL && Boolean((defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.length) !== 0)), value: AudienceTypes.AUDIENCE_GROUP, icon: React.createElement(Icon, null, "groups"), label: React.createElement(FormattedMessage, { id: "ui.composer.layer.audience.group", defaultMessage: "ui.composer.layer.audience.group" }) }),
80
+ (Boolean((value === null || value === void 0 ? void 0 : value.length) === 0) && audience === AudienceTypes.AUDIENCE_ALL && Boolean((defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.length) !== 0)), value: AudienceTypes.AUDIENCE_GROUP, icon: React.createElement(Icon, null, "groups"), label: React.createElement(FormattedMessage, { id: "ui.composer.layer.audience.group", defaultMessage: "ui.composer.layer.audience.group" }) })),
77
81
  React.createElement(Tab, { disabled: value && Object.prototype.hasOwnProperty.call(value, 'managed_by'), value: AudienceTypes.AUDIENCE_TAG, icon: React.createElement(Icon, null, "label"), label: React.createElement(FormattedMessage, { id: "ui.composer.layer.audience.tag", defaultMessage: "ui.composer.layer.audience.tag" }) })),
78
82
  React.createElement(Typography, { className: classes.message },
79
83
  audience === AudienceTypes.AUDIENCE_ALL && (React.createElement(FormattedMessage, { id: "ui.composer.layer.audience.all.message", defaultMessage: "ui.composer.audience.layer.all.message" })),