@selfcommunity/react-ui 0.7.26-alpha.1 → 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" })),
|