@pega/cosmos-react-social 9.0.0-build.9.8 → 9.0.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.
- package/lib/components/AISummary/AISummary.d.ts +10 -0
- package/lib/components/AISummary/AISummary.d.ts.map +1 -0
- package/lib/components/AISummary/AISummary.js +128 -0
- package/lib/components/AISummary/AISummary.js.map +1 -0
- package/lib/components/AISummary/index.d.ts +3 -0
- package/lib/components/AISummary/index.d.ts.map +1 -0
- package/lib/components/AISummary/index.js +2 -0
- package/lib/components/AISummary/index.js.map +1 -0
- package/lib/components/Chat/Chat.js +1 -1
- package/lib/components/Chat/Chat.js.map +1 -1
- package/lib/components/Chat/ChatBody.js +5 -5
- package/lib/components/Chat/ChatBody.js.map +1 -1
- package/lib/components/Chat/ChatComposer.d.ts +16 -2
- package/lib/components/Chat/ChatComposer.d.ts.map +1 -1
- package/lib/components/Chat/ChatSettingsPanel.d.ts.map +1 -1
- package/lib/components/Chat/ChatSettingsPanel.js +1 -1
- package/lib/components/Chat/ChatSettingsPanel.js.map +1 -1
- package/lib/components/Chat/ChatSettingsPanel.styles.d.ts +13 -9
- package/lib/components/Chat/ChatSettingsPanel.styles.d.ts.map +1 -1
- package/lib/components/Chat/ChatSettingsPanel.styles.js.map +1 -1
- package/lib/components/Chat/Message.styles.d.ts +28 -24
- package/lib/components/Chat/Message.styles.d.ts.map +1 -1
- package/lib/components/Chat/Message.styles.js +20 -1
- package/lib/components/Chat/Message.styles.js.map +1 -1
- package/lib/components/Chat/SuggestedReplyPicker.d.ts +7 -7
- package/lib/components/Chat/SuggestedReplyPicker.d.ts.map +1 -1
- package/lib/components/Chat/SystemMessage.d.ts +1 -1
- package/lib/components/Chat/SystemMessage.d.ts.map +1 -1
- package/lib/components/Chat/SystemMessage.js +4 -4
- package/lib/components/Chat/SystemMessage.js.map +1 -1
- package/lib/components/Email/Email.d.ts.map +1 -1
- package/lib/components/Email/Email.js +5 -5
- package/lib/components/Email/Email.js.map +1 -1
- package/lib/components/Email/Email.styles.d.ts +63 -53
- package/lib/components/Email/Email.styles.d.ts.map +1 -1
- package/lib/components/Email/Email.styles.js +2 -21
- package/lib/components/Email/Email.styles.js.map +1 -1
- package/lib/components/Email/Email.types.d.ts +11 -5
- package/lib/components/Email/Email.types.d.ts.map +1 -1
- package/lib/components/Email/Email.types.js.map +1 -1
- package/lib/components/Email/EmailComposer.d.ts +8 -5
- package/lib/components/Email/EmailComposer.d.ts.map +1 -1
- package/lib/components/Email/EmailComposer.js +86 -41
- package/lib/components/Email/EmailComposer.js.map +1 -1
- package/lib/components/Email/EmailConversation.d.ts +11 -7
- package/lib/components/Email/EmailConversation.d.ts.map +1 -1
- package/lib/components/Email/EmailConversation.js +2 -2
- package/lib/components/Email/EmailConversation.js.map +1 -1
- package/lib/components/Email/EmailNotificationPanel.d.ts.map +1 -1
- package/lib/components/Email/EmailNotificationPanel.js +5 -5
- package/lib/components/Email/EmailNotificationPanel.js.map +1 -1
- package/lib/components/Email/EmailShell.d.ts.map +1 -1
- package/lib/components/Email/EmailShell.js +7 -6
- package/lib/components/Email/EmailShell.js.map +1 -1
- package/lib/components/Email/EmailSummaryItem.d.ts +2 -2
- package/lib/components/Email/EmailSummaryItem.d.ts.map +1 -1
- package/lib/components/Email/EmailSummaryItem.js +6 -5
- package/lib/components/Email/EmailSummaryItem.js.map +1 -1
- package/lib/components/Email/EntityList.js +1 -1
- package/lib/components/Email/EntityList.js.map +1 -1
- package/lib/components/Email/utils/EntityHighlighter.d.ts +2 -3
- package/lib/components/Email/utils/EntityHighlighter.d.ts.map +1 -1
- package/lib/components/Email/utils/EntityHighlighter.js +10 -15
- package/lib/components/Email/utils/EntityHighlighter.js.map +1 -1
- package/lib/components/Feed/Feed.d.ts +3 -1
- package/lib/components/Feed/Feed.d.ts.map +1 -1
- package/lib/components/Feed/Feed.js +3 -3
- package/lib/components/Feed/Feed.js.map +1 -1
- package/lib/components/Feed/Feed.types.d.ts +11 -4
- package/lib/components/Feed/Feed.types.d.ts.map +1 -1
- package/lib/components/Feed/Feed.types.js.map +1 -1
- package/lib/components/Feed/FeedAttachments.d.ts +4 -2
- package/lib/components/Feed/FeedAttachments.d.ts.map +1 -1
- package/lib/components/Feed/FeedAttachments.js +2 -3
- package/lib/components/Feed/FeedAttachments.js.map +1 -1
- package/lib/components/Feed/FeedButton.d.ts +2 -2
- package/lib/components/Feed/FeedButton.d.ts.map +1 -1
- package/lib/components/Feed/FeedContentHeader.d.ts.map +1 -1
- package/lib/components/Feed/FeedContentHeader.js +14 -12
- package/lib/components/Feed/FeedContentHeader.js.map +1 -1
- package/lib/components/Feed/FeedCustomEditRegion.d.ts +1 -1
- package/lib/components/Feed/FeedCustomEditRegion.d.ts.map +1 -1
- package/lib/components/Feed/FeedCustomInputRegion.d.ts +1 -1
- package/lib/components/Feed/FeedCustomInputRegion.d.ts.map +1 -1
- package/lib/components/Feed/FeedEditRegion.d.ts.map +1 -1
- package/lib/components/Feed/FeedEditRegion.js +94 -6
- package/lib/components/Feed/FeedEditRegion.js.map +1 -1
- package/lib/components/Feed/FeedInputRegion.d.ts +1 -1
- package/lib/components/Feed/FeedInputRegion.d.ts.map +1 -1
- package/lib/components/Feed/FeedInputRegion.js +96 -7
- package/lib/components/Feed/FeedInputRegion.js.map +1 -1
- package/lib/components/Feed/FeedLikeButton.js +1 -1
- package/lib/components/Feed/FeedLikeButton.js.map +1 -1
- package/lib/components/Feed/FeedNewPost.d.ts +1 -1
- package/lib/components/Feed/FeedNewPost.d.ts.map +1 -1
- package/lib/components/Feed/FeedNewPost.js +2 -1
- package/lib/components/Feed/FeedNewPost.js.map +1 -1
- package/lib/components/Feed/FeedPost.d.ts +8 -3
- package/lib/components/Feed/FeedPost.d.ts.map +1 -1
- package/lib/components/Feed/FeedPost.js +58 -24
- package/lib/components/Feed/FeedPost.js.map +1 -1
- package/lib/components/Feed/FeedReply.d.ts +2 -1
- package/lib/components/Feed/FeedReply.d.ts.map +1 -1
- package/lib/components/Feed/FeedReply.js +4 -5
- package/lib/components/Feed/FeedReply.js.map +1 -1
- package/lib/components/Feed/FeedReplyInput.d.ts +1 -1
- package/lib/components/Feed/FeedReplyInput.d.ts.map +1 -1
- package/lib/components/Feed/FeedReplyInput.js +2 -2
- package/lib/components/Feed/FeedReplyInput.js.map +1 -1
- package/lib/components/Feed/FeedRichText.d.ts.map +1 -1
- package/lib/components/Feed/FeedRichText.js +5 -4
- package/lib/components/Feed/FeedRichText.js.map +1 -1
- package/lib/components/HashtagButton/HashtagButton.d.ts +1 -1
- package/lib/components/HashtagButton/HashtagButton.d.ts.map +1 -1
- package/lib/components/HashtagButton/HashtagButton.js +19 -2
- package/lib/components/HashtagButton/HashtagButton.js.map +1 -1
- package/lib/components/MentionButton/MentionButton.d.ts +1 -1
- package/lib/components/MentionButton/MentionButton.d.ts.map +1 -1
- package/lib/components/MentionButton/MentionButton.js +22 -5
- package/lib/components/MentionButton/MentionButton.js.map +1 -1
- package/lib/components/OpenGraphPreview/OpenGraphPreview.d.ts.map +1 -1
- package/lib/components/OpenGraphPreview/OpenGraphPreview.js +4 -1
- package/lib/components/OpenGraphPreview/OpenGraphPreview.js.map +1 -1
- package/lib/components/OpenGraphPreview/OpenGraphPreview.styles.d.ts +382 -10
- package/lib/components/OpenGraphPreview/OpenGraphPreview.styles.d.ts.map +1 -1
- package/lib/components/OpenGraphPreview/OpenGraphPreview.styles.js +1 -1
- package/lib/components/OpenGraphPreview/OpenGraphPreview.styles.js.map +1 -1
- package/lib/index.d.ts +2 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -1
- package/package.json +6 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeedNewPost.js","sourceRoot":"","sources":["../../../src/components/Feed/FeedNewPost.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAEzC,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,EACrB,OAAO,EACP,UAAU,EACV,WAAW,EACZ,MAAM,yBAAyB,CAAC;AAGjC,OAAO,KAAK,SAAS,MAAM,8DAA8D,CAAC;AAC1F,OAAO,KAAK,aAAa,MAAM,mEAAmE,CAAC;AAEnG,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAE9D,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAE5D,YAAY,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AAEvC,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAA,EAAE,CAAC;AAE9C,iBAAiB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAElD,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAA;;CAErC,CAAC;AAEF,MAAM,WAAW,GAAyB,CAAC,KAAuB,EAAE,EAAE;IACpE,MAAM,EACJ,EAAE,EAAE,SAAS,EACb,OAAO,EACP,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,SAAS,GAAG,EAAE,EACd,cAAc,GAAG,QAAQ,EACzB,cAAc,EACd,gBAAgB,EAChB,GAAG,SAAS,EACb,GAAG,KAAK,CAAC;IACV,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IAEpB,MAAM,MAAM,GAAG,MAAM,CAAsB,IAAI,CAAC,CAAC;IACjD,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CACxD,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,KAAK,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,CAC9F,CAAC;IACF,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAC1C,cAAc,KAAK,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAC5D,CAAC;IAEF,qBAAqB,CAAC,GAAG,EAAE;QACzB,aAAa,CAAC,cAAc,KAAK,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IAC7E,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAErB,MAAM,gBAAgB,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IAE/C,qBAAqB,CAAC,GAAG,EAAE;QACzB,IACE,QAAQ,EAAE,EAAE,KAAK,gBAAgB,EAAE,EAAE;YACrC,CAAC,YAAY,EAAE,OAAO;YACtB,CAAC,CAAC,aAAa;YACf,MAAM,CAAC,OAAO,EACd,CAAC;YACD,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACzB,CAAC;QAED,oBAAoB,CAClB,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,KAAK,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,CAC9F,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"FeedNewPost.js","sourceRoot":"","sources":["../../../src/components/Feed/FeedNewPost.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useState, useRef } from 'react';\nimport type { FC } from 'react';\nimport styled from 'styled-components';\n\nimport {\n registerIcon,\n defaultThemeProp,\n useAfterInitialEffect,\n useI18n,\n MenuButton,\n usePrevious\n} from '@pega/cosmos-react-core';\nimport type { MenuItemProps } from '@pega/cosmos-react-core';\nimport type { RichTextEditorState } from '@pega/cosmos-react-rte';\nimport * as timesIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/times.icon';\nimport * as paperClipIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/paper-clip.icon';\n\nimport FeedVisibilityControls from './FeedVisibilityControls';\nimport type { FeedNewPostProps, Visibility, FeedInputRegionProps } from './Feed.types';\nimport FeedInputRegion from './FeedInputRegion';\nimport FeedCustomInputRegion from './FeedCustomInputRegion';\n\nregisterIcon(timesIcon, paperClipIcon);\n\nexport const StyledFeedNewPost = styled.div``;\n\nStyledFeedNewPost.defaultProps = defaultThemeProp;\n\nconst StyledMenuButton = styled.button`\n width: fit-content;\n`;\n\nconst FeedNewPost: FC<FeedNewPostProps> = (props: FeedNewPostProps) => {\n const {\n id: newPostId,\n banners,\n progress,\n onRewriteClick,\n defaultConfig,\n customConfig,\n postType,\n postTypes = [],\n visibilityMode = 'public',\n recipientInput,\n onPostTypeChange,\n ...restProps\n } = props;\n const t = useI18n();\n\n const rteRef = useRef<RichTextEditorState>(null);\n const [postTypeMenuItems, setPostTypeMenuItems] = useState<MenuItemProps[]>(\n postTypes.map(type => ({ ...type, primary: type.label, selected: type.id === postType?.id }))\n );\n const [visibility, setVisibility] = useState<Visibility>(\n visibilityMode === 'selectable' ? 'public' : visibilityMode\n );\n\n useAfterInitialEffect(() => {\n setVisibility(visibilityMode === 'selectable' ? 'public' : visibilityMode);\n }, [visibilityMode]);\n\n const previousPostType = usePrevious(postType);\n\n useAfterInitialEffect(() => {\n if (\n postType?.id !== previousPostType?.id &&\n !customConfig?.content &&\n !!defaultConfig &&\n rteRef.current\n ) {\n rteRef.current.focus();\n }\n\n setPostTypeMenuItems(\n postTypes.map(type => ({ ...type, primary: type.label, selected: type.id === postType?.id }))\n );\n }, [postType]);\n\n const inputProps: Pick<\n FeedInputRegionProps,\n | 'variant'\n | 'id'\n | 'banners'\n | 'progress'\n | 'onRewriteClick'\n | 'recipients'\n | 'postType'\n | 'postTypeMenu'\n | 'visibility'\n | 'visibilityControl'\n > = {\n variant: 'post',\n id: newPostId,\n banners,\n progress,\n onRewriteClick,\n recipients: recipientInput?.recipients ?? [],\n postType,\n postTypeMenu:\n postType && postTypes.length > 1 ? (\n <h3>\n <MenuButton\n as={StyledMenuButton}\n text={postType.label}\n variant='link'\n showArrow\n aria-label={`${t('feed_post_type')} - ${postType.label}`}\n menu={{\n mode: 'single-select',\n items: postTypeMenuItems,\n onItemClick: id => {\n const selected = postTypes.find(type => type.id === id);\n if (selected) {\n onPostTypeChange?.(selected);\n }\n }\n }}\n onClick={e => {\n e.stopPropagation();\n }}\n />\n </h3>\n ) : undefined,\n visibility,\n visibilityControl:\n visibilityMode !== 'public' && !!recipientInput ? (\n <FeedVisibilityControls\n visibilityMode={visibilityMode}\n visibility={visibility}\n setVisibility={setVisibility}\n recipientInput={recipientInput}\n />\n ) : undefined\n };\n\n return (\n <StyledFeedNewPost {...restProps}>\n {(!!postTypes.length || !!postType) && !customConfig?.content && !!defaultConfig && (\n <FeedInputRegion {...inputProps} {...defaultConfig} rteRef={rteRef} />\n )}\n {(!!postTypes.length || !!postType) && !!customConfig?.content && (\n <FeedCustomInputRegion {...inputProps} {...customConfig} />\n )}\n </StyledFeedNewPost>\n );\n};\n\nexport default FeedNewPost;\n"]}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
import type { FC } from 'react';
|
|
1
|
+
import type { FC, RefObject } from 'react';
|
|
2
2
|
import type { FeedPostProps } from './Feed.types';
|
|
3
|
-
export declare const
|
|
4
|
-
export declare const
|
|
3
|
+
export declare const StyledReplies: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
4
|
+
export declare const StyledFeedPost: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<Omit<Omit<import("@pega/cosmos-react-core").CardProps, "ref"> & import("react").RefAttributes<HTMLElement> & import("@pega/cosmos-react-core").ForwardProps, "ref"> & {
|
|
5
|
+
ref?: ((instance: HTMLElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | RefObject<HTMLElement> | null | undefined;
|
|
6
|
+
}, {
|
|
7
|
+
$showLines: boolean;
|
|
8
|
+
$customPostType: FeedPostProps["customPostType"];
|
|
9
|
+
}>> & string & Omit<import("@pega/cosmos-react-core").ForwardRefForwardPropsComponent<import("@pega/cosmos-react-core").CardProps>, keyof import("react").Component<any, {}, any>>;
|
|
5
10
|
declare const FeedPost: FC<FeedPostProps>;
|
|
6
11
|
export default FeedPost;
|
|
7
12
|
//# sourceMappingURL=FeedPost.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeedPost.d.ts","sourceRoot":"","sources":["../../../src/components/Feed/FeedPost.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"FeedPost.d.ts","sourceRoot":"","sources":["../../../src/components/Feed/FeedPost.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AA0B3C,OAAO,KAAK,EAAuC,aAAa,EAAE,MAAM,cAAc,CAAC;AAuBvF,eAAO,MAAM,aAAa,6NAgBzB,CAAC;AAIF,eAAO,MAAM,cAAc;;;gBACb,OAAO;qBACF,aAAa,CAAC,gBAAgB,CAAC;kLAkChD,CAAC;AAUH,QAAA,MAAM,QAAQ,EAAE,EAAE,CAAC,aAAa,CA0Q/B,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
|
@@ -11,28 +11,18 @@ import { FeedContext } from './Feed.context';
|
|
|
11
11
|
import FeedContentHeader from './FeedContentHeader';
|
|
12
12
|
import FeedContentFooter from './FeedContentFooter';
|
|
13
13
|
import FeedEditRegion from './FeedEditRegion';
|
|
14
|
-
import { StyledFeedReplyContainer } from './FeedReply';
|
|
14
|
+
import { StyledFeedReplyContainer, StyledReplyContent } from './FeedReply';
|
|
15
15
|
import FeedCustomEditRegion from './FeedCustomEditRegion';
|
|
16
16
|
registerIcon(arrowMicroDownIcon, caretLeftIcon);
|
|
17
|
-
|
|
18
|
-
margin-block-start: calc(2 * ${theme.base.spacing});
|
|
19
|
-
`);
|
|
20
|
-
StyledFeedPost.defaultProps = defaultThemeProp;
|
|
21
|
-
const StyledPostContent = styled.div(({ showLines, theme }) => {
|
|
17
|
+
const StyledPostContent = styled.div(({ theme }) => {
|
|
22
18
|
return css `
|
|
23
|
-
|
|
19
|
+
margin-inline-start: 1.25rem;
|
|
20
|
+
padding-inline-start: calc(3.5 * ${theme.base.spacing});
|
|
24
21
|
|
|
25
22
|
${StyledAttachmentsRegion} {
|
|
26
23
|
margin-block-start: ${theme.base.spacing};
|
|
27
24
|
margin-inline: 0;
|
|
28
25
|
}
|
|
29
|
-
|
|
30
|
-
${showLines &&
|
|
31
|
-
css `
|
|
32
|
-
margin-inline-start: calc(2.5 * ${theme.base.spacing});
|
|
33
|
-
border-inline-start: solid 0.0625rem ${theme.base.palette['border-line']};
|
|
34
|
-
padding-inline-start: calc(3.5 * ${theme.base.spacing});
|
|
35
|
-
`}
|
|
36
26
|
`;
|
|
37
27
|
});
|
|
38
28
|
StyledPostContent.defaultProps = defaultThemeProp;
|
|
@@ -46,19 +36,63 @@ export const StyledReplies = styled.div(({ theme }) => css `
|
|
|
46
36
|
${StyledReplyInputContainer} {
|
|
47
37
|
${StyledAttachmentsRegion} {
|
|
48
38
|
margin-block-start: ${theme.base.spacing};
|
|
49
|
-
margin-inline-start: calc(5 *
|
|
50
|
-
margin-inline-end: calc(5 *
|
|
39
|
+
margin-inline-start: calc(5 * 0.5rem);
|
|
40
|
+
margin-inline-end: calc(5 * 0.5rem);
|
|
51
41
|
}
|
|
52
42
|
}
|
|
53
43
|
`);
|
|
54
44
|
StyledReplies.defaultProps = defaultThemeProp;
|
|
45
|
+
export const StyledFeedPost = styled(Card)(({ theme, $showLines, $customPostType }) => {
|
|
46
|
+
return css `
|
|
47
|
+
margin-block-start: calc(2 * ${theme.base.spacing});
|
|
48
|
+
|
|
49
|
+
${StyledPostContent},
|
|
50
|
+
${StyledReplyContent} {
|
|
51
|
+
position: relative;
|
|
52
|
+
|
|
53
|
+
${$showLines &&
|
|
54
|
+
css `
|
|
55
|
+
&::before {
|
|
56
|
+
content: '';
|
|
57
|
+
display: block;
|
|
58
|
+
position: absolute;
|
|
59
|
+
inset-block: 0;
|
|
60
|
+
border-radius: ${theme.base['border-radius']};
|
|
61
|
+
|
|
62
|
+
${$customPostType
|
|
63
|
+
? css `
|
|
64
|
+
inset-inline-start: -0.0625rem;
|
|
65
|
+
inline-size: 0.125rem;
|
|
66
|
+
background: ${theme.base.palette.warn};
|
|
67
|
+
`
|
|
68
|
+
: css `
|
|
69
|
+
/* Half pixel shift visually centers with avatar. */
|
|
70
|
+
inset-inline-start: calc(-0.0625rem / 2);
|
|
71
|
+
inline-size: 0.0625rem;
|
|
72
|
+
background: ${theme.base.palette['border-line']};
|
|
73
|
+
`}
|
|
74
|
+
}
|
|
75
|
+
`}
|
|
76
|
+
}
|
|
77
|
+
`;
|
|
78
|
+
});
|
|
79
|
+
StyledFeedPost.defaultProps = defaultThemeProp;
|
|
80
|
+
const isDefaultEditConfig = (editConfig) => {
|
|
81
|
+
return !!editConfig && Object.hasOwn(editConfig, 'defaultValue');
|
|
82
|
+
};
|
|
55
83
|
const FeedPost = (props) => {
|
|
56
|
-
const { id, avatarSrc, fullname, username, postTimestamp, content, visibility = 'public', postType, onEdit, editConfig, recipients, recipientsCount, attachments, liked, icon, postContext, userStatus, likes, likeCount, interactionsEnabled, maxContentHeight = Infinity, onMouseEnter, onMouseLeave, onCommentClick, onLikeClick, onLikeCountInteraction, likesLoading, onLoadMoreLikes, onRecipientInteraction, recipientsLoading, onLoadMoreRecipients, onUserClick, menuItems, edited = false, editTimestamp, replies = [], replyInput, replyInputShown, replyCount, repliesLoading, onShowLessReplies, onShowMoreReplies, ...restProps } = props;
|
|
84
|
+
const { id, avatarSrc, fullname, username, postTimestamp, content, visibility = 'public', postType, customPostType, onEdit, editConfig, recipients, recipientsCount, attachments, liked, icon, postContext, userStatus, likes, likeCount, interactionsEnabled, maxContentHeight = Infinity, onMouseEnter, onMouseLeave, onCommentClick, onLikeClick, onLikeCountInteraction, likesLoading, onLoadMoreLikes, onRecipientInteraction, recipientsLoading, onLoadMoreRecipients, onUserClick, menuItems, edited = false, editTimestamp, replies = [], replyInput, replyInputShown, replyCount, repliesLoading, onShowLessReplies, onShowMoreReplies, ...restProps } = props;
|
|
57
85
|
const { autopilotInfo, onLinkRender } = useContext(FeedContext);
|
|
58
86
|
const variant = 'post';
|
|
59
87
|
const t = useI18n();
|
|
60
88
|
const { announcePolite } = useLiveLog();
|
|
61
|
-
const [emptyEditText, setEmptyEditText] = useState(
|
|
89
|
+
const [emptyEditText, setEmptyEditText] = useState(() => {
|
|
90
|
+
if (isDefaultEditConfig(editConfig)) {
|
|
91
|
+
const initialEditText = editConfig.defaultValue ?? content;
|
|
92
|
+
return !initialEditText;
|
|
93
|
+
}
|
|
94
|
+
return false;
|
|
95
|
+
});
|
|
62
96
|
const [replyInputRef, setReplyInputRef] = useState(null);
|
|
63
97
|
const [openGraphData, setOpenGraphData] = useState(undefined);
|
|
64
98
|
const prevReplies = usePrevious(replies);
|
|
@@ -83,11 +117,11 @@ const FeedPost = (props) => {
|
|
|
83
117
|
}, [replies]);
|
|
84
118
|
const hasReplies = !!replies?.length;
|
|
85
119
|
const adjustedUsername = username === autopilotInfo.label ? autopilotInfo.id : username;
|
|
86
|
-
return (_jsx(StyledFeedPost, { ...restProps, onMouseEnter: () => {
|
|
120
|
+
return (_jsx(StyledFeedPost, { ...restProps, "$showLines": hasReplies || !!replyInputShown, "$customPostType": customPostType, onMouseEnter: () => {
|
|
87
121
|
onMouseEnter?.({ id });
|
|
88
122
|
}, onMouseLeave: () => {
|
|
89
123
|
onMouseLeave?.({ id });
|
|
90
|
-
}, children: _jsxs(CardContent, { children: [_jsx(FeedContentHeader, { variant: variant, id: id, fullname: fullname, username: adjustedUsername, postTimestamp: postTimestamp, avatarSrc: avatarSrc, icon: icon, userStatus: userStatus, visibility: visibility, postType: postType, postContext: postContext, recipients: recipients, recipientsCount: recipientsCount, menuItems: menuItems, edited: edited, editTimestamp: editTimestamp, recipientsLoading: recipientsLoading, onEdit: onEdit, onLoadMoreRecipients: onLoadMoreRecipients, onRecipientInteraction: onRecipientInteraction, onUserClick: onUserClick }), _jsxs(StyledPostContent, {
|
|
124
|
+
}, children: _jsxs(CardContent, { children: [_jsx(FeedContentHeader, { variant: variant, id: id, fullname: fullname, username: adjustedUsername, postTimestamp: postTimestamp, avatarSrc: avatarSrc, icon: icon, userStatus: userStatus, visibility: visibility, postType: postType, customPostType: customPostType, postContext: postContext, recipients: recipients, recipientsCount: recipientsCount, menuItems: menuItems, edited: edited, editTimestamp: editTimestamp, recipientsLoading: recipientsLoading, onEdit: onEdit, onLoadMoreRecipients: onLoadMoreRecipients, onRecipientInteraction: onRecipientInteraction, onUserClick: onUserClick }), _jsxs(StyledPostContent, { children: [_jsxs(Flex, { container: { direction: 'column', pad: [0, editConfig ? 0 : 2, 0, 0] }, item: { grow: 1 }, children: [!editConfig && (_jsx(FeedContent, { maxContentHeight: maxContentHeight, onLinkRender: onLinkRender
|
|
91
125
|
? async (href) => {
|
|
92
126
|
controllerRef.current.abort();
|
|
93
127
|
controllerRef.current = new AbortController();
|
|
@@ -101,17 +135,17 @@ const FeedPost = (props) => {
|
|
|
101
135
|
// If signal was aborted don't set state.
|
|
102
136
|
}
|
|
103
137
|
}
|
|
104
|
-
: undefined, children: content })),
|
|
138
|
+
: undefined, children: content })), isDefaultEditConfig(editConfig) && typeof content === 'string' && (_jsx(FeedEditRegion, { defaultValue: editConfig.defaultValue, variant: variant, id: id, content: content, visibility: visibility, recipients: recipients, recipientInput: editConfig.recipientInput, onEditSubmit: e => {
|
|
105
139
|
controllerRef.current.abort();
|
|
106
140
|
setOpenGraphData(undefined);
|
|
107
141
|
return editConfig.onEditSubmit(e);
|
|
108
|
-
}, onEditCancel: editConfig.onEditCancel, progress: editConfig.progress, banners: editConfig.banners, emptyEditText: emptyEditText, setEmptyEditText: setEmptyEditText })), !!editConfig && !!editConfig.editContent && (_jsx(FeedCustomEditRegion, { id: id, editContent: editConfig.editContent, visibility: visibility, recipients: recipients, recipientInput: editConfig.recipientInput, progress: editConfig.progress, banners: editConfig.banners, onEditSubmit: e => {
|
|
142
|
+
}, onEditCancel: editConfig.onEditCancel, onRewriteClick: 'onRewriteClick' in editConfig ? editConfig.onRewriteClick : undefined, progress: editConfig.progress, banners: editConfig.banners, emptyEditText: emptyEditText, setEmptyEditText: setEmptyEditText, onUnmount: 'onUnmount' in editConfig ? editConfig.onUnmount : undefined })), !!editConfig && !!editConfig.editContent && (_jsx(FeedCustomEditRegion, { id: id, editContent: editConfig.editContent, visibility: visibility, recipients: recipients, recipientInput: editConfig.recipientInput, progress: editConfig.progress, banners: editConfig.banners, onEditSubmit: e => {
|
|
109
143
|
controllerRef.current.abort();
|
|
110
144
|
setOpenGraphData(undefined);
|
|
111
145
|
return editConfig.onEditSubmit(e);
|
|
112
|
-
}, onEditCancel: editConfig.onEditCancel })), _jsx(FeedAttachments, { variant: variant, openGraphData: openGraphData, attachments: attachments })] }), _jsx(FeedContentFooter, { variant: variant, id: id, username: adjustedUsername, liked: liked, likes: likes, likeCount: likeCount, interactionsEnabled: interactionsEnabled, likesLoading: likesLoading, replies: replies, replyCount: replyCount, repliesLoading: repliesLoading, onCommentClick: onCommentClick, onLikeClick: onLikeClick, onLikeCountInteraction: onLikeCountInteraction, onLoadMoreLikes: onLoadMoreLikes, onShowMoreReplies: onShowMoreReplies, onShowLessReplies: onShowLessReplies }), _jsxs(StyledReplies, { children: [hasReplies && replies, replyInputShown && (_jsx(FeedReplyInput, { onSetInputRef: ({ ref }) => {
|
|
146
|
+
}, onEditCancel: editConfig.onEditCancel })), _jsx(FeedAttachments, { variant: variant, openGraphData: openGraphData, attachments: attachments })] }), _jsx(FeedContentFooter, { variant: variant, id: id, username: adjustedUsername, liked: liked, likes: likes, likeCount: likeCount, interactionsEnabled: interactionsEnabled, likesLoading: likesLoading, replies: replies, replyCount: replyCount, repliesLoading: repliesLoading, onCommentClick: onCommentClick, onLikeClick: onLikeClick, onLikeCountInteraction: onLikeCountInteraction, onLoadMoreLikes: onLoadMoreLikes, onShowMoreReplies: onShowMoreReplies, onShowLessReplies: onShowLessReplies }), _jsxs(StyledReplies, { children: [hasReplies && replies, replyInputShown && (_jsx(FeedReplyInput, { defaultValue: replyInput.defaultValue, onSetInputRef: ({ ref }) => {
|
|
113
147
|
setReplyInputRef(ref);
|
|
114
|
-
}, id: id, attachments: replyInput.attachments, onFilesAdded: replyInput.onFilesAdded, progress: replyInput.progress, banners: replyInput.banners, onSubmit: replyInput.onSubmit }))] }), onShowLessReplies && !!replies.length && (_jsxs(Flex, { container: { justify: 'center', pad: [0, 0, 1], gap: 1 }, children: [_jsx(Button, { variant: 'link', onClick: () => {
|
|
148
|
+
}, id: id, attachments: replyInput.attachments, onFilesAdded: replyInput.onFilesAdded, onRewriteClick: replyInput.onRewriteClick, progress: replyInput.progress, banners: replyInput.banners, onSubmit: replyInput.onSubmit, onUnmount: 'onUnmount' in replyInput ? replyInput.onUnmount : undefined }))] }), onShowLessReplies && !!replies.length && (_jsxs(Flex, { container: { justify: 'center', pad: [0, 0, 1], gap: 1 }, children: [_jsx(Button, { variant: 'link', onClick: () => {
|
|
115
149
|
onShowLessReplies({ id });
|
|
116
150
|
suppressNextAnnouncement.current = true;
|
|
117
151
|
}, children: t('show_less') }), repliesLoading && _jsx(Progress, { placement: 'inline' })] }))] })] }) }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeedPost.js","sourceRoot":"","sources":["../../../src/components/Feed/FeedPost.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useState, useEffect, useRef, useContext } from 'react';\nimport type { FC, RefObject } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport {\n Button,\n Card,\n CardContent,\n Flex,\n registerIcon,\n defaultThemeProp,\n useI18n,\n Progress,\n usePrevious,\n useLiveLog,\n useAfterInitialEffect\n} from '@pega/cosmos-react-core';\nimport type { RichTextEditorState } from '@pega/cosmos-react-rte';\nimport * as arrowMicroDownIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/arrow-micro-down.icon';\nimport * as caretLeftIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/caret-left.icon';\n\nimport type { OpenGraphData } from '../OpenGraphPreview/OpenGraphPreview';\n\nimport FeedAttachments, { StyledAttachmentsRegion } from './FeedAttachments';\nimport FeedContent from './FeedContent';\nimport FeedReplyInput, { StyledReplyInputContainer } from './FeedReplyInput';\nimport { FeedContext } from './Feed.context';\nimport type { FeedPostProps } from './Feed.types';\nimport FeedContentHeader from './FeedContentHeader';\nimport FeedContentFooter from './FeedContentFooter';\nimport FeedEditRegion from './FeedEditRegion';\nimport { StyledFeedReplyContainer } from './FeedReply';\nimport FeedCustomEditRegion from './FeedCustomEditRegion';\n\nregisterIcon(arrowMicroDownIcon, caretLeftIcon);\n\nexport const StyledFeedPost = styled(Card)(\n ({ theme }) => css`\n margin-block-start: calc(2 * ${theme.base.spacing});\n `\n);\n\nStyledFeedPost.defaultProps = defaultThemeProp;\n\nconst StyledPostContent = styled.div<{ showLines: boolean }>(({ showLines, theme }) => {\n return css`\n padding-inline-start: calc(6 * ${theme.base.spacing});\n\n ${StyledAttachmentsRegion} {\n margin-block-start: ${theme.base.spacing};\n margin-inline: 0;\n }\n\n ${showLines &&\n css`\n margin-inline-start: calc(2.5 * ${theme.base.spacing});\n border-inline-start: solid 0.0625rem ${theme.base.palette['border-line']};\n padding-inline-start: calc(3.5 * ${theme.base.spacing});\n `}\n `;\n});\n\nStyledPostContent.defaultProps = defaultThemeProp;\n\nexport const StyledReplies = styled.div(\n ({ theme }) => css`\n margin-inline-start: calc(-1.75 * ${theme.base.spacing});\n\n ${StyledFeedReplyContainer}, ${StyledReplyInputContainer} {\n padding-block-start: ${theme.base.spacing};\n }\n\n ${StyledReplyInputContainer} {\n ${StyledAttachmentsRegion} {\n margin-block-start: ${theme.base.spacing};\n margin-inline-start: calc(5 * ${theme.base.spacing});\n margin-inline-end: calc(5 * ${theme.base.spacing});\n }\n }\n `\n);\n\nStyledReplies.defaultProps = defaultThemeProp;\n\nconst FeedPost: FC<FeedPostProps> = (props: FeedPostProps) => {\n const {\n id,\n avatarSrc,\n fullname,\n username,\n postTimestamp,\n content,\n visibility = 'public',\n postType,\n onEdit,\n editConfig,\n recipients,\n recipientsCount,\n attachments,\n liked,\n icon,\n postContext,\n userStatus,\n likes,\n likeCount,\n interactionsEnabled,\n maxContentHeight = Infinity,\n onMouseEnter,\n onMouseLeave,\n onCommentClick,\n onLikeClick,\n onLikeCountInteraction,\n likesLoading,\n onLoadMoreLikes,\n onRecipientInteraction,\n recipientsLoading,\n onLoadMoreRecipients,\n onUserClick,\n menuItems,\n edited = false,\n editTimestamp,\n replies = [],\n replyInput,\n replyInputShown,\n replyCount,\n repliesLoading,\n onShowLessReplies,\n onShowMoreReplies,\n ...restProps\n } = props;\n const { autopilotInfo, onLinkRender } = useContext(FeedContext);\n const variant = 'post';\n\n const t = useI18n();\n const { announcePolite } = useLiveLog();\n const [emptyEditText, setEmptyEditText] = useState(false);\n const [replyInputRef, setReplyInputRef] = useState<RefObject<RichTextEditorState> | null>(null);\n const [openGraphData, setOpenGraphData] = useState<OpenGraphData | undefined>(undefined);\n const prevReplies = usePrevious(replies);\n const suppressNextAnnouncement = useRef(false);\n const controllerRef = useRef(new AbortController());\n\n useEffect(() => {\n if (replyInputShown && replyInputRef) {\n replyInputRef.current?.focus();\n }\n }, [replyInputShown, replyInputRef]);\n\n useAfterInitialEffect(() => {\n if (prevReplies) {\n const difference = prevReplies.length - replies.length;\n if (difference !== 0 && !suppressNextAnnouncement.current) {\n announcePolite({\n message: difference < 0 ? t('feed_comment_added') : t('feed_comment_removed')\n });\n return;\n }\n suppressNextAnnouncement.current = false;\n }\n }, [replies]);\n\n const hasReplies = !!replies?.length;\n const adjustedUsername = username === autopilotInfo.label ? autopilotInfo.id : username;\n\n return (\n <StyledFeedPost\n {...restProps}\n onMouseEnter={() => {\n onMouseEnter?.({ id });\n }}\n onMouseLeave={() => {\n onMouseLeave?.({ id });\n }}\n >\n <CardContent>\n <FeedContentHeader\n variant={variant}\n id={id}\n fullname={fullname}\n username={adjustedUsername}\n postTimestamp={postTimestamp}\n avatarSrc={avatarSrc}\n icon={icon}\n userStatus={userStatus}\n visibility={visibility}\n postType={postType}\n postContext={postContext}\n recipients={recipients}\n recipientsCount={recipientsCount}\n menuItems={menuItems}\n edited={edited}\n editTimestamp={editTimestamp}\n recipientsLoading={recipientsLoading}\n onEdit={onEdit}\n onLoadMoreRecipients={onLoadMoreRecipients}\n onRecipientInteraction={onRecipientInteraction}\n onUserClick={onUserClick}\n />\n <StyledPostContent showLines={hasReplies || !!replyInputShown}>\n <Flex\n container={{ direction: 'column', pad: [0, editConfig ? 0 : 2, 0, 0] }}\n item={{ grow: 1 }}\n >\n {!editConfig && (\n <FeedContent\n maxContentHeight={maxContentHeight}\n onLinkRender={\n onLinkRender\n ? async href => {\n controllerRef.current.abort();\n\n controllerRef.current = new AbortController();\n\n try {\n const newOpenGraphData = await onLinkRender(\n href,\n controllerRef.current.signal\n );\n if (!controllerRef.current.signal.aborted) {\n setOpenGraphData(newOpenGraphData);\n }\n } catch {\n // If signal was aborted don't set state.\n }\n }\n : undefined\n }\n >\n {content}\n </FeedContent>\n )}\n {!!editConfig && !editConfig.editContent && typeof content === 'string' && (\n <FeedEditRegion\n variant={variant}\n id={id}\n content={content}\n visibility={visibility}\n recipients={recipients}\n recipientInput={editConfig.recipientInput}\n onEditSubmit={e => {\n controllerRef.current.abort();\n setOpenGraphData(undefined);\n return editConfig.onEditSubmit(e);\n }}\n onEditCancel={editConfig.onEditCancel}\n progress={editConfig.progress}\n banners={editConfig.banners}\n emptyEditText={emptyEditText}\n setEmptyEditText={setEmptyEditText}\n />\n )}\n {!!editConfig && !!editConfig.editContent && (\n <FeedCustomEditRegion\n id={id}\n editContent={editConfig.editContent}\n visibility={visibility}\n recipients={recipients}\n recipientInput={editConfig.recipientInput}\n progress={editConfig.progress}\n banners={editConfig.banners}\n onEditSubmit={e => {\n controllerRef.current.abort();\n setOpenGraphData(undefined);\n return editConfig.onEditSubmit(e);\n }}\n onEditCancel={editConfig.onEditCancel}\n />\n )}\n <FeedAttachments\n variant={variant}\n openGraphData={openGraphData}\n attachments={attachments}\n />\n </Flex>\n <FeedContentFooter\n variant={variant}\n id={id}\n username={adjustedUsername}\n liked={liked}\n likes={likes}\n likeCount={likeCount}\n interactionsEnabled={interactionsEnabled}\n likesLoading={likesLoading}\n replies={replies}\n replyCount={replyCount}\n repliesLoading={repliesLoading}\n onCommentClick={onCommentClick}\n onLikeClick={onLikeClick}\n onLikeCountInteraction={onLikeCountInteraction}\n onLoadMoreLikes={onLoadMoreLikes}\n onShowMoreReplies={onShowMoreReplies}\n onShowLessReplies={onShowLessReplies}\n />\n\n <StyledReplies>\n {hasReplies && replies}\n {replyInputShown && (\n <FeedReplyInput\n onSetInputRef={({ ref }) => {\n setReplyInputRef(ref);\n }}\n id={id}\n attachments={replyInput.attachments}\n onFilesAdded={replyInput.onFilesAdded}\n progress={replyInput.progress}\n banners={replyInput.banners}\n onSubmit={replyInput.onSubmit}\n />\n )}\n </StyledReplies>\n {onShowLessReplies && !!replies.length && (\n <Flex container={{ justify: 'center', pad: [0, 0, 1], gap: 1 }}>\n <Button\n variant='link'\n onClick={() => {\n onShowLessReplies({ id });\n suppressNextAnnouncement.current = true;\n }}\n >\n {t('show_less')}\n </Button>\n {repliesLoading && <Progress placement='inline' />}\n </Flex>\n )}\n </StyledPostContent>\n </CardContent>\n </StyledFeedPost>\n );\n};\n\nexport default FeedPost;\n"]}
|
|
1
|
+
{"version":3,"file":"FeedPost.js","sourceRoot":"","sources":["../../../src/components/Feed/FeedPost.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useState, useEffect, useRef, useContext } from 'react';\nimport type { FC, RefObject } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport {\n Button,\n Card,\n CardContent,\n Flex,\n registerIcon,\n defaultThemeProp,\n useI18n,\n Progress,\n usePrevious,\n useLiveLog,\n useAfterInitialEffect\n} from '@pega/cosmos-react-core';\nimport type { RichTextEditorState } from '@pega/cosmos-react-rte';\nimport * as arrowMicroDownIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/arrow-micro-down.icon';\nimport * as caretLeftIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/caret-left.icon';\n\nimport type { OpenGraphData } from '../OpenGraphPreview/OpenGraphPreview';\n\nimport FeedAttachments, { StyledAttachmentsRegion } from './FeedAttachments';\nimport FeedContent from './FeedContent';\nimport FeedReplyInput, { StyledReplyInputContainer } from './FeedReplyInput';\nimport { FeedContext } from './Feed.context';\nimport type { CustomEditConfig, DefaultEditConfig, FeedPostProps } from './Feed.types';\nimport FeedContentHeader from './FeedContentHeader';\nimport FeedContentFooter from './FeedContentFooter';\nimport FeedEditRegion from './FeedEditRegion';\nimport { StyledFeedReplyContainer, StyledReplyContent } from './FeedReply';\nimport FeedCustomEditRegion from './FeedCustomEditRegion';\n\nregisterIcon(arrowMicroDownIcon, caretLeftIcon);\n\nconst StyledPostContent = styled.div(({ theme }) => {\n return css`\n margin-inline-start: 1.25rem;\n padding-inline-start: calc(3.5 * ${theme.base.spacing});\n\n ${StyledAttachmentsRegion} {\n margin-block-start: ${theme.base.spacing};\n margin-inline: 0;\n }\n `;\n});\n\nStyledPostContent.defaultProps = defaultThemeProp;\n\nexport const StyledReplies = styled.div(\n ({ theme }) => css`\n margin-inline-start: calc(-1.75 * ${theme.base.spacing});\n\n ${StyledFeedReplyContainer}, ${StyledReplyInputContainer} {\n padding-block-start: ${theme.base.spacing};\n }\n\n ${StyledReplyInputContainer} {\n ${StyledAttachmentsRegion} {\n margin-block-start: ${theme.base.spacing};\n margin-inline-start: calc(5 * 0.5rem);\n margin-inline-end: calc(5 * 0.5rem);\n }\n }\n `\n);\n\nStyledReplies.defaultProps = defaultThemeProp;\n\nexport const StyledFeedPost = styled(Card)<{\n $showLines: boolean;\n $customPostType: FeedPostProps['customPostType'];\n}>(({ theme, $showLines, $customPostType }) => {\n return css`\n margin-block-start: calc(2 * ${theme.base.spacing});\n\n ${StyledPostContent},\n ${StyledReplyContent} {\n position: relative;\n\n ${$showLines &&\n css`\n &::before {\n content: '';\n display: block;\n position: absolute;\n inset-block: 0;\n border-radius: ${theme.base['border-radius']};\n\n ${$customPostType\n ? css`\n inset-inline-start: -0.0625rem;\n inline-size: 0.125rem;\n background: ${theme.base.palette.warn};\n `\n : css`\n /* Half pixel shift visually centers with avatar. */\n inset-inline-start: calc(-0.0625rem / 2);\n inline-size: 0.0625rem;\n background: ${theme.base.palette['border-line']};\n `}\n }\n `}\n }\n `;\n});\n\nStyledFeedPost.defaultProps = defaultThemeProp;\n\nconst isDefaultEditConfig = (\n editConfig: DefaultEditConfig | CustomEditConfig | undefined\n): editConfig is DefaultEditConfig => {\n return !!editConfig && Object.hasOwn(editConfig, 'defaultValue');\n};\n\nconst FeedPost: FC<FeedPostProps> = (props: FeedPostProps) => {\n const {\n id,\n avatarSrc,\n fullname,\n username,\n postTimestamp,\n content,\n visibility = 'public',\n postType,\n customPostType,\n onEdit,\n editConfig,\n recipients,\n recipientsCount,\n attachments,\n liked,\n icon,\n postContext,\n userStatus,\n likes,\n likeCount,\n interactionsEnabled,\n maxContentHeight = Infinity,\n onMouseEnter,\n onMouseLeave,\n onCommentClick,\n onLikeClick,\n onLikeCountInteraction,\n likesLoading,\n onLoadMoreLikes,\n onRecipientInteraction,\n recipientsLoading,\n onLoadMoreRecipients,\n onUserClick,\n menuItems,\n edited = false,\n editTimestamp,\n replies = [],\n replyInput,\n replyInputShown,\n replyCount,\n repliesLoading,\n onShowLessReplies,\n onShowMoreReplies,\n ...restProps\n } = props;\n const { autopilotInfo, onLinkRender } = useContext(FeedContext);\n const variant = 'post';\n\n const t = useI18n();\n const { announcePolite } = useLiveLog();\n\n const [emptyEditText, setEmptyEditText] = useState(() => {\n if (isDefaultEditConfig(editConfig)) {\n const initialEditText = editConfig.defaultValue ?? content;\n\n return !initialEditText;\n }\n\n return false;\n });\n const [replyInputRef, setReplyInputRef] = useState<RefObject<RichTextEditorState> | null>(null);\n const [openGraphData, setOpenGraphData] = useState<OpenGraphData | undefined>(undefined);\n const prevReplies = usePrevious(replies);\n const suppressNextAnnouncement = useRef(false);\n const controllerRef = useRef(new AbortController());\n\n useEffect(() => {\n if (replyInputShown && replyInputRef) {\n replyInputRef.current?.focus();\n }\n }, [replyInputShown, replyInputRef]);\n\n useAfterInitialEffect(() => {\n if (prevReplies) {\n const difference = prevReplies.length - replies.length;\n if (difference !== 0 && !suppressNextAnnouncement.current) {\n announcePolite({\n message: difference < 0 ? t('feed_comment_added') : t('feed_comment_removed')\n });\n return;\n }\n suppressNextAnnouncement.current = false;\n }\n }, [replies]);\n\n const hasReplies = !!replies?.length;\n const adjustedUsername = username === autopilotInfo.label ? autopilotInfo.id : username;\n\n return (\n <StyledFeedPost\n {...restProps}\n $showLines={hasReplies || !!replyInputShown}\n $customPostType={customPostType}\n onMouseEnter={() => {\n onMouseEnter?.({ id });\n }}\n onMouseLeave={() => {\n onMouseLeave?.({ id });\n }}\n >\n <CardContent>\n <FeedContentHeader\n variant={variant}\n id={id}\n fullname={fullname}\n username={adjustedUsername}\n postTimestamp={postTimestamp}\n avatarSrc={avatarSrc}\n icon={icon}\n userStatus={userStatus}\n visibility={visibility}\n postType={postType}\n customPostType={customPostType}\n postContext={postContext}\n recipients={recipients}\n recipientsCount={recipientsCount}\n menuItems={menuItems}\n edited={edited}\n editTimestamp={editTimestamp}\n recipientsLoading={recipientsLoading}\n onEdit={onEdit}\n onLoadMoreRecipients={onLoadMoreRecipients}\n onRecipientInteraction={onRecipientInteraction}\n onUserClick={onUserClick}\n />\n <StyledPostContent>\n <Flex\n container={{ direction: 'column', pad: [0, editConfig ? 0 : 2, 0, 0] }}\n item={{ grow: 1 }}\n >\n {!editConfig && (\n <FeedContent\n maxContentHeight={maxContentHeight}\n onLinkRender={\n onLinkRender\n ? async href => {\n controllerRef.current.abort();\n\n controllerRef.current = new AbortController();\n\n try {\n const newOpenGraphData = await onLinkRender(\n href,\n controllerRef.current.signal\n );\n if (!controllerRef.current.signal.aborted) {\n setOpenGraphData(newOpenGraphData);\n }\n } catch {\n // If signal was aborted don't set state.\n }\n }\n : undefined\n }\n >\n {content}\n </FeedContent>\n )}\n\n {isDefaultEditConfig(editConfig) && typeof content === 'string' && (\n <FeedEditRegion\n defaultValue={editConfig.defaultValue}\n variant={variant}\n id={id}\n content={content}\n visibility={visibility}\n recipients={recipients}\n recipientInput={editConfig.recipientInput}\n onEditSubmit={e => {\n controllerRef.current.abort();\n setOpenGraphData(undefined);\n return editConfig.onEditSubmit(e);\n }}\n onEditCancel={editConfig.onEditCancel}\n onRewriteClick={\n 'onRewriteClick' in editConfig ? editConfig.onRewriteClick : undefined\n }\n progress={editConfig.progress}\n banners={editConfig.banners}\n emptyEditText={emptyEditText}\n setEmptyEditText={setEmptyEditText}\n onUnmount={'onUnmount' in editConfig ? editConfig.onUnmount : undefined}\n />\n )}\n {!!editConfig && !!editConfig.editContent && (\n <FeedCustomEditRegion\n id={id}\n editContent={editConfig.editContent}\n visibility={visibility}\n recipients={recipients}\n recipientInput={editConfig.recipientInput}\n progress={editConfig.progress}\n banners={editConfig.banners}\n onEditSubmit={e => {\n controllerRef.current.abort();\n setOpenGraphData(undefined);\n return editConfig.onEditSubmit(e);\n }}\n onEditCancel={editConfig.onEditCancel}\n />\n )}\n <FeedAttachments\n variant={variant}\n openGraphData={openGraphData}\n attachments={attachments}\n />\n </Flex>\n <FeedContentFooter\n variant={variant}\n id={id}\n username={adjustedUsername}\n liked={liked}\n likes={likes}\n likeCount={likeCount}\n interactionsEnabled={interactionsEnabled}\n likesLoading={likesLoading}\n replies={replies}\n replyCount={replyCount}\n repliesLoading={repliesLoading}\n onCommentClick={onCommentClick}\n onLikeClick={onLikeClick}\n onLikeCountInteraction={onLikeCountInteraction}\n onLoadMoreLikes={onLoadMoreLikes}\n onShowMoreReplies={onShowMoreReplies}\n onShowLessReplies={onShowLessReplies}\n />\n\n <StyledReplies>\n {hasReplies && replies}\n {replyInputShown && (\n <FeedReplyInput\n defaultValue={replyInput.defaultValue}\n onSetInputRef={({ ref }) => {\n setReplyInputRef(ref);\n }}\n id={id}\n attachments={replyInput.attachments}\n onFilesAdded={replyInput.onFilesAdded}\n onRewriteClick={replyInput.onRewriteClick}\n progress={replyInput.progress}\n banners={replyInput.banners}\n onSubmit={replyInput.onSubmit}\n onUnmount={'onUnmount' in replyInput ? replyInput.onUnmount : undefined}\n />\n )}\n </StyledReplies>\n {onShowLessReplies && !!replies.length && (\n <Flex container={{ justify: 'center', pad: [0, 0, 1], gap: 1 }}>\n <Button\n variant='link'\n onClick={() => {\n onShowLessReplies({ id });\n suppressNextAnnouncement.current = true;\n }}\n >\n {t('show_less')}\n </Button>\n {repliesLoading && <Progress placement='inline' />}\n </Flex>\n )}\n </StyledPostContent>\n </CardContent>\n </StyledFeedPost>\n );\n};\n\nexport default FeedPost;\n"]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { FC } from 'react';
|
|
2
2
|
import type { FeedReplyProps } from './Feed.types';
|
|
3
|
-
export declare const StyledFeedReplyContainer: import("styled-components").
|
|
3
|
+
export declare const StyledFeedReplyContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
4
|
+
export declare const StyledReplyContent: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
4
5
|
declare const FeedReply: FC<FeedReplyProps>;
|
|
5
6
|
export default FeedReply;
|
|
6
7
|
//# sourceMappingURL=FeedReply.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeedReply.d.ts","sourceRoot":"","sources":["../../../src/components/Feed/FeedReply.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAUhC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAUnD,eAAO,MAAM,wBAAwB,
|
|
1
|
+
{"version":3,"file":"FeedReply.d.ts","sourceRoot":"","sources":["../../../src/components/Feed/FeedReply.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAUhC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAUnD,eAAO,MAAM,wBAAwB,6NAAe,CAAC;AAIrD,eAAO,MAAM,kBAAkB,6NAK7B,CAAC;AAIH,QAAA,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CA6IjC,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
|
@@ -14,10 +14,9 @@ import { FeedContext } from './Feed.context';
|
|
|
14
14
|
registerIcon(chatIcon, thumbsUpSolidIcon, thumbsUpIcon);
|
|
15
15
|
export const StyledFeedReplyContainer = styled.div ``;
|
|
16
16
|
StyledFeedReplyContainer.defaultProps = defaultThemeProp;
|
|
17
|
-
const StyledReplyContent = styled.div(({ theme }) => {
|
|
17
|
+
export const StyledReplyContent = styled.div(({ theme }) => {
|
|
18
18
|
return css `
|
|
19
|
-
margin-inline-start:
|
|
20
|
-
border-inline-start: solid 0.0625rem ${theme.base.palette['border-line']};
|
|
19
|
+
margin-inline-start: 1rem;
|
|
21
20
|
padding-inline-start: calc(3 * ${theme.base.spacing});
|
|
22
21
|
`;
|
|
23
22
|
});
|
|
@@ -34,11 +33,11 @@ const FeedReply = (props) => {
|
|
|
34
33
|
onMouseEnter?.({ id });
|
|
35
34
|
}, onMouseLeave: () => {
|
|
36
35
|
onMouseLeave?.({ id });
|
|
37
|
-
}, ...restProps, children: [_jsx(FeedContentHeader, { variant: variant, id: id, fullname: fullname, username: adjustedUsername, postTimestamp: postTimestamp, avatarSrc: avatarSrc, icon: icon, userStatus: userStatus, menuItems: menuItems, edited: edited, editTimestamp: editTimestamp, onEdit: onEdit, onUserClick: onUserClick }), _jsxs(StyledReplyContent, { children: [_jsxs(Flex, { container: { direction: 'column', pad: [0, editConfig ? 0 : 2, 0, 0] }, item: { grow: 1 }, children: [editConfig && typeof content === 'string' ? (_jsx(FeedEditRegion, { variant: variant, id: id, content: content, onEditSubmit: e => {
|
|
36
|
+
}, ...restProps, children: [_jsx(FeedContentHeader, { variant: variant, id: id, fullname: fullname, username: adjustedUsername, postTimestamp: postTimestamp, avatarSrc: avatarSrc, icon: icon, userStatus: userStatus, menuItems: menuItems, edited: edited, editTimestamp: editTimestamp, onEdit: onEdit, onUserClick: onUserClick }), _jsxs(StyledReplyContent, { children: [_jsxs(Flex, { container: { direction: 'column', pad: [0, editConfig ? 0 : 2, 0, 0] }, item: { grow: 1 }, children: [editConfig && typeof content === 'string' ? (_jsx(FeedEditRegion, { defaultValue: editConfig.defaultValue, variant: variant, id: id, content: content, onEditSubmit: e => {
|
|
38
37
|
controllerRef.current.abort();
|
|
39
38
|
setOpenGraphData(undefined);
|
|
40
39
|
return editConfig.onEditSubmit(e);
|
|
41
|
-
}, onEditCancel: editConfig.onEditCancel, progress: editConfig.progress, banners: editConfig.banners, emptyEditText: emptyEditText, setEmptyEditText: setEmptyEditText })) : (_jsx(FeedContent, { maxContentHeight: maxContentHeight, onLinkRender: onLinkRender
|
|
40
|
+
}, onEditCancel: editConfig.onEditCancel, onRewriteClick: editConfig.onRewriteClick, progress: editConfig.progress, banners: editConfig.banners, emptyEditText: emptyEditText, setEmptyEditText: setEmptyEditText, onUnmount: 'onUnmount' in editConfig ? editConfig.onUnmount : undefined })) : (_jsx(FeedContent, { maxContentHeight: maxContentHeight, onLinkRender: onLinkRender
|
|
42
41
|
? async (href) => {
|
|
43
42
|
controllerRef.current.abort();
|
|
44
43
|
controllerRef.current = new AbortController();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeedReply.js","sourceRoot":"","sources":["../../../src/components/Feed/FeedReply.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAErD,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,KAAK,QAAQ,MAAM,6DAA6D,CAAC;AACxF,OAAO,KAAK,iBAAiB,MAAM,wEAAwE,CAAC;AAC5G,OAAO,KAAK,YAAY,MAAM,kEAAkE,CAAC;AAKjG,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,YAAY,CAAC,QAAQ,EAAE,iBAAiB,EAAE,YAAY,CAAC,CAAC;AAExD,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC,GAAG,CAAA,EAAE,CAAC;AAErD,wBAAwB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAEzD,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"FeedReply.js","sourceRoot":"","sources":["../../../src/components/Feed/FeedReply.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useContext, useRef, useState } from 'react';\nimport type { FC } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Flex, registerIcon, defaultThemeProp } from '@pega/cosmos-react-core';\nimport * as chatIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/chat.icon';\nimport * as thumbsUpSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/thumbs-up-solid.icon';\nimport * as thumbsUpIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/thumbs-up.icon';\n\nimport type { OpenGraphData } from '../OpenGraphPreview/OpenGraphPreview';\n\nimport type { FeedReplyProps } from './Feed.types';\nimport FeedAttachments from './FeedAttachments';\nimport FeedContent from './FeedContent';\nimport FeedContentHeader from './FeedContentHeader';\nimport FeedContentFooter from './FeedContentFooter';\nimport FeedEditRegion from './FeedEditRegion';\nimport { FeedContext } from './Feed.context';\n\nregisterIcon(chatIcon, thumbsUpSolidIcon, thumbsUpIcon);\n\nexport const StyledFeedReplyContainer = styled.div``;\n\nStyledFeedReplyContainer.defaultProps = defaultThemeProp;\n\nexport const StyledReplyContent = styled.div(({ theme }) => {\n return css`\n margin-inline-start: 1rem;\n padding-inline-start: calc(3 * ${theme.base.spacing});\n `;\n});\n\nStyledReplyContent.defaultProps = defaultThemeProp;\n\nconst FeedReply: FC<FeedReplyProps> = (props: FeedReplyProps) => {\n const {\n id,\n avatarSrc,\n postTimestamp,\n content,\n attachments,\n username,\n fullname,\n liked,\n likes,\n likeCount,\n interactionsEnabled,\n icon,\n userStatus,\n maxContentHeight = Infinity,\n menuItems,\n onEdit,\n editConfig,\n edited = false,\n editTimestamp,\n onMouseEnter,\n onMouseLeave,\n onCommentClick,\n onLikeClick,\n onLikeCountInteraction,\n onLoadMoreLikes,\n likesLoading,\n onUserClick,\n ...restProps\n } = props;\n const variant = 'reply';\n\n const { autopilotInfo, onLinkRender } = useContext(FeedContext);\n const [openGraphData, setOpenGraphData] = useState<OpenGraphData | undefined>(undefined);\n const [emptyEditText, setEmptyEditText] = useState(false);\n const controllerRef = useRef(new AbortController());\n\n const adjustedUsername = username === autopilotInfo.label ? autopilotInfo.id : username;\n\n return (\n <StyledFeedReplyContainer\n onMouseEnter={() => {\n onMouseEnter?.({ id });\n }}\n onMouseLeave={() => {\n onMouseLeave?.({ id });\n }}\n {...restProps}\n >\n <FeedContentHeader\n variant={variant}\n id={id}\n fullname={fullname}\n username={adjustedUsername}\n postTimestamp={postTimestamp}\n avatarSrc={avatarSrc}\n icon={icon}\n userStatus={userStatus}\n menuItems={menuItems}\n edited={edited}\n editTimestamp={editTimestamp}\n onEdit={onEdit}\n onUserClick={onUserClick}\n />\n <StyledReplyContent>\n <Flex\n container={{ direction: 'column', pad: [0, editConfig ? 0 : 2, 0, 0] }}\n item={{ grow: 1 }}\n >\n {editConfig && typeof content === 'string' ? (\n <FeedEditRegion\n defaultValue={editConfig.defaultValue}\n variant={variant}\n id={id}\n content={content}\n onEditSubmit={e => {\n controllerRef.current.abort();\n setOpenGraphData(undefined);\n return editConfig.onEditSubmit(e);\n }}\n onEditCancel={editConfig.onEditCancel}\n onRewriteClick={editConfig.onRewriteClick}\n progress={editConfig.progress}\n banners={editConfig.banners}\n emptyEditText={emptyEditText}\n setEmptyEditText={setEmptyEditText}\n onUnmount={'onUnmount' in editConfig ? editConfig.onUnmount : undefined}\n />\n ) : (\n <FeedContent\n maxContentHeight={maxContentHeight}\n onLinkRender={\n onLinkRender\n ? async href => {\n controllerRef.current.abort();\n\n controllerRef.current = new AbortController();\n\n try {\n const newOpenGraphData = await onLinkRender(\n href,\n controllerRef.current.signal\n );\n if (!controllerRef.current.signal.aborted) {\n setOpenGraphData(newOpenGraphData);\n }\n } catch {\n // If signal was aborted don't set state.\n }\n }\n : undefined\n }\n >\n {content}\n </FeedContent>\n )}\n <FeedAttachments\n variant={variant}\n openGraphData={openGraphData}\n attachments={attachments}\n />\n </Flex>\n\n <FeedContentFooter\n variant={variant}\n id={id}\n username={adjustedUsername}\n liked={liked}\n likes={likes}\n likeCount={likeCount}\n interactionsEnabled={interactionsEnabled}\n likesLoading={likesLoading}\n onCommentClick={onCommentClick}\n onLikeClick={onLikeClick}\n onLikeCountInteraction={onLikeCountInteraction}\n onLoadMoreLikes={onLoadMoreLikes}\n />\n </StyledReplyContent>\n </StyledFeedReplyContainer>\n );\n};\n\nexport default FeedReply;\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { FC } from 'react';
|
|
2
2
|
import type { FeedReplyInputProps } from './Feed.types';
|
|
3
|
-
export declare const StyledReplyInputContainer: import("styled-components").
|
|
3
|
+
export declare const StyledReplyInputContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
4
4
|
declare const FeedReplyInput: FC<FeedReplyInputProps>;
|
|
5
5
|
export default FeedReplyInput;
|
|
6
6
|
//# sourceMappingURL=FeedReplyInput.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeedReplyInput.d.ts","sourceRoot":"","sources":["../../../src/components/Feed/FeedReplyInput.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAQhC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAKxD,eAAO,MAAM,yBAAyB,
|
|
1
|
+
{"version":3,"file":"FeedReplyInput.d.ts","sourceRoot":"","sources":["../../../src/components/Feed/FeedReplyInput.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAQhC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAKxD,eAAO,MAAM,yBAAyB,6NAAe,CAAC;AAItD,QAAA,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CAqC3C,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
@@ -9,12 +9,12 @@ registerIcon(sendIcon, paperClipIcon);
|
|
|
9
9
|
export const StyledReplyInputContainer = styled.div ``;
|
|
10
10
|
StyledReplyInputContainer.defaultProps = defaultThemeProp;
|
|
11
11
|
const FeedReplyInput = (props) => {
|
|
12
|
-
const { id, banners, progress, attachments, onFilesAdded, onSubmit, onSetInputRef, ...restProps } = props;
|
|
12
|
+
const { defaultValue, id, banners, progress, onRewriteClick, attachments, onFilesAdded, onSubmit, onSetInputRef, onUnmount, ...restProps } = props;
|
|
13
13
|
const rteRef = useRef(null);
|
|
14
14
|
useEffect(() => {
|
|
15
15
|
onSetInputRef?.({ ref: rteRef });
|
|
16
16
|
}, [rteRef]);
|
|
17
|
-
return (_jsx(StyledReplyInputContainer, { ...restProps, children: _jsx(FeedInputRegion, { variant: 'reply', id: id, banners: banners, progress: progress, attachments: attachments, onFilesAdded: onFilesAdded, onSubmit: onSubmit, rteRef: rteRef }) }));
|
|
17
|
+
return (_jsx(StyledReplyInputContainer, { ...restProps, children: _jsx(FeedInputRegion, { defaultValue: defaultValue, variant: 'reply', id: id, banners: banners, progress: progress, onRewriteClick: onRewriteClick, attachments: attachments, onFilesAdded: onFilesAdded, onSubmit: onSubmit, rteRef: rteRef, onUnmount: onUnmount }) }));
|
|
18
18
|
};
|
|
19
19
|
export default FeedReplyInput;
|
|
20
20
|
//# sourceMappingURL=FeedReplyInput.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeedReplyInput.js","sourceRoot":"","sources":["../../../src/components/Feed/FeedReplyInput.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEzE,OAAO,KAAK,QAAQ,MAAM,6DAA6D,CAAC;AACxF,OAAO,KAAK,aAAa,MAAM,mEAAmE,CAAC;AAGnG,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAEhD,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;AAEtC,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC,GAAG,CAAA,EAAE,CAAC;AAEtD,yBAAyB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAE1D,MAAM,cAAc,GAA4B,CAAC,KAA0B,EAAE,EAAE;IAC7E,MAAM,EACJ,EAAE,EACF,OAAO,EACP,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,GAAG,SAAS,EACb,GAAG,KAAK,CAAC;IACV,MAAM,MAAM,GAAG,MAAM,CAAsB,IAAI,CAAC,CAAC;IAEjD,SAAS,CAAC,GAAG,EAAE;QACb,aAAa,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IACnC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,OAAO,CACL,KAAC,yBAAyB,OAAK,SAAS,YACtC,KAAC,eAAe,IACd,OAAO,EAAC,OAAO,EACf,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"FeedReplyInput.js","sourceRoot":"","sources":["../../../src/components/Feed/FeedReplyInput.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEzE,OAAO,KAAK,QAAQ,MAAM,6DAA6D,CAAC;AACxF,OAAO,KAAK,aAAa,MAAM,mEAAmE,CAAC;AAGnG,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAEhD,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;AAEtC,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC,GAAG,CAAA,EAAE,CAAC;AAEtD,yBAAyB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAE1D,MAAM,cAAc,GAA4B,CAAC,KAA0B,EAAE,EAAE;IAC7E,MAAM,EACJ,YAAY,EACZ,EAAE,EACF,OAAO,EACP,QAAQ,EACR,cAAc,EACd,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,SAAS,EACT,GAAG,SAAS,EACb,GAAG,KAAK,CAAC;IACV,MAAM,MAAM,GAAG,MAAM,CAAsB,IAAI,CAAC,CAAC;IAEjD,SAAS,CAAC,GAAG,EAAE;QACb,aAAa,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IACnC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,OAAO,CACL,KAAC,yBAAyB,OAAK,SAAS,YACtC,KAAC,eAAe,IACd,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAC,OAAO,EACf,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,EAC9B,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,GACpB,GACwB,CAC7B,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC","sourcesContent":["import { useRef, useEffect } from 'react';\nimport type { FC } from 'react';\nimport styled from 'styled-components';\n\nimport { registerIcon, defaultThemeProp } from '@pega/cosmos-react-core';\nimport type { RichTextEditorState } from '@pega/cosmos-react-rte';\nimport * as sendIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/send.icon';\nimport * as paperClipIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/paper-clip.icon';\n\nimport type { FeedReplyInputProps } from './Feed.types';\nimport FeedInputRegion from './FeedInputRegion';\n\nregisterIcon(sendIcon, paperClipIcon);\n\nexport const StyledReplyInputContainer = styled.div``;\n\nStyledReplyInputContainer.defaultProps = defaultThemeProp;\n\nconst FeedReplyInput: FC<FeedReplyInputProps> = (props: FeedReplyInputProps) => {\n const {\n defaultValue,\n id,\n banners,\n progress,\n onRewriteClick,\n attachments,\n onFilesAdded,\n onSubmit,\n onSetInputRef,\n onUnmount,\n ...restProps\n } = props;\n const rteRef = useRef<RichTextEditorState>(null);\n\n useEffect(() => {\n onSetInputRef?.({ ref: rteRef });\n }, [rteRef]);\n\n return (\n <StyledReplyInputContainer {...restProps}>\n <FeedInputRegion\n defaultValue={defaultValue}\n variant='reply'\n id={id}\n banners={banners}\n progress={progress}\n onRewriteClick={onRewriteClick}\n attachments={attachments}\n onFilesAdded={onFilesAdded}\n onSubmit={onSubmit}\n rteRef={rteRef}\n onUnmount={onUnmount}\n />\n </StyledReplyInputContainer>\n );\n};\n\nexport default FeedReplyInput;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeedRichText.d.ts","sourceRoot":"","sources":["../../../src/components/Feed/FeedRichText.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAOlE,OAAO,KAAK,EAAE,iBAAiB,EAAc,MAAM,cAAc,CAAC;AAGlE,eAAO,MAAM,cAAc,SAAS,CAAC;AAErC,QAAA,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"FeedRichText.d.ts","sourceRoot":"","sources":["../../../src/components/Feed/FeedRichText.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAOlE,OAAO,KAAK,EAAE,iBAAiB,EAAc,MAAM,cAAc,CAAC;AAGlE,eAAO,MAAM,cAAc,SAAS,CAAC;AAErC,QAAA,MAAM,YAAY,mHAqMjB,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useContext, forwardRef, useState, useRef } from 'react';
|
|
3
|
-
import { Icon, useI18n } from '@pega/cosmos-react-core';
|
|
3
|
+
import { Icon, useConsolidatedRef, useI18n } from '@pega/cosmos-react-core';
|
|
4
4
|
import { getXMLAttributes, RichTextEditor } from '@pega/cosmos-react-rte';
|
|
5
5
|
import { MentionButtonConfig } from '../MentionButton';
|
|
6
6
|
import { HashtagButtonConfig } from '../HashtagButton';
|
|
@@ -9,7 +9,8 @@ import { FeedContext } from './Feed.context';
|
|
|
9
9
|
import MarkdownSyntax from './MarkdownSyntax';
|
|
10
10
|
export const minInputHeight = '4rem';
|
|
11
11
|
const FeedRichText = forwardRef(function FeedRichText(props, ref) {
|
|
12
|
-
const
|
|
12
|
+
const editorRef = useConsolidatedRef(ref);
|
|
13
|
+
const { defaultValue, height = { min: minInputHeight }, onKeyDown, ...restProps } = props;
|
|
13
14
|
const { autopilotInfo: { id: autopilotId, label: autopilotLabel }, searchTypes = [], onSearch, searchResults = [], showSearchResults, setShowSearchResults } = useContext(FeedContext);
|
|
14
15
|
const [triggerType, setTriggerType] = useState('mention');
|
|
15
16
|
const [showMentionType, setShowMentionType] = useState(false);
|
|
@@ -107,10 +108,10 @@ const FeedRichText = forwardRef(function FeedRichText(props, ref) {
|
|
|
107
108
|
return (_jsx(RichTextEditor, { additionalInfo: {
|
|
108
109
|
heading: t('markdown_syntax'),
|
|
109
110
|
content: _jsx(MarkdownSyntax, {})
|
|
110
|
-
}, ...restProps, onKeyDown: (e) => {
|
|
111
|
+
}, ...restProps, defaultValue: defaultValue, onKeyDown: (e) => {
|
|
111
112
|
setShowSearchResults?.(true);
|
|
112
113
|
onKeyDown?.(e);
|
|
113
|
-
}, markdownOnly: true, ref:
|
|
114
|
+
}, markdownOnly: true, ref: editorRef, height: height, searchTriggers: [
|
|
114
115
|
{ trigger: '@', regex: String.raw `(?:\S+(?:[^\n\S][^@#\s]\S*)*[^\n\S]?|)` },
|
|
115
116
|
{ trigger: '#', regex: String.raw `[^\s,]*` }
|
|
116
117
|
], getSearchItemReplacement: (id) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeedRichText.js","sourceRoot":"","sources":["../../../src/components/Feed/FeedRichText.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useContext, forwardRef, useState, useRef } from 'react';\nimport type { KeyboardEvent, PropsWithoutRef } from 'react';\n\nimport { Icon, useI18n } from '@pega/cosmos-react-core';\nimport { getXMLAttributes, RichTextEditor } from '@pega/cosmos-react-rte';\nimport type { RichTextEditorState } from '@pega/cosmos-react-rte';\n\nimport { MentionButtonConfig } from '../MentionButton';\nimport { HashtagButtonConfig } from '../HashtagButton';\nimport { AutopilotConfig } from '../Autopilot';\n\nimport { FeedContext } from './Feed.context';\nimport type { FeedRichTextProps, SearchType } from './Feed.types';\nimport MarkdownSyntax from './MarkdownSyntax';\n\nexport const minInputHeight = '4rem';\n\nconst FeedRichText = forwardRef<RichTextEditorState, PropsWithoutRef<FeedRichTextProps>>(\n function FeedRichText(props, ref) {\n const { height = { min: minInputHeight }, onKeyDown, ...restProps } = props;\n const {\n autopilotInfo: { id: autopilotId, label: autopilotLabel },\n searchTypes = [],\n onSearch,\n searchResults = [],\n showSearchResults,\n setShowSearchResults\n } = useContext(FeedContext);\n const [triggerType, setTriggerType] = useState<'mention' | 'tag'>('mention');\n const [showMentionType, setShowMentionType] = useState(false);\n const searchType = useRef('');\n const t = useI18n();\n\n const onDecoSearch = (event: { search: string; trigger: string }) => {\n if (!onSearch) {\n return;\n }\n\n const trigger = event.trigger === '@' ? 'mention' : 'tag';\n setTriggerType(trigger);\n\n if (trigger === 'mention' && event.search === '') {\n setShowMentionType(true);\n } else {\n setShowMentionType(false);\n onSearch({\n type: trigger,\n search: event.search,\n mentionType: searchType.current\n });\n }\n };\n\n const typesMenu = {\n onItemActive: (id: string) => {\n searchType.current = id;\n },\n onItemClick: (id: string) => {\n searchType.current = id;\n setShowMentionType(false);\n\n if (id !== autopilotId) {\n onSearch?.({ type: 'mention', search: '', mentionType: id });\n }\n },\n items: searchTypes.map((type: SearchType) => {\n let label = type.label;\n let icon = type.icon ?? type.id;\n if (type.id === autopilotId) {\n label = autopilotLabel;\n icon = 'polaris';\n }\n return {\n id: type.id,\n primary: label,\n visual: icon ? <Icon name={icon} /> : undefined\n };\n })\n };\n\n const searchMenu =\n searchResults.length && showSearchResults\n ? {\n header: triggerType === 'mention' ? t('mention_type', [searchType.current]) : '',\n items: searchResults.map(res => {\n return { ...res, href: undefined };\n })\n }\n : undefined;\n\n const getSearchAttributes = (xmlElement: string, searchResult: string) => {\n switch (xmlElement) {\n case 'pega-mention': {\n const attributes = getXMLAttributes(searchResult);\n\n if (!attributes) return;\n return {\n markdown: searchResult,\n component: MentionButtonConfig.component,\n props: { ...attributes, tabIndex: -1 },\n text: attributes.text\n };\n }\n case 'pega-tag': {\n const attributes = getXMLAttributes(searchResult);\n\n if (!attributes) return;\n return {\n markdown: searchResult,\n component: HashtagButtonConfig.component,\n props: { ...attributes, tabIndex: -1 },\n text: attributes.tag\n };\n }\n case 'pega-autopilot': {\n const attributes = getXMLAttributes(searchResult);\n\n if (!attributes) return;\n return {\n markdown: searchResult,\n component: AutopilotConfig.component,\n props: { ...attributes, tabIndex: -1 },\n text: autopilotLabel\n };\n }\n default:\n }\n };\n\n return (\n <RichTextEditor\n additionalInfo={{\n heading: t('markdown_syntax'),\n content: <MarkdownSyntax />\n }}\n {...restProps}\n onKeyDown={(e: KeyboardEvent) => {\n setShowSearchResults?.(true);\n onKeyDown?.(e);\n }}\n markdownOnly\n ref={ref}\n height={height}\n searchTriggers={[\n { trigger: '@', regex: String.raw`(?:\\S+(?:[^\\n\\S][^@#\\s]\\S*)*[^\\n\\S]?|)` },\n { trigger: '#', regex: String.raw`[^\\s,]*` }\n ]}\n getSearchItemReplacement={(id: string) => {\n if (id === autopilotId) {\n return {\n markdown: AutopilotConfig.inject(),\n component: AutopilotConfig.component,\n props: { tabIndex: -1 },\n text: autopilotLabel\n };\n }\n\n const item = searchResults?.find(({ id: itemId }) => itemId === id);\n\n if (!item) return undefined;\n\n return {\n markdown:\n triggerType === 'mention'\n ? MentionButtonConfig.inject({\n id: item.id,\n type: searchType.current,\n text: item.primary,\n href: item.href\n })\n : HashtagButtonConfig.inject({ tag: item.id }),\n component:\n triggerType === 'mention'\n ? MentionButtonConfig.component\n : HashtagButtonConfig.component,\n props:\n triggerType === 'mention'\n ? {\n id: item.id,\n text: item.primary,\n type: searchType.current,\n tabIndex: -1\n }\n : { tag: item.primary, tabIndex: -1 },\n text: item.primary\n };\n }}\n searchRenderers={[\n {\n type: MentionButtonConfig.type,\n xmlElement: MentionButtonConfig.xmlElement,\n regexPattern: MentionButtonConfig.regexPattern,\n getSearchAttributes\n },\n {\n type: HashtagButtonConfig.type,\n xmlElement: HashtagButtonConfig.xmlElement,\n regexPattern: HashtagButtonConfig.regexPattern,\n getSearchAttributes\n },\n {\n type: AutopilotConfig.type,\n xmlElement: AutopilotConfig.xmlElement,\n regexPattern: AutopilotConfig.regexPattern,\n getSearchAttributes\n }\n ]}\n onSearch={onSearch ? onDecoSearch : undefined}\n menu={showMentionType ? typesMenu : searchMenu}\n />\n );\n }\n);\n\nexport default FeedRichText;\n"]}
|
|
1
|
+
{"version":3,"file":"FeedRichText.js","sourceRoot":"","sources":["../../../src/components/Feed/FeedRichText.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useContext, forwardRef, useState, useRef } from 'react';\nimport type { KeyboardEvent, PropsWithoutRef } from 'react';\n\nimport { Icon, useConsolidatedRef, useI18n } from '@pega/cosmos-react-core';\nimport { getXMLAttributes, RichTextEditor } from '@pega/cosmos-react-rte';\nimport type { RichTextEditorState } from '@pega/cosmos-react-rte';\n\nimport { MentionButtonConfig } from '../MentionButton';\nimport { HashtagButtonConfig } from '../HashtagButton';\nimport { AutopilotConfig } from '../Autopilot';\n\nimport { FeedContext } from './Feed.context';\nimport type { FeedRichTextProps, SearchType } from './Feed.types';\nimport MarkdownSyntax from './MarkdownSyntax';\n\nexport const minInputHeight = '4rem';\n\nconst FeedRichText = forwardRef<RichTextEditorState, PropsWithoutRef<FeedRichTextProps>>(\n function FeedRichText(props, ref) {\n const editorRef = useConsolidatedRef(ref);\n const { defaultValue, height = { min: minInputHeight }, onKeyDown, ...restProps } = props;\n const {\n autopilotInfo: { id: autopilotId, label: autopilotLabel },\n searchTypes = [],\n onSearch,\n searchResults = [],\n showSearchResults,\n setShowSearchResults\n } = useContext(FeedContext);\n const [triggerType, setTriggerType] = useState<'mention' | 'tag'>('mention');\n const [showMentionType, setShowMentionType] = useState(false);\n const searchType = useRef('');\n const t = useI18n();\n\n const onDecoSearch = (event: { search: string; trigger: string }) => {\n if (!onSearch) {\n return;\n }\n\n const trigger = event.trigger === '@' ? 'mention' : 'tag';\n setTriggerType(trigger);\n\n if (trigger === 'mention' && event.search === '') {\n setShowMentionType(true);\n } else {\n setShowMentionType(false);\n onSearch({\n type: trigger,\n search: event.search,\n mentionType: searchType.current\n });\n }\n };\n\n const typesMenu = {\n onItemActive: (id: string) => {\n searchType.current = id;\n },\n onItemClick: (id: string) => {\n searchType.current = id;\n setShowMentionType(false);\n\n if (id !== autopilotId) {\n onSearch?.({ type: 'mention', search: '', mentionType: id });\n }\n },\n items: searchTypes.map((type: SearchType) => {\n let label = type.label;\n let icon = type.icon ?? type.id;\n if (type.id === autopilotId) {\n label = autopilotLabel;\n icon = 'polaris';\n }\n return {\n id: type.id,\n primary: label,\n visual: icon ? <Icon name={icon} /> : undefined\n };\n })\n };\n\n const searchMenu =\n searchResults.length && showSearchResults\n ? {\n header: triggerType === 'mention' ? t('mention_type', [searchType.current]) : '',\n items: searchResults.map(res => {\n return { ...res, href: undefined };\n })\n }\n : undefined;\n\n const getSearchAttributes = (xmlElement: string, searchResult: string) => {\n switch (xmlElement) {\n case 'pega-mention': {\n const attributes = getXMLAttributes(searchResult);\n\n if (!attributes) return;\n return {\n markdown: searchResult,\n component: MentionButtonConfig.component,\n props: { ...attributes, tabIndex: -1 },\n text: attributes.text\n };\n }\n case 'pega-tag': {\n const attributes = getXMLAttributes(searchResult);\n\n if (!attributes) return;\n return {\n markdown: searchResult,\n component: HashtagButtonConfig.component,\n props: { ...attributes, tabIndex: -1 },\n text: attributes.tag\n };\n }\n case 'pega-autopilot': {\n const attributes = getXMLAttributes(searchResult);\n\n if (!attributes) return;\n return {\n markdown: searchResult,\n component: AutopilotConfig.component,\n props: { ...attributes, tabIndex: -1 },\n text: autopilotLabel\n };\n }\n default:\n }\n };\n\n return (\n <RichTextEditor\n additionalInfo={{\n heading: t('markdown_syntax'),\n content: <MarkdownSyntax />\n }}\n {...restProps}\n defaultValue={defaultValue}\n onKeyDown={(e: KeyboardEvent) => {\n setShowSearchResults?.(true);\n onKeyDown?.(e);\n }}\n markdownOnly\n ref={editorRef}\n height={height}\n searchTriggers={[\n { trigger: '@', regex: String.raw`(?:\\S+(?:[^\\n\\S][^@#\\s]\\S*)*[^\\n\\S]?|)` },\n { trigger: '#', regex: String.raw`[^\\s,]*` }\n ]}\n getSearchItemReplacement={(id: string) => {\n if (id === autopilotId) {\n return {\n markdown: AutopilotConfig.inject(),\n component: AutopilotConfig.component,\n props: { tabIndex: -1 },\n text: autopilotLabel\n };\n }\n\n const item = searchResults?.find(({ id: itemId }) => itemId === id);\n\n if (!item) return undefined;\n\n return {\n markdown:\n triggerType === 'mention'\n ? MentionButtonConfig.inject({\n id: item.id,\n type: searchType.current,\n text: item.primary,\n href: item.href\n })\n : HashtagButtonConfig.inject({ tag: item.id }),\n component:\n triggerType === 'mention'\n ? MentionButtonConfig.component\n : HashtagButtonConfig.component,\n props:\n triggerType === 'mention'\n ? {\n id: item.id,\n text: item.primary,\n type: searchType.current,\n tabIndex: -1\n }\n : { tag: item.primary, tabIndex: -1 },\n text: item.primary\n };\n }}\n searchRenderers={[\n {\n type: MentionButtonConfig.type,\n xmlElement: MentionButtonConfig.xmlElement,\n regexPattern: MentionButtonConfig.regexPattern,\n getSearchAttributes\n },\n {\n type: HashtagButtonConfig.type,\n xmlElement: HashtagButtonConfig.xmlElement,\n regexPattern: HashtagButtonConfig.regexPattern,\n getSearchAttributes\n },\n {\n type: AutopilotConfig.type,\n xmlElement: AutopilotConfig.xmlElement,\n regexPattern: AutopilotConfig.regexPattern,\n getSearchAttributes\n }\n ]}\n onSearch={onSearch ? onDecoSearch : undefined}\n menu={showMentionType ? typesMenu : searchMenu}\n />\n );\n }\n);\n\nexport default FeedRichText;\n"]}
|
|
@@ -2,7 +2,7 @@ import type { FunctionComponent, ReactElement } from 'react';
|
|
|
2
2
|
import type { ForwardProps } from '@pega/cosmos-react-core';
|
|
3
3
|
interface HashtagButtonProps {
|
|
4
4
|
/** Text for the button, or an object containing all necessary props. */
|
|
5
|
-
children: Record<string, string> | ReactElement;
|
|
5
|
+
children: Record<string, string | boolean> | ReactElement;
|
|
6
6
|
/** The tag value. */
|
|
7
7
|
tag?: string;
|
|
8
8
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HashtagButton.d.ts","sourceRoot":"","sources":["../../../src/components/HashtagButton/HashtagButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAmB,YAAY,EAAO,MAAM,OAAO,CAAC;AAInF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAK5D,UAAU,kBAAkB;IAC1B,wEAAwE;IACxE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"HashtagButton.d.ts","sourceRoot":"","sources":["../../../src/components/HashtagButton/HashtagButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAmB,YAAY,EAAO,MAAM,OAAO,CAAC;AAInF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAK5D,UAAU,kBAAkB;IAC1B,wEAAwE;IACxE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,YAAY,CAAC;IAC1D,qBAAqB;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAQD,QAAA,MAAM,aAAa,EAAE,iBAAiB,CAAC,kBAAkB,GAAG,YAAY,CAoCvE,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;sBAKZ;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE;uBAQd,MAAM;;;CAM1B,CAAC;AAEF,eAAe,aAAa,CAAC"}
|