@selfcommunity/react-ui 0.7.0-alpha.333 → 0.7.0-alpha.335
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/lib/cjs/components/BroadcastMessages/Message.js +14 -5
- package/lib/cjs/components/CommentsObject/CommentsObject.js +1 -22
- package/lib/cjs/components/Editor/plugins/MentionsPlugin.js +4 -2
- package/lib/cjs/components/FeedObject/FeedObject.js +3 -2
- package/lib/esm/components/BroadcastMessages/Message.js +14 -5
- package/lib/esm/components/CommentsObject/CommentsObject.js +1 -22
- package/lib/esm/components/Editor/plugins/MentionsPlugin.js +5 -3
- package/lib/esm/components/FeedObject/FeedObject.js +3 -2
- package/lib/umd/react-ui.js +1 -1
- package/package.json +2 -2
|
@@ -37,7 +37,16 @@ const Root = (0, styles_1.styled)(Widget_1.default, {
|
|
|
37
37
|
objectFit: 'fill'
|
|
38
38
|
},
|
|
39
39
|
[`& .${classes.title}`]: {
|
|
40
|
-
padding:
|
|
40
|
+
padding: `${theme.spacing(2)}`,
|
|
41
|
+
paddingBottom: `${theme.spacing()}`,
|
|
42
|
+
paddingTop: 0
|
|
43
|
+
},
|
|
44
|
+
[`& .${classes.media}`]: {
|
|
45
|
+
paddingBottom: `${theme.spacing(2)}`
|
|
46
|
+
},
|
|
47
|
+
[`& .${classes.content}`]: {
|
|
48
|
+
padding: theme.spacing(2),
|
|
49
|
+
paddingTop: 0
|
|
41
50
|
},
|
|
42
51
|
[`& .${classes.listItemSnippet}`]: {
|
|
43
52
|
padding: '0px 5px',
|
|
@@ -116,10 +125,10 @@ function Message(props) {
|
|
|
116
125
|
react_1.default.createElement(material_1.CardContent, { className: classes.title },
|
|
117
126
|
react_1.default.createElement(material_1.Typography, { variant: "h6" }, banner.title)),
|
|
118
127
|
banner.image && react_1.default.createElement(material_1.CardMedia, { className: classes.media, component: "img", image: banner.image, alt: banner.title }),
|
|
119
|
-
react_1.default.createElement(material_1.CardContent, { className: classes.content },
|
|
120
|
-
react_1.default.createElement(material_1.Typography, { variant: "
|
|
121
|
-
react_1.default.createElement(material_1.Typography, { variant: "
|
|
122
|
-
react_1.default.createElement("a", { href: banner.link, target: banner.open_in_new_tab ? '_blank' : '_self' }, banner.link_text)))));
|
|
128
|
+
(banner.body_text || banner.link_text) && (react_1.default.createElement(material_1.CardContent, { className: classes.content },
|
|
129
|
+
banner.body_text && (react_1.default.createElement(material_1.Typography, { variant: "body1", color: "text.secondary" }, banner.body_text)),
|
|
130
|
+
banner.link_text && (react_1.default.createElement(material_1.Typography, { variant: "body1", color: "text.secondary" },
|
|
131
|
+
react_1.default.createElement("a", { href: banner.link, target: banner.open_in_new_tab ? '_blank' : '_self' }, banner.link_text)))))));
|
|
123
132
|
};
|
|
124
133
|
// Banner
|
|
125
134
|
const { banner } = message;
|
|
@@ -32,28 +32,7 @@ const Root = (0, styles_1.styled)(material_1.Box, {
|
|
|
32
32
|
name: PREFIX,
|
|
33
33
|
slot: 'Root',
|
|
34
34
|
overridesResolver: (props, styles) => styles.root
|
|
35
|
-
})(({ theme }) => ({
|
|
36
|
-
boxShadow: 'none',
|
|
37
|
-
position: 'relative',
|
|
38
|
-
display: 'flex',
|
|
39
|
-
flexWrap: 'wrap',
|
|
40
|
-
width: '100%',
|
|
41
|
-
[`& .${classes.loadNextCommentsButton}`]: {
|
|
42
|
-
textTransform: 'initial'
|
|
43
|
-
},
|
|
44
|
-
[`& .${classes.loadPreviousCommentsButton}`]: {
|
|
45
|
-
textTransform: 'initial'
|
|
46
|
-
},
|
|
47
|
-
[`& .${classes.commentsCounter}`]: {
|
|
48
|
-
paddingRight: theme.spacing()
|
|
49
|
-
},
|
|
50
|
-
[`& .${classes.pagination}`]: {
|
|
51
|
-
width: '100%'
|
|
52
|
-
},
|
|
53
|
-
[`& .${classes.paginationLink}`]: {
|
|
54
|
-
display: 'none'
|
|
55
|
-
}
|
|
56
|
-
}));
|
|
35
|
+
})(({ theme }) => ({}));
|
|
57
36
|
const PREFERENCES = [react_core_1.SCPreferences.ADVERTISING_CUSTOM_ADV_ENABLED, react_core_1.SCPreferences.ADVERTISING_CUSTOM_ADV_ONLY_FOR_ANONYMOUS_USERS_ENABLED];
|
|
58
37
|
/**
|
|
59
38
|
* > API documentation for the Community-JS Comments Object component. Learn about the available props and the CSS API.
|
|
@@ -7,12 +7,12 @@ const react_core_1 = require("@selfcommunity/react-core");
|
|
|
7
7
|
const lexical_1 = require("lexical");
|
|
8
8
|
const LexicalComposerContext_1 = require("@lexical/react/LexicalComposerContext");
|
|
9
9
|
const utils_1 = require("@lexical/utils");
|
|
10
|
-
const react_dom_1 = require("react-dom");
|
|
11
10
|
const MentionNode_1 = require("../nodes/MentionNode");
|
|
12
11
|
const api_services_1 = require("@selfcommunity/api-services");
|
|
13
12
|
const classnames_1 = tslib_1.__importDefault(require("classnames"));
|
|
14
13
|
const material_1 = require("@mui/material");
|
|
15
14
|
const styles_1 = require("@mui/material/styles");
|
|
15
|
+
const ClickAwayListener_1 = tslib_1.__importDefault(require("@mui/material/ClickAwayListener"));
|
|
16
16
|
const PUNCTUATION = '\\.,\\+\\*\\?\\$\\@\\|#{}\\(\\)\\^\\-\\[\\]\\\\/!%\'"~=<>_:;';
|
|
17
17
|
const NAME = '\\b[A-Z][^\\s' + PUNCTUATION + ']';
|
|
18
18
|
const DocumentMentionsRegex = {
|
|
@@ -528,7 +528,9 @@ function useMentions(editor, anchorClassName = null) {
|
|
|
528
528
|
if (resolution === null || editor === null) {
|
|
529
529
|
return null;
|
|
530
530
|
}
|
|
531
|
-
return (
|
|
531
|
+
return (react_1.default.createElement(ClickAwayListener_1.default, { onClickAway: closeTypeahead },
|
|
532
|
+
react_1.default.createElement(material_1.Portal, { container: anchorElementRef.current },
|
|
533
|
+
react_1.default.createElement(Root, { close: closeTypeahead, resolution: resolution, editor: editor, className: classes.root }))));
|
|
532
534
|
}
|
|
533
535
|
function MentionsPlugin() {
|
|
534
536
|
const [editor] = (0, LexicalComposerContext_1.useLexicalComposerContext)();
|
|
@@ -55,6 +55,7 @@ const classes = {
|
|
|
55
55
|
tag: `${PREFIX}-tag`,
|
|
56
56
|
location: `${PREFIX}-location`,
|
|
57
57
|
content: `${PREFIX}-content`,
|
|
58
|
+
showMore: `${PREFIX}-show-more`,
|
|
58
59
|
error: `${PREFIX}-error`,
|
|
59
60
|
titleSection: `${PREFIX}-title-section`,
|
|
60
61
|
title: `${PREFIX}-title`,
|
|
@@ -394,7 +395,7 @@ function FeedObject(inProps) {
|
|
|
394
395
|
react_1.default.createElement(material_1.Typography, { component: "div", className: classes.text, variant: "body2", gutterBottom: true, dangerouslySetInnerHTML: {
|
|
395
396
|
__html: summaryHtml
|
|
396
397
|
} })),
|
|
397
|
-
!expanded && summaryHtmlTruncated && (react_1.default.createElement(material_1.Button, { size: "small", variant: "text", color: "inherit", onClick: handleToggleSummary },
|
|
398
|
+
!expanded && summaryHtmlTruncated && (react_1.default.createElement(material_1.Button, { size: "small", variant: "text", color: "inherit", className: classes.showMore, onClick: handleToggleSummary },
|
|
398
399
|
react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.feedObject.content.showMore", defaultMessage: "ui.feedObject.content.showMore" })))));
|
|
399
400
|
}
|
|
400
401
|
else if (template === feedObject_1.SCFeedObjectTemplateType.DETAIL) {
|
|
@@ -407,7 +408,7 @@ function FeedObject(inProps) {
|
|
|
407
408
|
react_1.default.createElement(material_1.Typography, { component: "span", dangerouslySetInnerHTML: {
|
|
408
409
|
__html: summaryHtml
|
|
409
410
|
} }),
|
|
410
|
-
!expanded && summaryHtmlTruncated && (react_1.default.createElement(material_1.Button, { size: "small", variant: "text", color: "inherit", onClick: handleToggleSummary },
|
|
411
|
+
!expanded && summaryHtmlTruncated && (react_1.default.createElement(material_1.Button, { size: "small", variant: "text", color: "inherit", className: classes.showMore, onClick: handleToggleSummary },
|
|
411
412
|
react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.feedObject.content.showMore", defaultMessage: "ui.feedObject.content.showMore" })))));
|
|
412
413
|
}
|
|
413
414
|
}, [obj, template, expanded]);
|
|
@@ -35,7 +35,16 @@ const Root = styled(Widget, {
|
|
|
35
35
|
objectFit: 'fill'
|
|
36
36
|
},
|
|
37
37
|
[`& .${classes.title}`]: {
|
|
38
|
-
padding:
|
|
38
|
+
padding: `${theme.spacing(2)}`,
|
|
39
|
+
paddingBottom: `${theme.spacing()}`,
|
|
40
|
+
paddingTop: 0
|
|
41
|
+
},
|
|
42
|
+
[`& .${classes.media}`]: {
|
|
43
|
+
paddingBottom: `${theme.spacing(2)}`
|
|
44
|
+
},
|
|
45
|
+
[`& .${classes.content}`]: {
|
|
46
|
+
padding: theme.spacing(2),
|
|
47
|
+
paddingTop: 0
|
|
39
48
|
},
|
|
40
49
|
[`& .${classes.listItemSnippet}`]: {
|
|
41
50
|
padding: '0px 5px',
|
|
@@ -114,10 +123,10 @@ export default function Message(props) {
|
|
|
114
123
|
React.createElement(CardContent, { className: classes.title },
|
|
115
124
|
React.createElement(Typography, { variant: "h6" }, banner.title)),
|
|
116
125
|
banner.image && React.createElement(CardMedia, { className: classes.media, component: "img", image: banner.image, alt: banner.title }),
|
|
117
|
-
React.createElement(CardContent, { className: classes.content },
|
|
118
|
-
React.createElement(Typography, { variant: "
|
|
119
|
-
React.createElement(Typography, { variant: "
|
|
120
|
-
React.createElement("a", { href: banner.link, target: banner.open_in_new_tab ? '_blank' : '_self' }, banner.link_text)))));
|
|
126
|
+
(banner.body_text || banner.link_text) && (React.createElement(CardContent, { className: classes.content },
|
|
127
|
+
banner.body_text && (React.createElement(Typography, { variant: "body1", color: "text.secondary" }, banner.body_text)),
|
|
128
|
+
banner.link_text && (React.createElement(Typography, { variant: "body1", color: "text.secondary" },
|
|
129
|
+
React.createElement("a", { href: banner.link, target: banner.open_in_new_tab ? '_blank' : '_self' }, banner.link_text)))))));
|
|
121
130
|
};
|
|
122
131
|
// Banner
|
|
123
132
|
const { banner } = message;
|
|
@@ -30,28 +30,7 @@ const Root = styled(Box, {
|
|
|
30
30
|
name: PREFIX,
|
|
31
31
|
slot: 'Root',
|
|
32
32
|
overridesResolver: (props, styles) => styles.root
|
|
33
|
-
})(({ theme }) => ({
|
|
34
|
-
boxShadow: 'none',
|
|
35
|
-
position: 'relative',
|
|
36
|
-
display: 'flex',
|
|
37
|
-
flexWrap: 'wrap',
|
|
38
|
-
width: '100%',
|
|
39
|
-
[`& .${classes.loadNextCommentsButton}`]: {
|
|
40
|
-
textTransform: 'initial'
|
|
41
|
-
},
|
|
42
|
-
[`& .${classes.loadPreviousCommentsButton}`]: {
|
|
43
|
-
textTransform: 'initial'
|
|
44
|
-
},
|
|
45
|
-
[`& .${classes.commentsCounter}`]: {
|
|
46
|
-
paddingRight: theme.spacing()
|
|
47
|
-
},
|
|
48
|
-
[`& .${classes.pagination}`]: {
|
|
49
|
-
width: '100%'
|
|
50
|
-
},
|
|
51
|
-
[`& .${classes.paginationLink}`]: {
|
|
52
|
-
display: 'none'
|
|
53
|
-
}
|
|
54
|
-
}));
|
|
33
|
+
})(({ theme }) => ({}));
|
|
55
34
|
const PREFERENCES = [SCPreferences.ADVERTISING_CUSTOM_ADV_ENABLED, SCPreferences.ADVERTISING_CUSTOM_ADV_ONLY_FOR_ANONYMOUS_USERS_ENABLED];
|
|
56
35
|
/**
|
|
57
36
|
* > API documentation for the Community-JS Comments Object component. Learn about the available props and the CSS API.
|
|
@@ -3,12 +3,12 @@ import { useIsomorphicLayoutEffect } from '@selfcommunity/react-core';
|
|
|
3
3
|
import { $getSelection, $isRangeSelection, $isTextNode, COMMAND_PRIORITY_LOW, KEY_ARROW_DOWN_COMMAND, KEY_ARROW_UP_COMMAND, KEY_ENTER_COMMAND, KEY_ESCAPE_COMMAND, KEY_TAB_COMMAND } from 'lexical';
|
|
4
4
|
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
|
|
5
5
|
import { mergeRegister } from '@lexical/utils';
|
|
6
|
-
import { createPortal } from 'react-dom';
|
|
7
6
|
import { createMentionNode, MentionNode } from '../nodes/MentionNode';
|
|
8
7
|
import { http, Endpoints } from '@selfcommunity/api-services';
|
|
9
8
|
import classNames from 'classnames';
|
|
10
|
-
import { Avatar } from '@mui/material';
|
|
9
|
+
import { Avatar, Portal } from '@mui/material';
|
|
11
10
|
import { styled } from '@mui/material/styles';
|
|
11
|
+
import ClickAwayListener from '@mui/material/ClickAwayListener';
|
|
12
12
|
const PUNCTUATION = '\\.,\\+\\*\\?\\$\\@\\|#{}\\(\\)\\^\\-\\[\\]\\\\/!%\'"~=<>_:;';
|
|
13
13
|
const NAME = '\\b[A-Z][^\\s' + PUNCTUATION + ']';
|
|
14
14
|
const DocumentMentionsRegex = {
|
|
@@ -521,7 +521,9 @@ function useMentions(editor, anchorClassName = null) {
|
|
|
521
521
|
if (resolution === null || editor === null) {
|
|
522
522
|
return null;
|
|
523
523
|
}
|
|
524
|
-
return
|
|
524
|
+
return (React.createElement(ClickAwayListener, { onClickAway: closeTypeahead },
|
|
525
|
+
React.createElement(Portal, { container: anchorElementRef.current },
|
|
526
|
+
React.createElement(Root, { close: closeTypeahead, resolution: resolution, editor: editor, className: classes.root }))));
|
|
525
527
|
}
|
|
526
528
|
export default function MentionsPlugin() {
|
|
527
529
|
const [editor] = useLexicalComposerContext();
|
|
@@ -53,6 +53,7 @@ const classes = {
|
|
|
53
53
|
tag: `${PREFIX}-tag`,
|
|
54
54
|
location: `${PREFIX}-location`,
|
|
55
55
|
content: `${PREFIX}-content`,
|
|
56
|
+
showMore: `${PREFIX}-show-more`,
|
|
56
57
|
error: `${PREFIX}-error`,
|
|
57
58
|
titleSection: `${PREFIX}-title-section`,
|
|
58
59
|
title: `${PREFIX}-title`,
|
|
@@ -392,7 +393,7 @@ export default function FeedObject(inProps) {
|
|
|
392
393
|
React.createElement(Typography, { component: "div", className: classes.text, variant: "body2", gutterBottom: true, dangerouslySetInnerHTML: {
|
|
393
394
|
__html: summaryHtml
|
|
394
395
|
} })),
|
|
395
|
-
!expanded && summaryHtmlTruncated && (React.createElement(Button, { size: "small", variant: "text", color: "inherit", onClick: handleToggleSummary },
|
|
396
|
+
!expanded && summaryHtmlTruncated && (React.createElement(Button, { size: "small", variant: "text", color: "inherit", className: classes.showMore, onClick: handleToggleSummary },
|
|
396
397
|
React.createElement(FormattedMessage, { id: "ui.feedObject.content.showMore", defaultMessage: "ui.feedObject.content.showMore" })))));
|
|
397
398
|
}
|
|
398
399
|
else if (template === SCFeedObjectTemplateType.DETAIL) {
|
|
@@ -405,7 +406,7 @@ export default function FeedObject(inProps) {
|
|
|
405
406
|
React.createElement(Typography, { component: "span", dangerouslySetInnerHTML: {
|
|
406
407
|
__html: summaryHtml
|
|
407
408
|
} }),
|
|
408
|
-
!expanded && summaryHtmlTruncated && (React.createElement(Button, { size: "small", variant: "text", color: "inherit", onClick: handleToggleSummary },
|
|
409
|
+
!expanded && summaryHtmlTruncated && (React.createElement(Button, { size: "small", variant: "text", color: "inherit", className: classes.showMore, onClick: handleToggleSummary },
|
|
409
410
|
React.createElement(FormattedMessage, { id: "ui.feedObject.content.showMore", defaultMessage: "ui.feedObject.content.showMore" })))));
|
|
410
411
|
}
|
|
411
412
|
}, [obj, template, expanded]);
|