@bikdotai/bik-component-library 0.0.805-beta.32 → 0.0.805-beta.34
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/dist/cjs/components/BikGiftedChat/Bubble/Bubble.js +1 -1
- package/dist/cjs/components/BikGiftedChat/Bubble/Bubble.js.map +1 -1
- package/dist/cjs/components/BikGiftedChat/GiftedChat/GiftedChat.js +1 -1
- package/dist/cjs/components/BikGiftedChat/GiftedChat/GiftedChat.js.map +1 -1
- package/dist/cjs/src/components/bik-layout/MockMenus.d.ts +1 -0
- package/dist/esm/components/BikGiftedChat/Bubble/Bubble.js +1 -1
- package/dist/esm/components/BikGiftedChat/Bubble/Bubble.js.map +1 -1
- package/dist/esm/components/BikGiftedChat/GiftedChat/GiftedChat.js +1 -1
- package/dist/esm/components/BikGiftedChat/GiftedChat/GiftedChat.js.map +1 -1
- package/dist/esm/src/components/bik-layout/MockMenus.d.ts +1 -0
- package/package.json +3 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),i=require("react"),t=require("../../../constants/Theme.js"),n=require("../../../hooks/useWindowSize.js"),s=require("../GiftedChat/types.js"),l=require("../GiftedChat/utils.js"),r=require("./types.js");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}const a=o=>{var a,d,c,u,g,v;const{currentMessage:f,position:b,renderMessageText:h,renderTicks:y,renderTime:j,renderCustomView:p,isCustomViewBottom:m,isUnsatisfactoryMessageFn:O,messagesGroupedByAiTraceId:C,onPress:S,containerStyle:A,bubbleStyles:T,appType:x=r.GiftedChatAppType.Bik}=o,M=n.useWindowSize(),I=f,k=x===r.GiftedChatAppType.Manifest,E=i.useMemo((()=>I.category===l.Constants.ChatActivity.Category.ACTIVITY&&I.activityType===l.Constants.ChatActivity.Type.PRIVATE_NOTE),[I.category,I.activityType]),G=i.useMemo((()=>{const[e,i]=l.isStringifiedArray(null==I?void 0:I.message);return e&&i&&Array.isArray(i)}),[null==I?void 0:I.message]),L=(null==I?void 0:I.channelId)===s.MESSAGE_CHANNELS.SMTP||(null==I?void 0:I.channelName)===s.MESSAGE_CHANNELS.SMTP,N=i.useMemo((()=>{var e,i,n;const l={borderRadius:8,minHeight:20,margin:0,flexGrow:M?1:0},r=(null==I?void 0:I.channelId)===s.MESSAGE_CHANNELS.GMAIL||(null==I?void 0:I.channelName)===s.MESSAGE_CHANNELS.GMAIL;let o={};if(k)return o="left"===b?T&&"object"==typeof T.left?T.left:{}:T&&"object"==typeof T.right?T.right:{},Object.assign({},o);if("left"===b)o=Object.assign(Object.assign({},M||r||L?{maxWidth:"100%"}:{}),E?{background:t.COLORS.background.warning.light}:{backgroundColor:(null==I?void 0:I.isPrivateMail)?t.COLORS.background.blue.light:t.COLORS.surface.standard});else{const i=O&&O({aiTraceId:null===(e=I.eventProperties)||void 0===e?void 0:e.aiTraceId,messagesGroupedByAiTraceId:C});o=Object.assign(Object.assign({backgroundColor:"failed"===I.status||i?t.COLORS.background.negative.light:t.COLORS.background.brandUltraLight},E?{background:t.COLORS.background.warning.light}:{}),!M&&G?{maxWidth:500}:{})}const a=T&&"object"==typeof T?"left"in T||"right"in T?"left"===b?null!==(i=T.left)&&void 0!==i?i:{}:null!==(n=T.right)&&void 0!==n?n:{}:T:{};return Object.assign(Object.assign(Object.assign({},l),o),a)}),[null==I?void 0:I.channelId,null==I?void 0:I.channelName,null===(a=null==I?void 0:I.meta)||void 0===a?void 0:a.aiUsed,null==I?void 0:I.status,null===(d=null==I?void 0:I.eventProperties)||void 0===d?void 0:d.aiTraceId,b,M,E,G,O,C,null==I?void 0:I.isPrivateMail,T,k]),w=i.useCallback((()=>e.jsxs("div",{children:[!m&&(null==p?void 0:p(o)),null==h?void 0:h(o),m&&(null==p?void 0:p(o))]})),[m,p,h,o]),P=i.useMemo((()=>k&&"object"==typeof A?"left"===b&&"left"in A&&A.left&&"object"==typeof A.left?A.left:"right"===b&&"right"in A&&A.right&&"object"==typeof A.right?A.right:{}:{}),[k,A,b]),q=!k&&A&&"object"==typeof A?"left"in A||"right"in A?"left"===b?null!==(c=A.left)&&void 0!==c?c:{}:null!==(u=A.right)&&void 0!==u?u:{}:A:{};return e.jsx("div",Object.assign({style:Object.assign(Object.assign(Object.assign({display:"flex",marginTop:k?0:6,marginBottom:k?0:(null===(v=null===(g=null==f?void 0:f.messageInformation)||void 0===g?void 0:g.reactions)||void 0===v?void 0:v.length)>0?24:6,flexGrow:M?1:0},k
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),i=require("react"),t=require("../../../constants/Theme.js"),n=require("../../../hooks/useWindowSize.js"),s=require("../GiftedChat/types.js"),l=require("../GiftedChat/utils.js"),r=require("./types.js");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}const a=o=>{var a,d,c,u,g,v;const{currentMessage:f,position:b,renderMessageText:h,renderTicks:y,renderTime:j,renderCustomView:p,isCustomViewBottom:m,isUnsatisfactoryMessageFn:O,messagesGroupedByAiTraceId:C,onPress:S,containerStyle:A,bubbleStyles:T,appType:x=r.GiftedChatAppType.Bik}=o,M=n.useWindowSize(),I=f,k=x===r.GiftedChatAppType.Manifest,E=i.useMemo((()=>I.category===l.Constants.ChatActivity.Category.ACTIVITY&&I.activityType===l.Constants.ChatActivity.Type.PRIVATE_NOTE),[I.category,I.activityType]),G=i.useMemo((()=>{const[e,i]=l.isStringifiedArray(null==I?void 0:I.message);return e&&i&&Array.isArray(i)}),[null==I?void 0:I.message]),L=(null==I?void 0:I.channelId)===s.MESSAGE_CHANNELS.SMTP||(null==I?void 0:I.channelName)===s.MESSAGE_CHANNELS.SMTP,N=i.useMemo((()=>{var e,i,n;const l={borderRadius:8,minHeight:20,margin:0,flexGrow:M?1:0,width:"100%"},r=(null==I?void 0:I.channelId)===s.MESSAGE_CHANNELS.GMAIL||(null==I?void 0:I.channelName)===s.MESSAGE_CHANNELS.GMAIL;let o={};if(k)return o="left"===b?T&&"object"==typeof T.left?T.left:{}:T&&"object"==typeof T.right?T.right:{},Object.assign({},o);if("left"===b)o=Object.assign(Object.assign({},M||r||L?{maxWidth:"100%"}:{}),E?{background:t.COLORS.background.warning.light}:{backgroundColor:(null==I?void 0:I.isPrivateMail)?t.COLORS.background.blue.light:t.COLORS.surface.standard});else{const i=O&&O({aiTraceId:null===(e=I.eventProperties)||void 0===e?void 0:e.aiTraceId,messagesGroupedByAiTraceId:C});o=Object.assign(Object.assign({backgroundColor:"failed"===I.status||i?t.COLORS.background.negative.light:t.COLORS.background.brandUltraLight},E?{background:t.COLORS.background.warning.light}:{}),!M&&G?{maxWidth:500}:{})}const a=T&&"object"==typeof T?"left"in T||"right"in T?"left"===b?null!==(i=T.left)&&void 0!==i?i:{}:null!==(n=T.right)&&void 0!==n?n:{}:T:{};return Object.assign(Object.assign(Object.assign({},l),o),a)}),[null==I?void 0:I.channelId,null==I?void 0:I.channelName,null===(a=null==I?void 0:I.meta)||void 0===a?void 0:a.aiUsed,null==I?void 0:I.status,null===(d=null==I?void 0:I.eventProperties)||void 0===d?void 0:d.aiTraceId,b,M,E,G,O,C,null==I?void 0:I.isPrivateMail,T,k]),w=i.useCallback((()=>e.jsxs("div",{children:[!m&&(null==p?void 0:p(o)),null==h?void 0:h(o),m&&(null==p?void 0:p(o))]})),[m,p,h,o]),P=i.useMemo((()=>k&&"object"==typeof A?"left"===b&&"left"in A&&A.left&&"object"==typeof A.left?A.left:"right"===b&&"right"in A&&A.right&&"object"==typeof A.right?A.right:{}:{}),[k,A,b]),q=!k&&A&&"object"==typeof A?"left"in A||"right"in A?"left"===b?null!==(c=A.left)&&void 0!==c?c:{}:null!==(u=A.right)&&void 0!==u?u:{}:A:{};return e.jsx("div",Object.assign({style:Object.assign(Object.assign(Object.assign({display:"flex",marginTop:k?0:6,marginBottom:k?0:(null===(v=null===(g=null==f?void 0:f.messageInformation)||void 0===g?void 0:g.reactions)||void 0===v?void 0:v.length)>0?24:6,flexGrow:M?1:0},k?Object.assign({alignItems:"flex-end"},"right"===b?{cursor:"pointer"}:{}):{}),P),q)},k?{onClick:S}:{},{children:e.jsx("div",Object.assign({style:N},{children:e.jsxs("div",{children:[e.jsx("div",Object.assign({id:f.chatActivityId||`message-${f.psqlId}`},{children:w()})),e.jsxs("div",Object.assign({style:{display:"flex",flexDirection:"row",justifyContent:"flex-end"}},{children:[null==j?void 0:j(o),null==y?void 0:y(f)]}))]})}))}))},d=o(i).default.memo(a);exports.Bubble=d,exports.default=d;
|
|
2
2
|
//# sourceMappingURL=Bubble.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Bubble.js","sources":["../../../../../src/components/BikGiftedChat/Bubble/Bubble.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react';\nimport { COLORS } from '../../../constants/Theme';\nimport { useWindowSize } from '../../../hooks/useWindowSize';\nimport { MESSAGE_CHANNELS } from '../GiftedChat/types';\nimport { Constants, isStringifiedArray } from '../GiftedChat/utils';\nimport { IMessage } from '../types';\nimport { BubbleProps, GiftedChatAppType } from './types';\n\nconst BubbleComponent = <TMessage extends IMessage = IMessage>(\n\tprops: BubbleProps<TMessage>,\n): React.ReactElement => {\n\tconst {\n\t\tcurrentMessage,\n\t\tposition,\n\t\trenderMessageText,\n\t\trenderTicks,\n\t\trenderTime,\n\t\trenderCustomView,\n\t\tisCustomViewBottom,\n\t\tisUnsatisfactoryMessageFn,\n\t\tmessagesGroupedByAiTraceId,\n\t\tonPress,\n\t\tcontainerStyle,\n\t\tbubbleStyles,\n\t\tappType = GiftedChatAppType.Bik,\n\t} = props;\n\n\tconst isMobile = useWindowSize();\n\tconst message = currentMessage as any;\n\tconst isManifestApp = appType === GiftedChatAppType.Manifest;\n\n\t// Check if message is a private note\n\tconst isPrivateNote = useMemo(\n\t\t() =>\n\t\t\tmessage.category === Constants.ChatActivity.Category.ACTIVITY &&\n\t\t\tmessage.activityType === Constants.ChatActivity.Type.PRIVATE_NOTE,\n\t\t[message.category, message.activityType],\n\t);\n\n\t// Check if message is a carousel (array of items)\n\tconst isCarouselMessage = useMemo(() => {\n\t\tconst [parsedSuccessfully, parsedMessage] = isStringifiedArray(\n\t\t\tmessage?.message,\n\t\t);\n\t\treturn parsedSuccessfully && parsedMessage && Array.isArray(parsedMessage);\n\t}, [message?.message]);\n\tconst isSmtp =\n\t\tmessage?.channelId === MESSAGE_CHANNELS.SMTP ||\n\t\tmessage?.channelName === MESSAGE_CHANNELS.SMTP;\n\n\t// Generates wrapper styles for the message bubble\n\t// Handles position-based styling, channel-specific layouts, and message states\n\tconst wrapperStyles = useMemo((): React.CSSProperties => {\n\t\tconst baseStyles: React.CSSProperties = {\n\t\t\tborderRadius: 8,\n\t\t\tminHeight: 20,\n\t\t\tmargin: 0,\n\t\t\tflexGrow: isMobile ? 1 : 0,\n\t\t};\n\n\t\t// Check if message is from email channels\n\t\tconst isGmail =\n\t\t\tmessage?.channelId === MESSAGE_CHANNELS.GMAIL ||\n\t\t\tmessage?.channelName === MESSAGE_CHANNELS.GMAIL;\n\n\t\tlet dynamicStyles: React.CSSProperties = {};\n\n\t\tif (isManifestApp) {\n\t\t\tif (position === 'left') {\n\t\t\t\tdynamicStyles =\n\t\t\t\t\tbubbleStyles && typeof bubbleStyles.left === 'object'\n\t\t\t\t\t\t? bubbleStyles.left\n\t\t\t\t\t\t: {};\n\t\t\t} else {\n\t\t\t\tdynamicStyles =\n\t\t\t\t\tbubbleStyles && typeof bubbleStyles.right === 'object'\n\t\t\t\t\t\t? bubbleStyles.right\n\t\t\t\t\t\t: {};\n\t\t\t}\n\t\t\treturn { ...dynamicStyles };\n\t\t} else {\n\t\t\tif (position === 'left') {\n\t\t\t\tdynamicStyles = {\n\t\t\t\t\t...(isMobile || isGmail || isSmtp ? { maxWidth: '100%' } : {}),\n\t\t\t\t\t...(isPrivateNote\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tbackground: COLORS.background.warning.light,\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\tbackgroundColor: message?.isPrivateMail\n\t\t\t\t\t\t\t\t\t? COLORS.background.blue.light\n\t\t\t\t\t\t\t\t\t: COLORS.surface.standard,\n\t\t\t\t\t\t }),\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tconst isUnsatisfactory =\n\t\t\t\t\tisUnsatisfactoryMessageFn &&\n\t\t\t\t\tisUnsatisfactoryMessageFn({\n\t\t\t\t\t\taiTraceId: message.eventProperties?.aiTraceId,\n\t\t\t\t\t\tmessagesGroupedByAiTraceId,\n\t\t\t\t\t});\n\n\t\t\t\tdynamicStyles = {\n\t\t\t\t\tbackgroundColor:\n\t\t\t\t\t\tmessage.status === 'failed' || isUnsatisfactory\n\t\t\t\t\t\t\t? COLORS.background.negative.light\n\t\t\t\t\t\t\t: COLORS.background.brandUltraLight,\n\t\t\t\t\t...(isPrivateNote\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tbackground: COLORS.background.warning.light,\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: {}),\n\t\t\t\t\t...(!isMobile && isCarouselMessage ? { maxWidth: 500 } : {}),\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\tconst extraBubbleStyles: React.CSSProperties =\n\t\t\tbubbleStyles && typeof bubbleStyles === 'object'\n\t\t\t\t? 'left' in bubbleStyles || 'right' in bubbleStyles\n\t\t\t\t\t? position === 'left'\n\t\t\t\t\t\t? (bubbleStyles as { left?: React.CSSProperties }).left ?? {}\n\t\t\t\t\t\t: (bubbleStyles as { right?: React.CSSProperties }).right ?? {}\n\t\t\t\t\t: (bubbleStyles as React.CSSProperties)\n\t\t\t\t: {};\n\n\t\treturn { ...baseStyles, ...dynamicStyles, ...extraBubbleStyles };\n\t}, [\n\t\tmessage?.channelId,\n\t\tmessage?.channelName,\n\t\tmessage?.meta?.aiUsed,\n\t\tmessage?.status,\n\t\tmessage?.eventProperties?.aiTraceId,\n\t\tposition,\n\t\tisMobile,\n\t\tisPrivateNote,\n\t\tisCarouselMessage,\n\t\tisUnsatisfactoryMessageFn,\n\t\tmessagesGroupedByAiTraceId,\n\t\tmessage?.isPrivateMail,\n\t\tbubbleStyles,\n\t\tisManifestApp,\n\t]);\n\n\t// Renders the content of the message bubble\n\t// Handles custom views and message text in the correct order\n\tconst renderContent = useCallback(() => {\n\t\treturn (\n\t\t\t<div>\n\t\t\t\t{!isCustomViewBottom && renderCustomView?.(props)}\n\n\t\t\t\t{renderMessageText?.(props)}\n\n\t\t\t\t{isCustomViewBottom && renderCustomView?.(props)}\n\t\t\t</div>\n\t\t);\n\t}, [isCustomViewBottom, renderCustomView, renderMessageText, props]);\n\n\tconst manifestContainerStyle = useMemo(() => {\n\t\tif (!isManifestApp || typeof containerStyle !== 'object') return {};\n\t\tif (\n\t\t\tposition === 'left' &&\n\t\t\t'left' in containerStyle &&\n\t\t\tcontainerStyle.left &&\n\t\t\ttypeof containerStyle.left === 'object'\n\t\t) {\n\t\t\treturn containerStyle.left;\n\t\t}\n\t\tif (\n\t\t\tposition === 'right' &&\n\t\t\t'right' in containerStyle &&\n\t\t\tcontainerStyle.right &&\n\t\t\ttypeof containerStyle.right === 'object'\n\t\t) {\n\t\t\treturn containerStyle.right;\n\t\t}\n\t\treturn {};\n\t}, [isManifestApp, containerStyle, position]);\n\n\tconst extraContainerStyle: React.CSSProperties =\n\t\t!isManifestApp && containerStyle && typeof containerStyle === 'object'\n\t\t\t? 'left' in containerStyle || 'right' in containerStyle\n\t\t\t\t? position === 'left'\n\t\t\t\t\t? (containerStyle as { left?: React.CSSProperties }).left ?? {}\n\t\t\t\t\t: (containerStyle as { right?: React.CSSProperties }).right ?? {}\n\t\t\t\t: (containerStyle as React.CSSProperties)\n\t\t\t: {};\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tdisplay: 'flex',\n\t\t\t\tmarginTop: isManifestApp ? 0 : 6,\n\t\t\t\tmarginBottom: isManifestApp\n\t\t\t\t\t? 0\n\t\t\t\t\t: currentMessage?.['messageInformation']?.reactions?.length > 0\n\t\t\t\t\t? 24\n\t\t\t\t\t: 6,\n\t\t\t\tflexGrow: isMobile ? 1 : 0,\n\t\t\t\t...(isManifestApp && !isSmtp\n\t\t\t\t\t? {\n\t\t\t\t\t\t\talignItems: 'flex-end',\n\t\t\t\t\t\t\t...(position === 'right' ? { cursor: 'pointer' } : {}),\n\t\t\t\t\t }\n\t\t\t\t\t: {}),\n\t\t\t\t...manifestContainerStyle,\n\t\t\t\t...extraContainerStyle,\n\t\t\t}}\n\t\t\t{...(isManifestApp ? { onClick: onPress } : {})}\n\t\t>\n\t\t\t<div style={wrapperStyles}>\n\t\t\t\t<div>\n\t\t\t\t\t{/* Message content */}\n\t\t\t\t\t<div\n\t\t\t\t\t\tid={\n\t\t\t\t\t\t\tcurrentMessage['chatActivityId'] ||\n\t\t\t\t\t\t\t`message-${currentMessage['psqlId']}`\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{renderContent()}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{/* Message metadata (time and status) */}\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\tflexDirection: 'row',\n\t\t\t\t\t\t\tjustifyContent: 'flex-end',\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{renderTime?.(props)}\n\t\t\t\t\t\t{renderTicks?.(currentMessage)}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\n// Export memoized version for performance\nexport const Bubble = React.memo(BubbleComponent) as typeof BubbleComponent;\n\nexport default Bubble;\n"],"names":["BubbleComponent","props","currentMessage","position","renderMessageText","renderTicks","renderTime","renderCustomView","isCustomViewBottom","isUnsatisfactoryMessageFn","messagesGroupedByAiTraceId","onPress","containerStyle","bubbleStyles","appType","GiftedChatAppType","Bik","isMobile","useWindowSize","message","isManifestApp","Manifest","isPrivateNote","useMemo","category","Constants","ChatActivity","Category","ACTIVITY","activityType","Type","PRIVATE_NOTE","isCarouselMessage","parsedSuccessfully","parsedMessage","isStringifiedArray","Array","isArray","isSmtp","channelId","MESSAGE_CHANNELS","SMTP","channelName","wrapperStyles","baseStyles","borderRadius","minHeight","margin","flexGrow","isGmail","GMAIL","dynamicStyles","left","right","Object","assign","maxWidth","background","COLORS","warning","light","backgroundColor","isPrivateMail","blue","surface","standard","isUnsatisfactory","aiTraceId","_a","eventProperties","status","negative","brandUltraLight","extraBubbleStyles","_b","_c","meta","aiUsed","renderContent","useCallback","_jsxs","children","manifestContainerStyle","extraContainerStyle","_d","_jsx","style","display","marginTop","marginBottom","_f","_e","reactions","length","alignItems","cursor","onClick","jsx","jsxs","id","flexDirection","justifyContent","Bubble","React","memo"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Bubble.js","sources":["../../../../../src/components/BikGiftedChat/Bubble/Bubble.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react';\nimport { COLORS } from '../../../constants/Theme';\nimport { useWindowSize } from '../../../hooks/useWindowSize';\nimport { MESSAGE_CHANNELS } from '../GiftedChat/types';\nimport { Constants, isStringifiedArray } from '../GiftedChat/utils';\nimport { IMessage } from '../types';\nimport { BubbleProps, GiftedChatAppType } from './types';\n\nconst BubbleComponent = <TMessage extends IMessage = IMessage>(\n\tprops: BubbleProps<TMessage>,\n): React.ReactElement => {\n\tconst {\n\t\tcurrentMessage,\n\t\tposition,\n\t\trenderMessageText,\n\t\trenderTicks,\n\t\trenderTime,\n\t\trenderCustomView,\n\t\tisCustomViewBottom,\n\t\tisUnsatisfactoryMessageFn,\n\t\tmessagesGroupedByAiTraceId,\n\t\tonPress,\n\t\tcontainerStyle,\n\t\tbubbleStyles,\n\t\tappType = GiftedChatAppType.Bik,\n\t} = props;\n\n\tconst isMobile = useWindowSize();\n\tconst message = currentMessage as any;\n\tconst isManifestApp = appType === GiftedChatAppType.Manifest;\n\n\t// Check if message is a private note\n\tconst isPrivateNote = useMemo(\n\t\t() =>\n\t\t\tmessage.category === Constants.ChatActivity.Category.ACTIVITY &&\n\t\t\tmessage.activityType === Constants.ChatActivity.Type.PRIVATE_NOTE,\n\t\t[message.category, message.activityType],\n\t);\n\n\t// Check if message is a carousel (array of items)\n\tconst isCarouselMessage = useMemo(() => {\n\t\tconst [parsedSuccessfully, parsedMessage] = isStringifiedArray(\n\t\t\tmessage?.message,\n\t\t);\n\t\treturn parsedSuccessfully && parsedMessage && Array.isArray(parsedMessage);\n\t}, [message?.message]);\n\tconst isSmtp =\n\t\tmessage?.channelId === MESSAGE_CHANNELS.SMTP ||\n\t\tmessage?.channelName === MESSAGE_CHANNELS.SMTP;\n\n\t// Generates wrapper styles for the message bubble\n\t// Handles position-based styling, channel-specific layouts, and message states\n\tconst wrapperStyles = useMemo((): React.CSSProperties => {\n\t\tconst baseStyles: React.CSSProperties = {\n\t\t\tborderRadius: 8,\n\t\t\tminHeight: 20,\n\t\t\tmargin: 0,\n\t\t\tflexGrow: isMobile ? 1 : 0,\n\t\t\twidth: '100%',\n\t\t};\n\n\t\t// Check if message is from email channels\n\t\tconst isGmail =\n\t\t\tmessage?.channelId === MESSAGE_CHANNELS.GMAIL ||\n\t\t\tmessage?.channelName === MESSAGE_CHANNELS.GMAIL;\n\n\t\tlet dynamicStyles: React.CSSProperties = {};\n\n\t\tif (isManifestApp) {\n\t\t\tif (position === 'left') {\n\t\t\t\tdynamicStyles =\n\t\t\t\t\tbubbleStyles && typeof bubbleStyles.left === 'object'\n\t\t\t\t\t\t? bubbleStyles.left\n\t\t\t\t\t\t: {};\n\t\t\t} else {\n\t\t\t\tdynamicStyles =\n\t\t\t\t\tbubbleStyles && typeof bubbleStyles.right === 'object'\n\t\t\t\t\t\t? bubbleStyles.right\n\t\t\t\t\t\t: {};\n\t\t\t}\n\t\t\treturn { ...dynamicStyles };\n\t\t} else {\n\t\t\tif (position === 'left') {\n\t\t\t\tdynamicStyles = {\n\t\t\t\t\t...(isMobile || isGmail || isSmtp ? { maxWidth: '100%' } : {}),\n\t\t\t\t\t...(isPrivateNote\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tbackground: COLORS.background.warning.light,\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\tbackgroundColor: message?.isPrivateMail\n\t\t\t\t\t\t\t\t\t? COLORS.background.blue.light\n\t\t\t\t\t\t\t\t\t: COLORS.surface.standard,\n\t\t\t\t\t\t }),\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tconst isUnsatisfactory =\n\t\t\t\t\tisUnsatisfactoryMessageFn &&\n\t\t\t\t\tisUnsatisfactoryMessageFn({\n\t\t\t\t\t\taiTraceId: message.eventProperties?.aiTraceId,\n\t\t\t\t\t\tmessagesGroupedByAiTraceId,\n\t\t\t\t\t});\n\n\t\t\t\tdynamicStyles = {\n\t\t\t\t\tbackgroundColor:\n\t\t\t\t\t\tmessage.status === 'failed' || isUnsatisfactory\n\t\t\t\t\t\t\t? COLORS.background.negative.light\n\t\t\t\t\t\t\t: COLORS.background.brandUltraLight,\n\t\t\t\t\t...(isPrivateNote\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tbackground: COLORS.background.warning.light,\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: {}),\n\t\t\t\t\t...(!isMobile && isCarouselMessage ? { maxWidth: 500 } : {}),\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\tconst extraBubbleStyles: React.CSSProperties =\n\t\t\tbubbleStyles && typeof bubbleStyles === 'object'\n\t\t\t\t? 'left' in bubbleStyles || 'right' in bubbleStyles\n\t\t\t\t\t? position === 'left'\n\t\t\t\t\t\t? (bubbleStyles as { left?: React.CSSProperties }).left ?? {}\n\t\t\t\t\t\t: (bubbleStyles as { right?: React.CSSProperties }).right ?? {}\n\t\t\t\t\t: (bubbleStyles as React.CSSProperties)\n\t\t\t\t: {};\n\n\t\treturn { ...baseStyles, ...dynamicStyles, ...extraBubbleStyles };\n\t}, [\n\t\tmessage?.channelId,\n\t\tmessage?.channelName,\n\t\tmessage?.meta?.aiUsed,\n\t\tmessage?.status,\n\t\tmessage?.eventProperties?.aiTraceId,\n\t\tposition,\n\t\tisMobile,\n\t\tisPrivateNote,\n\t\tisCarouselMessage,\n\t\tisUnsatisfactoryMessageFn,\n\t\tmessagesGroupedByAiTraceId,\n\t\tmessage?.isPrivateMail,\n\t\tbubbleStyles,\n\t\tisManifestApp,\n\t]);\n\n\t// Renders the content of the message bubble\n\t// Handles custom views and message text in the correct order\n\tconst renderContent = useCallback(() => {\n\t\treturn (\n\t\t\t<div>\n\t\t\t\t{!isCustomViewBottom && renderCustomView?.(props)}\n\n\t\t\t\t{renderMessageText?.(props)}\n\n\t\t\t\t{isCustomViewBottom && renderCustomView?.(props)}\n\t\t\t</div>\n\t\t);\n\t}, [isCustomViewBottom, renderCustomView, renderMessageText, props]);\n\n\tconst manifestContainerStyle = useMemo(() => {\n\t\tif (!isManifestApp || typeof containerStyle !== 'object') return {};\n\t\tif (\n\t\t\tposition === 'left' &&\n\t\t\t'left' in containerStyle &&\n\t\t\tcontainerStyle.left &&\n\t\t\ttypeof containerStyle.left === 'object'\n\t\t) {\n\t\t\treturn containerStyle.left;\n\t\t}\n\t\tif (\n\t\t\tposition === 'right' &&\n\t\t\t'right' in containerStyle &&\n\t\t\tcontainerStyle.right &&\n\t\t\ttypeof containerStyle.right === 'object'\n\t\t) {\n\t\t\treturn containerStyle.right;\n\t\t}\n\t\treturn {};\n\t}, [isManifestApp, containerStyle, position]);\n\n\tconst extraContainerStyle: React.CSSProperties =\n\t\t!isManifestApp && containerStyle && typeof containerStyle === 'object'\n\t\t\t? 'left' in containerStyle || 'right' in containerStyle\n\t\t\t\t? position === 'left'\n\t\t\t\t\t? (containerStyle as { left?: React.CSSProperties }).left ?? {}\n\t\t\t\t\t: (containerStyle as { right?: React.CSSProperties }).right ?? {}\n\t\t\t\t: (containerStyle as React.CSSProperties)\n\t\t\t: {};\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tdisplay: 'flex',\n\t\t\t\tmarginTop: isManifestApp ? 0 : 6,\n\t\t\t\tmarginBottom: isManifestApp\n\t\t\t\t\t? 0\n\t\t\t\t\t: currentMessage?.['messageInformation']?.reactions?.length > 0\n\t\t\t\t\t? 24\n\t\t\t\t\t: 6,\n\t\t\t\tflexGrow: isMobile ? 1 : 0,\n\t\t\t\t...(isManifestApp\n\t\t\t\t\t? {\n\t\t\t\t\t\t\talignItems: 'flex-end',\n\t\t\t\t\t\t\t...(position === 'right' ? { cursor: 'pointer' } : {}),\n\t\t\t\t\t }\n\t\t\t\t\t: {}),\n\t\t\t\t...manifestContainerStyle,\n\t\t\t\t...extraContainerStyle,\n\t\t\t}}\n\t\t\t{...(isManifestApp ? { onClick: onPress } : {})}\n\t\t>\n\t\t\t<div style={wrapperStyles}>\n\t\t\t\t<div>\n\t\t\t\t\t{/* Message content */}\n\t\t\t\t\t<div\n\t\t\t\t\t\tid={\n\t\t\t\t\t\t\tcurrentMessage['chatActivityId'] ||\n\t\t\t\t\t\t\t`message-${currentMessage['psqlId']}`\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{renderContent()}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{/* Message metadata (time and status) */}\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\tflexDirection: 'row',\n\t\t\t\t\t\t\tjustifyContent: 'flex-end',\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{renderTime?.(props)}\n\t\t\t\t\t\t{renderTicks?.(currentMessage)}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\n// Export memoized version for performance\nexport const Bubble = React.memo(BubbleComponent) as typeof BubbleComponent;\n\nexport default Bubble;\n"],"names":["BubbleComponent","props","currentMessage","position","renderMessageText","renderTicks","renderTime","renderCustomView","isCustomViewBottom","isUnsatisfactoryMessageFn","messagesGroupedByAiTraceId","onPress","containerStyle","bubbleStyles","appType","GiftedChatAppType","Bik","isMobile","useWindowSize","message","isManifestApp","Manifest","isPrivateNote","useMemo","category","Constants","ChatActivity","Category","ACTIVITY","activityType","Type","PRIVATE_NOTE","isCarouselMessage","parsedSuccessfully","parsedMessage","isStringifiedArray","Array","isArray","isSmtp","channelId","MESSAGE_CHANNELS","SMTP","channelName","wrapperStyles","baseStyles","borderRadius","minHeight","margin","flexGrow","width","isGmail","GMAIL","dynamicStyles","left","right","Object","assign","maxWidth","background","COLORS","warning","light","backgroundColor","isPrivateMail","blue","surface","standard","isUnsatisfactory","aiTraceId","_a","eventProperties","status","negative","brandUltraLight","extraBubbleStyles","_b","_c","meta","aiUsed","renderContent","useCallback","_jsxs","children","manifestContainerStyle","extraContainerStyle","_d","_jsx","style","display","marginTop","marginBottom","_f","_e","reactions","length","alignItems","cursor","onClick","jsx","jsxs","id","flexDirection","justifyContent","Bubble","React","memo"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../_virtual/_tslib.js"),t=require("react/jsx-runtime"),s=require("react"),r=require("../../../constants/Theme.js"),i=require("../../../hooks/useWindowSize.js"),n=require("../../button/Button.js"),l=require("../../TypographyStyle.js"),a=require("../Bubble/types.js"),o=require("./Day.js"),d=require("./messageHelpers.js"),u=require("./scrollHooks.js"),g=require("./types.js"),c=require("./utils.js");function h(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var p=h(s);const v=e=>{let{text:r,isExpanded:i,onToggle:a}=e;const o=s.useRef(null),[d,u]=s.useState(!1);return s.useEffect((()=>{const e=o.current;if(e){e.style.maxHeight="none";const t=e.scrollHeight>204;e.style.maxHeight=i?"none":"204px",u(t)}}),[r,i]),t.jsxs(t.Fragment,{children:[t.jsx("div",Object.assign({ref:o,style:{maxHeight:i?"none":204,overflow:"hidden"}},{children:t.jsx(l.BodySecondary,{children:r})})),d&&t.jsx(n.Button,{buttonType:"text",size:"xs",buttonText:i?"Show less":"Read more",onClick:a})]})},f=(n,l)=>{var h;const f=n||{},{messages:x=[],user:y,renderBubble:b,renderAvatar:j,renderDay:m,renderLoading:T,renderChatEmpty:O,listViewProps:S={},renderAvatarOnTop:A=!1,showUserAvatar:C=!1,showAvatarForEveryMessage:M=!1,inverted:w=!1,messageIdGenerator:R,topThreshold:_=c.TOP_THRESHOLD,appType:E=a.GiftedChatAppType.Bik,maxHeight:L,isActivityMessage:k}=f,H=e.__rest(f,["messages","user","renderBubble","renderAvatar","renderDay","renderLoading","renderChatEmpty","listViewProps","renderAvatarOnTop","showUserAvatar","showAvatarForEveryMessage","inverted","messageIdGenerator","topThreshold","appType","maxHeight","isActivityMessage"]),B=i.useWindowSize(),q=s.useRef(null),G=c.normalizeRef(S.ref||l,q),I=s.useRef({isInitialMount:!0,isUserScrolling:!1,isLoadingOldMessages:!1,isAtBottom:!0,hasTriggeredEndReached:!1,lastMessagesLength:null!==(h=null==x?void 0:x.length)&&void 0!==h?h:0,previousScrollHeight:0,previousScrollTop:0,scrollTimeout:null}),[P,D]=s.useState(new Set),F=s.useMemo((()=>x&&0!==x.length?[...x].reverse():[]),[x]),N=u.useScrollToBottom(G,I);s.useImperativeHandle(l,(()=>G.current)),u.useInitialMountScroll(G,I,F.length,N),u.useScrollCleanup(I),u.useRestoreScrollPosition(G,I,F.length),u.useAutoScrollOnNewMessages(G,I,x.length,N),u.useResizeObserverForFirstMessage(null==x?void 0:x[0],I,N,R);const z=u.useScrollHandler(I,S.onEndReached,S.onScroll,_),W=s.useCallback((e=>{var t;return Boolean(e&&y&&(null===(t=e.user)||void 0===t?void 0:t._id)===y._id)}),[y]),$=s.useCallback(((e,t)=>!!C&&(!!M||(!t||!!k&&k(e)||!!k&&k(t)||t.user._id!==e.user._id))),[C,M,k]),U=s.useCallback(((e,s,i)=>{var n,l,o,d,u;const g=W(e)?"right":"left",c=(null===(n=null==s?void 0:s.user)||void 0===n?void 0:n._id)!==(null===(l=null==e?void 0:e.user)||void 0===l?void 0:l._id),h=(null===(o=null==i?void 0:i.user)||void 0===o?void 0:o._id)!==(null===(d=null==e?void 0:e.user)||void 0===d?void 0:d._id),p=Object.assign({currentMessage:e,previousMessage:s,nextMessage:i,position:g,user:y},H);if(b)return b(p);const f=e._id,x=P.has(f);return t.jsx("div",Object.assign({style:Object.assign(Object.assign({maxWidth:E===a.GiftedChatAppType.Manifest?"50%":"70%",width:"fit-content"},E===a.GiftedChatAppType.Manifest?{minWidth:"130px"}:{}),{padding:"8px 12px",borderTopLeftRadius:"left"===g?c?12:2:12,borderTopRightRadius:"right"===g?c?12:2:12,borderBottomLeftRadius:"left"===g?h?12:2:12,borderBottomRightRadius:"right"===g?h?12:2:12,border:"left"===g&&E===a.GiftedChatAppType.Manifest?"1px solid rgb(224, 224, 224)":"none",backgroundColor:"right"===g?E===a.GiftedChatAppType.Manifest?r.COLORS.background.brandTint:r.COLORS.background.brandLight:E===a.GiftedChatAppType.Manifest?r.COLORS.background.pureWhite:r.COLORS.background.inactive,color:r.COLORS.content.primary,wordBreak:"break-word"})},{children:t.jsx(v,{text:null!==(u=e.text)&&void 0!==u?u:"",isExpanded:x,onToggle:()=>D((e=>{const t=new Set(e);return x?t.delete(f):t.add(f),t}))})}))}),[W,y,b,H,P]),V=s.useCallback(((e,t,s)=>{if(!$(e,t))return null;const r=W(e)?"right":"left";return j?j({currentMessage:e,previousMessage:t,nextMessage:s,position:r,user:y,renderAvatarOnTop:A,showUserAvatar:C,showAvatarForEveryMessage:M}):null}),[$,W,y,A,C,M,j]);return x&&0!==x.length?t.jsxs("div",Object.assign({ref:G,style:Object.assign(Object.assign({flex:1,overflowY:"auto",overflowX:"hidden",display:"flex",flexDirection:"column"},L?{maxHeight:L,height:L}:{}),S.style),onScroll:z},{children:[t.jsx("div",{style:{flex:"1 0 auto"}}),t.jsx("div",Object.assign({style:{display:"flex",flexDirection:"column",flex:"0 0 auto"}},{children:F.map(((e,s)=>{var r,i,n,l,u,h;const v=(null==e?void 0:e.channelId)===g.MESSAGE_CHANNELS.SMTP||(null==e?void 0:e.channelName)===g.MESSAGE_CHANNELS.SMTP,f=v?"left":W(e)?"right":"left",x=F[s-1],y=F[s+1],b=!c.isSameDay(e,x),j=d.getMessagePlacement(e,f),T=d.shouldCenterAlign(e),O=e.category===c.Constants.ChatActivity.Category.ACTIVITY&&e.activityType===c.Constants.ChatActivity.Type.PRIVATE_NOTE;return t.jsxs(p.default.Fragment,{children:[b&&(m?m({createdAt:e.createdAt}):t.jsx(o.Day,{createdAt:e.createdAt,appType:E})),t.jsxs("div",Object.assign({style:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},B?{margin:"0 4px"}:{}),T?{}:{display:"flex",alignItems:"flex-start"}),E!==a.GiftedChatAppType.Manifest?B||"right"!==f?{marginRight:8}:{marginLeft:8}:{}),v&&!O&&B?{marginLeft:8,marginRight:8}:{}),{justifyContent:j,marginBottom:y?(null===(r=null==y?void 0:y.user)||void 0===r?void 0:r._id)===(null===(i=null==e?void 0:e.user)||void 0===i?void 0:i._id)?4:20:0})},{children:[!B&&"left"===f&&t.jsx("div",Object.assign({style:{marginRight:"4px",width:"24px",flexShrink:0}},{children:V(e,x,y)})),t.jsx("div",Object.assign({id:`message-bubble-${null!==(n=e._id)&&void 0!==n?n:`${s}-${null!==(l=null==R?void 0:R())&&void 0!==l?l:"id"}`}`,style:E===a.GiftedChatAppType.Manifest?{width:"100%"}:v?{display:"flex",flexGrow:1,width:"100%"}:{}},{children:U(e,x,y)})),!B&&"right"===f&&t.jsx("div",Object.assign({style:{marginLeft:"4px",width:"24px",flexShrink:0,alignSelf:"flex-start"}},{children:V(e,x,y)}))]}))]},null!==(u=e._id)&&void 0!==u?u:`${s}-${null!==(h=null==R?void 0:R())&&void 0!==h?h:"id"}`)}))}))]})):O?t.jsx(t.Fragment,{children:O()}):null};var x=s.forwardRef(f);exports.default=x;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../_virtual/_tslib.js"),t=require("react/jsx-runtime"),s=require("react"),r=require("../../../constants/Theme.js"),i=require("../../../hooks/useWindowSize.js"),n=require("../../button/Button.js"),l=require("../../TypographyStyle.js"),a=require("../Bubble/types.js"),o=require("./Day.js"),d=require("./messageHelpers.js"),u=require("./scrollHooks.js"),g=require("./types.js"),c=require("./utils.js");function h(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var p=h(s);const v=e=>{let{text:r,isExpanded:i,onToggle:a}=e;const o=s.useRef(null),[d,u]=s.useState(!1);return s.useEffect((()=>{const e=o.current;if(e){e.style.maxHeight="none";const t=e.scrollHeight>204;e.style.maxHeight=i?"none":"204px",u(t)}}),[r,i]),t.jsxs(t.Fragment,{children:[t.jsx("div",Object.assign({ref:o,style:{maxHeight:i?"none":204,overflow:"hidden"}},{children:t.jsx(l.BodySecondary,{children:r})})),d&&t.jsx(n.Button,{buttonType:"text",size:"xs",buttonText:i?"Show less":"Read more",onClick:a})]})},f=(n,l)=>{var h;const f=n||{},{messages:x=[],user:y,renderBubble:b,renderAvatar:j,renderDay:m,renderLoading:T,renderChatEmpty:O,listViewProps:S={},renderAvatarOnTop:A=!1,showUserAvatar:C=!1,showAvatarForEveryMessage:M=!1,inverted:w=!1,messageIdGenerator:R,topThreshold:_=c.TOP_THRESHOLD,appType:E=a.GiftedChatAppType.Bik,maxHeight:L,isActivityMessage:k}=f,H=e.__rest(f,["messages","user","renderBubble","renderAvatar","renderDay","renderLoading","renderChatEmpty","listViewProps","renderAvatarOnTop","showUserAvatar","showAvatarForEveryMessage","inverted","messageIdGenerator","topThreshold","appType","maxHeight","isActivityMessage"]),B=i.useWindowSize(),q=s.useRef(null),G=c.normalizeRef(S.ref||l,q),I=s.useRef({isInitialMount:!0,isUserScrolling:!1,isLoadingOldMessages:!1,isAtBottom:!0,hasTriggeredEndReached:!1,lastMessagesLength:null!==(h=null==x?void 0:x.length)&&void 0!==h?h:0,previousScrollHeight:0,previousScrollTop:0,scrollTimeout:null}),[P,D]=s.useState(new Set),F=s.useMemo((()=>x&&0!==x.length?[...x].reverse():[]),[x]),N=u.useScrollToBottom(G,I);s.useImperativeHandle(l,(()=>G.current)),u.useInitialMountScroll(G,I,F.length,N),u.useScrollCleanup(I),u.useRestoreScrollPosition(G,I,F.length),u.useAutoScrollOnNewMessages(G,I,x.length,N),u.useResizeObserverForFirstMessage(null==x?void 0:x[0],I,N,R);const z=u.useScrollHandler(I,S.onEndReached,S.onScroll,_),W=s.useCallback((e=>{var t;return Boolean(e&&y&&(null===(t=e.user)||void 0===t?void 0:t._id)===y._id)}),[y]),$=s.useCallback(((e,t)=>!!C&&(!!M||(!t||!!k&&k(e)||!!k&&k(t)||t.user._id!==e.user._id))),[C,M,k]),U=s.useCallback(((e,s,i)=>{var n,l,o,d,u;const g=W(e)?"right":"left",c=(null===(n=null==s?void 0:s.user)||void 0===n?void 0:n._id)!==(null===(l=null==e?void 0:e.user)||void 0===l?void 0:l._id),h=(null===(o=null==i?void 0:i.user)||void 0===o?void 0:o._id)!==(null===(d=null==e?void 0:e.user)||void 0===d?void 0:d._id),p=Object.assign({currentMessage:e,previousMessage:s,nextMessage:i,position:g,user:y},H);if(b)return b(p);const f=e._id,x=P.has(f);return t.jsx("div",Object.assign({style:Object.assign(Object.assign({maxWidth:E===a.GiftedChatAppType.Manifest?"50%":"70%",width:"fit-content"},E===a.GiftedChatAppType.Manifest?{minWidth:"130px"}:{}),{padding:"8px 12px",borderTopLeftRadius:"left"===g?c?12:2:12,borderTopRightRadius:"right"===g?c?12:2:12,borderBottomLeftRadius:"left"===g?h?12:2:12,borderBottomRightRadius:"right"===g?h?12:2:12,border:"left"===g&&E===a.GiftedChatAppType.Manifest?"1px solid rgb(224, 224, 224)":"none",backgroundColor:"right"===g?E===a.GiftedChatAppType.Manifest?r.COLORS.background.brandTint:r.COLORS.background.brandLight:E===a.GiftedChatAppType.Manifest?r.COLORS.background.pureWhite:r.COLORS.background.inactive,color:r.COLORS.content.primary,wordBreak:"break-word"})},{children:t.jsx(v,{text:null!==(u=e.text)&&void 0!==u?u:"",isExpanded:x,onToggle:()=>D((e=>{const t=new Set(e);return x?t.delete(f):t.add(f),t}))})}))}),[W,y,b,H,P]),V=s.useCallback(((e,t,s)=>{if(!$(e,t))return null;const r=W(e)?"right":"left";return j?j({currentMessage:e,previousMessage:t,nextMessage:s,position:r,user:y,renderAvatarOnTop:A,showUserAvatar:C,showAvatarForEveryMessage:M}):null}),[$,W,y,A,C,M,j]);return x&&0!==x.length?t.jsxs("div",Object.assign({ref:G,style:Object.assign(Object.assign({flex:1,overflowY:"auto",overflowX:"hidden",display:"flex",flexDirection:"column"},L?{maxHeight:L,height:L}:{}),S.style),onScroll:z},{children:[t.jsx("div",{style:{flex:"1 0 auto"}}),t.jsx("div",Object.assign({style:{display:"flex",flexDirection:"column",flex:"0 0 auto"}},{children:F.map(((e,s)=>{var r,i,n,l,u,h;const v=(null==e?void 0:e.channelId)===g.MESSAGE_CHANNELS.SMTP||(null==e?void 0:e.channelName)===g.MESSAGE_CHANNELS.SMTP,f=v?"left":W(e)?"right":"left",x=F[s-1],y=F[s+1],b=!c.isSameDay(e,x),j=d.getMessagePlacement(e,f),T=d.shouldCenterAlign(e),O=e.category===c.Constants.ChatActivity.Category.ACTIVITY&&e.activityType===c.Constants.ChatActivity.Type.PRIVATE_NOTE;return t.jsxs(p.default.Fragment,{children:[b&&(m?m({createdAt:e.createdAt}):t.jsx(o.Day,{createdAt:e.createdAt,appType:E})),t.jsxs("div",Object.assign({style:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},B?{margin:"0 4px"}:{}),T?{}:{display:"flex",alignItems:"flex-start"}),E!==a.GiftedChatAppType.Manifest?B||"right"!==f?{marginRight:8}:{marginLeft:8}:{}),v&&!O&&B?{marginLeft:8,marginRight:8}:{}),{justifyContent:j,marginBottom:y?(null===(r=null==y?void 0:y.user)||void 0===r?void 0:r._id)===(null===(i=null==e?void 0:e.user)||void 0===i?void 0:i._id)?4:20:0})},{children:[!B&&"left"===f&&t.jsx("div",Object.assign({style:{marginRight:v?"0px":"4px",width:"24px",flexShrink:0}},{children:V(e,x,y)})),t.jsx("div",Object.assign({id:`message-bubble-${null!==(n=e._id)&&void 0!==n?n:`${s}-${null!==(l=null==R?void 0:R())&&void 0!==l?l:"id"}`}`,style:E===a.GiftedChatAppType.Manifest?{width:"100%"}:v?{display:"flex",flexGrow:1,width:"100%"}:{}},{children:U(e,x,y)})),!B&&"right"===f&&t.jsx("div",Object.assign({style:{marginLeft:"4px",width:"24px",flexShrink:0,alignSelf:"flex-start"}},{children:V(e,x,y)}))]}))]},null!==(u=e._id)&&void 0!==u?u:`${s}-${null!==(h=null==R?void 0:R())&&void 0!==h?h:"id"}`)}))}))]})):O?t.jsx(t.Fragment,{children:O()}):null};var x=s.forwardRef(f);exports.default=x;
|
|
2
2
|
//# sourceMappingURL=GiftedChat.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GiftedChat.js","sources":["../../../../../src/components/BikGiftedChat/GiftedChat/GiftedChat.tsx"],"sourcesContent":["import React, {\n\tforwardRef,\n\tuseCallback,\n\tuseEffect,\n\tuseImperativeHandle,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from 'react';\nimport { COLORS } from '../../../constants/Theme';\nimport { useWindowSize } from '../../../hooks/useWindowSize';\nimport { Button } from '../../button';\nimport { BodySecondary } from '../../TypographyStyle';\nimport { BubbleProps, GiftedChatAppType } from '../Bubble/types';\nimport { IMessage } from '../types';\nimport { Day } from './Day';\nimport { getMessagePlacement, shouldCenterAlign } from './messageHelpers';\nimport {\n\tuseAutoScrollOnNewMessages,\n\tuseInitialMountScroll,\n\tuseResizeObserverForFirstMessage,\n\tuseRestoreScrollPosition,\n\tuseScrollCleanup,\n\tuseScrollHandler,\n\tuseScrollToBottom,\n} from './scrollHooks';\nimport { AvatarProps, GiftedChatProps, MESSAGE_CHANNELS } from './types';\nimport { isSameDay, normalizeRef } from './utils';\nimport { Constants, TOP_THRESHOLD } from './utils';\n\nconst COLLAPSED_MAX_HEIGHT = 204;\n\nconst CollapsibleBubbleText: React.FC<{\n\ttext: string;\n\tisExpanded: boolean;\n\tonToggle: () => void;\n}> = ({ text, isExpanded, onToggle }) => {\n\tconst textRef = useRef<HTMLDivElement>(null);\n\tconst [isOverflowing, setIsOverflowing] = useState(false);\n\n\tuseEffect(() => {\n\t\tconst el = textRef.current;\n\t\tif (el) {\n\t\t\t// Temporarily remove max-height to measure true scroll height\n\t\t\tel.style.maxHeight = 'none';\n\t\t\tconst overflows = el.scrollHeight > COLLAPSED_MAX_HEIGHT;\n\t\t\tel.style.maxHeight = isExpanded ? 'none' : `${COLLAPSED_MAX_HEIGHT}px`;\n\t\t\tsetIsOverflowing(overflows);\n\t\t}\n\t}, [text, isExpanded]);\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tref={textRef}\n\t\t\t\tstyle={{\n\t\t\t\t\tmaxHeight: isExpanded ? 'none' : COLLAPSED_MAX_HEIGHT,\n\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<BodySecondary>{text}</BodySecondary>\n\t\t\t</div>\n\t\t\t{isOverflowing && (\n\t\t\t\t<Button\n\t\t\t\t\tbuttonType=\"text\"\n\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\tbuttonText={isExpanded ? 'Show less' : 'Read more'}\n\t\t\t\t\tonClick={onToggle}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</>\n\t);\n};\n\nconst GiftedChatInner = (\n\tprops: Omit<GiftedChatProps<IMessage>, 'ref'>,\n\tforwardedRef: React.Ref<HTMLDivElement>,\n) => {\n\tconst {\n\t\tmessages = [],\n\t\tuser,\n\t\trenderBubble,\n\t\trenderAvatar,\n\t\trenderDay,\n\t\trenderLoading,\n\t\trenderChatEmpty,\n\t\tlistViewProps = {},\n\t\trenderAvatarOnTop = false,\n\t\tshowUserAvatar = false,\n\t\tshowAvatarForEveryMessage = false,\n\t\tinverted = false,\n\t\tmessageIdGenerator,\n\t\ttopThreshold = TOP_THRESHOLD,\n\t\tappType = GiftedChatAppType.Bik,\n\t\tmaxHeight,\n\t\tisActivityMessage,\n\t\t...extraProps\n\t} = props || {};\n\n\tconst isMobile = useWindowSize();\n\n\tconst internalScrollRef = useRef<HTMLDivElement | null>(null);\n\tconst scrollRef = normalizeRef(\n\t\tlistViewProps.ref || forwardedRef,\n\t\tinternalScrollRef,\n\t);\n\n\tconst scrollState = useRef({\n\t\tisInitialMount: true,\n\t\tisUserScrolling: false,\n\t\tisLoadingOldMessages: false,\n\t\tisAtBottom: true,\n\t\thasTriggeredEndReached: false,\n\t\tlastMessagesLength: messages?.length ?? 0,\n\t\tpreviousScrollHeight: 0,\n\t\tpreviousScrollTop: 0,\n\t\tscrollTimeout: null,\n\t});\n\n\tconst [expandedMessages, setExpandedMessages] = useState<\n\t\tSet<string | number>\n\t>(new Set());\n\n\t// Reverse messages so newest appears last in DOM (natural reading order)\n\tconst reversedMessages = useMemo(() => {\n\t\tif (!messages || messages.length === 0) return [] as IMessage[];\n\t\treturn [...messages].reverse() as IMessage[];\n\t}, [messages]);\n\n\tconst scrollToBottom = useScrollToBottom(scrollRef, scrollState);\n\n\tuseImperativeHandle(forwardedRef, () => scrollRef.current!);\n\n\tuseInitialMountScroll(\n\t\tscrollRef,\n\t\tscrollState,\n\t\treversedMessages.length,\n\t\tscrollToBottom,\n\t);\n\n\tuseScrollCleanup(scrollState);\n\n\tuseRestoreScrollPosition(scrollRef, scrollState, reversedMessages.length);\n\n\tuseAutoScrollOnNewMessages(\n\t\tscrollRef,\n\t\tscrollState,\n\t\tmessages.length,\n\t\tscrollToBottom,\n\t);\n\n\tuseResizeObserverForFirstMessage(\n\t\tmessages?.[0],\n\t\tscrollState,\n\t\tscrollToBottom,\n\t\tmessageIdGenerator,\n\t);\n\n\tconst handleScroll = useScrollHandler(\n\t\tscrollState,\n\t\tlistViewProps.onEndReached,\n\t\tlistViewProps.onScroll,\n\t\ttopThreshold,\n\t);\n\n\t// Check if a message belongs to the current user\n\tconst isUserMessage = useCallback(\n\t\t(message: IMessage) => {\n\t\t\treturn Boolean(message && user && message.user?._id === user._id);\n\t\t},\n\t\t[user],\n\t);\n\n\t// Determine if avatar should be shown for this message\n\tconst shouldShowAvatar = useCallback(\n\t\t(message: IMessage, previousMessage?: IMessage) => {\n\t\t\tif (!showUserAvatar) return false;\n\t\t\tif (showAvatarForEveryMessage) return true;\n\n\t\t\t// Show avatar on the first message in a consecutive sender stack,\n\t\t\t// or when an activity interrupts the stack, or when the current message itself is an activity\n\t\t\treturn (\n\t\t\t\t!previousMessage ||\n\t\t\t\t(isActivityMessage ? isActivityMessage(message) : false) ||\n\t\t\t\t(isActivityMessage ? isActivityMessage(previousMessage) : false) ||\n\t\t\t\tpreviousMessage.user._id !== message.user._id\n\t\t\t);\n\t\t},\n\t\t[showUserAvatar, showAvatarForEveryMessage, isActivityMessage],\n\t);\n\n\t// Render a message bubble (or call custom renderBubble)\n\tconst renderMessageBubble = useCallback(\n\t\t(message: IMessage, previousMessage?: IMessage, nextMessage?: IMessage) => {\n\t\t\tconst position = isUserMessage(message) ? 'right' : 'left';\n\t\t\tconst isTopOfStack = previousMessage?.user?._id !== message?.user?._id;\n\t\t\tconst isBottomOfStack = nextMessage?.user?._id !== message?.user?._id;\n\n\t\t\tconst bubbleProps: BubbleProps<IMessage> = {\n\t\t\t\tcurrentMessage: message,\n\t\t\t\tpreviousMessage,\n\t\t\t\tnextMessage,\n\t\t\t\tposition,\n\t\t\t\tuser,\n\t\t\t\t...extraProps,\n\t\t\t};\n\n\t\t\t// Use custom render function if provided\n\t\t\tif (renderBubble) {\n\t\t\t\treturn renderBubble(bubbleProps);\n\t\t\t}\n\n\t\t\t// Default bubble rendering\n\t\t\tconst messageId = message._id;\n\t\t\tconst isExpanded = expandedMessages.has(messageId);\n\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tmaxWidth: appType === GiftedChatAppType.Manifest ? '50%' : '70%',\n\t\t\t\t\t\twidth: 'fit-content',\n\t\t\t\t\t\t...(appType === GiftedChatAppType.Manifest\n\t\t\t\t\t\t\t? { minWidth: '130px' }\n\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\tpadding: '8px 12px',\n\t\t\t\t\t\tborderTopLeftRadius:\n\t\t\t\t\t\t\tposition === 'left' ? (isTopOfStack ? 12 : 2) : 12,\n\t\t\t\t\t\tborderTopRightRadius:\n\t\t\t\t\t\t\tposition === 'right' ? (isTopOfStack ? 12 : 2) : 12,\n\t\t\t\t\t\tborderBottomLeftRadius:\n\t\t\t\t\t\t\tposition === 'left' ? (isBottomOfStack ? 12 : 2) : 12,\n\t\t\t\t\t\tborderBottomRightRadius:\n\t\t\t\t\t\t\tposition === 'right' ? (isBottomOfStack ? 12 : 2) : 12,\n\t\t\t\t\t\tborder:\n\t\t\t\t\t\t\tposition === 'left' && appType === GiftedChatAppType.Manifest\n\t\t\t\t\t\t\t\t? '1px solid rgb(224, 224, 224)'\n\t\t\t\t\t\t\t\t: 'none',\n\t\t\t\t\t\tbackgroundColor:\n\t\t\t\t\t\t\tposition === 'right'\n\t\t\t\t\t\t\t\t? appType === GiftedChatAppType.Manifest\n\t\t\t\t\t\t\t\t\t? COLORS.background.brandTint\n\t\t\t\t\t\t\t\t\t: COLORS.background.brandLight\n\t\t\t\t\t\t\t\t: appType === GiftedChatAppType.Manifest\n\t\t\t\t\t\t\t\t? COLORS.background.pureWhite\n\t\t\t\t\t\t\t\t: COLORS.background.inactive,\n\t\t\t\t\t\tcolor: COLORS.content.primary,\n\t\t\t\t\t\twordBreak: 'break-word',\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<CollapsibleBubbleText\n\t\t\t\t\t\ttext={message.text ?? ''}\n\t\t\t\t\t\tisExpanded={isExpanded}\n\t\t\t\t\t\tonToggle={() =>\n\t\t\t\t\t\t\tsetExpandedMessages((prev) => {\n\t\t\t\t\t\t\t\tconst next = new Set(prev);\n\t\t\t\t\t\t\t\tif (isExpanded) next.delete(messageId);\n\t\t\t\t\t\t\t\telse next.add(messageId);\n\t\t\t\t\t\t\t\treturn next;\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t);\n\t\t},\n\t\t[isUserMessage, user, renderBubble, extraProps, expandedMessages],\n\t);\n\n\t// Render a message avatar (or call custom renderAvatar)\n\tconst renderMessageAvatar = useCallback(\n\t\t(message: IMessage, previousMessage?: IMessage, nextMessage?: IMessage) => {\n\t\t\tconst shouldShow = shouldShowAvatar(message, previousMessage);\n\n\t\t\tif (!shouldShow) return null;\n\n\t\t\tconst position = isUserMessage(message) ? 'right' : 'left';\n\n\t\t\tconst avatarProps: AvatarProps<IMessage> = {\n\t\t\t\tcurrentMessage: message,\n\t\t\t\tpreviousMessage,\n\t\t\t\tnextMessage,\n\t\t\t\tposition,\n\t\t\t\tuser,\n\t\t\t\trenderAvatarOnTop,\n\t\t\t\tshowUserAvatar,\n\t\t\t\tshowAvatarForEveryMessage,\n\t\t\t};\n\n\t\t\treturn renderAvatar ? renderAvatar(avatarProps) : null;\n\t\t},\n\t\t[\n\t\t\tshouldShowAvatar,\n\t\t\tisUserMessage,\n\t\t\tuser,\n\t\t\trenderAvatarOnTop,\n\t\t\tshowUserAvatar,\n\t\t\tshowAvatarForEveryMessage,\n\t\t\trenderAvatar,\n\t\t],\n\t);\n\n\t// Render: Empty State\n\tif (!messages || messages.length === 0) {\n\t\treturn renderChatEmpty ? <>{renderChatEmpty()}</> : null;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tref={scrollRef as React.RefObject<HTMLDivElement>}\n\t\t\tstyle={{\n\t\t\t\tflex: 1,\n\t\t\t\toverflowY: 'auto',\n\t\t\t\toverflowX: 'hidden',\n\t\t\t\tdisplay: 'flex',\n\t\t\t\tflexDirection: 'column',\n\t\t\t\t...(maxHeight ? { maxHeight, height: maxHeight } : {}),\n\t\t\t\t...listViewProps.style,\n\t\t\t}}\n\t\t\tonScroll={handleScroll}\n\t\t>\n\t\t\t{/* Spacer to push messages to bottom (newest appears last in DOM) */}\n\t\t\t<div style={{ flex: '1 0 auto' }} />\n\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\tflexDirection: 'column',\n\t\t\t\t\tflex: '0 0 auto',\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{reversedMessages.map((message, index) => {\n\t\t\t\t\tconst isSmtp =\n\t\t\t\t\t\tmessage?.['channelId'] === MESSAGE_CHANNELS.SMTP ||\n\t\t\t\t\t\tmessage?.['channelName'] === MESSAGE_CHANNELS.SMTP;\n\t\t\t\t\tconst position = isSmtp ? 'left' : (isUserMessage(message) ? 'right' : 'left');\n\t\t\t\t\tconst previousMessage = reversedMessages[index - 1];\n\t\t\t\t\tconst nextMessage = reversedMessages[index + 1];\n\t\t\t\t\tconst shouldShowDay = !isSameDay(message, previousMessage);\n\t\t\t\t\tconst placement = getMessagePlacement(message, position);\n\t\t\t\t\tconst isCentered = shouldCenterAlign(message);\n\t\t\t\t\t// Check if message is a private note\n\t\t\t\t\tconst isPrivateNote =\n\t\t\t\t\t\tmessage['category'] === Constants.ChatActivity.Category.ACTIVITY &&\n\t\t\t\t\t\tmessage['activityType'] ===\n\t\t\t\t\t\t\tConstants.ChatActivity.Type.PRIVATE_NOTE;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<React.Fragment\n\t\t\t\t\t\t\tkey={message._id ?? `${index}-${messageIdGenerator?.() ?? 'id'}`}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{/* Day separator */}\n\t\t\t\t\t\t\t{shouldShowDay &&\n\t\t\t\t\t\t\t\t(renderDay ? (\n\t\t\t\t\t\t\t\t\trenderDay({ createdAt: message.createdAt })\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<Day createdAt={message.createdAt} appType={appType} />\n\t\t\t\t\t\t\t\t))}\n\n\t\t\t\t\t\t\t{/* Message container */}\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t...(isMobile ? { margin: '0 4px' } : {}),\n\t\t\t\t\t\t\t\t\t...(isCentered\n\t\t\t\t\t\t\t\t\t\t? {}\n\t\t\t\t\t\t\t\t\t\t: { display: 'flex', alignItems: 'flex-start' }),\n\t\t\t\t\t\t\t\t\t...(appType !== GiftedChatAppType.Manifest\n\t\t\t\t\t\t\t\t\t\t? !isMobile && position === 'right'\n\t\t\t\t\t\t\t\t\t\t\t? { marginLeft: 8 }\n\t\t\t\t\t\t\t\t\t\t\t: { marginRight: 8 }\n\t\t\t\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\t\t\t\t...(isSmtp && !isPrivateNote && isMobile\n\t\t\t\t\t\t\t\t\t\t? { marginLeft: 8, marginRight: 8 }\n\t\t\t\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\t\t\t\tjustifyContent: placement,\n\t\t\t\t\t\t\t\t\tmarginBottom: nextMessage\n\t\t\t\t\t\t\t\t\t\t? nextMessage?.user?._id === message?.user?._id\n\t\t\t\t\t\t\t\t\t\t\t? 4\n\t\t\t\t\t\t\t\t\t\t\t: 20\n\t\t\t\t\t\t\t\t\t\t: 0,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{/* Left avatar or placeholder (for mobile, avatar is hidden) */}\n\t\t\t\t\t\t\t\t{!isMobile && position === 'left' && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{ marginRight: '4px', width: '24px', flexShrink: 0 }}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{renderMessageAvatar(message, previousMessage, nextMessage)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t{/* Message bubble */}\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tid={`message-bubble-${\n\t\t\t\t\t\t\t\t\t\tmessage._id ?? `${index}-${messageIdGenerator?.() ?? 'id'}`\n\t\t\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\t\tappType === GiftedChatAppType.Manifest\n\t\t\t\t\t\t\t\t\t\t\t? { width: '100%' }\n\t\t\t\t\t\t\t\t\t\t\t: isSmtp\n\t\t\t\t\t\t\t\t\t\t\t? { display: 'flex', flexGrow: 1, width: '100%' }\n\t\t\t\t\t\t\t\t\t\t\t: {}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{renderMessageBubble(message, previousMessage, nextMessage)}\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t{/* Right avatar or placeholder (for mobile, avatar is hidden) */}\n\t\t\t\t\t\t\t\t{!isMobile && position === 'right' && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tmarginLeft: '4px',\n\t\t\t\t\t\t\t\t\t\t\twidth: '24px',\n\t\t\t\t\t\t\t\t\t\t\tflexShrink: 0,\n\t\t\t\t\t\t\t\t\t\t\talignSelf: 'flex-start',\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{renderMessageAvatar(message, previousMessage, nextMessage)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</React.Fragment>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default forwardRef<HTMLDivElement, GiftedChatProps<IMessage>>(\n\tGiftedChatInner,\n);\n"],"names":["CollapsibleBubbleText","_ref","text","isExpanded","onToggle","textRef","useRef","isOverflowing","setIsOverflowing","useState","useEffect","el","current","style","maxHeight","overflows","scrollHeight","_jsxs","_jsx","jsx","Object","assign","ref","overflow","children","BodySecondary","Button","buttonType","size","buttonText","onClick","GiftedChatInner","props","forwardedRef","_b","messages","user","renderBubble","renderAvatar","renderDay","renderLoading","renderChatEmpty","listViewProps","renderAvatarOnTop","showUserAvatar","showAvatarForEveryMessage","inverted","messageIdGenerator","topThreshold","TOP_THRESHOLD","appType","GiftedChatAppType","Bik","isActivityMessage","extraProps","__rest","isMobile","useWindowSize","internalScrollRef","scrollRef","normalizeRef","scrollState","isInitialMount","isUserScrolling","isLoadingOldMessages","isAtBottom","hasTriggeredEndReached","lastMessagesLength","_a","length","previousScrollHeight","previousScrollTop","scrollTimeout","expandedMessages","setExpandedMessages","Set","reversedMessages","useMemo","reverse","scrollToBottom","useScrollToBottom","useImperativeHandle","useInitialMountScroll","useScrollCleanup","useRestoreScrollPosition","useAutoScrollOnNewMessages","useResizeObserverForFirstMessage","handleScroll","useScrollHandler","onEndReached","onScroll","isUserMessage","useCallback","message","Boolean","_id","shouldShowAvatar","previousMessage","renderMessageBubble","nextMessage","position","isTopOfStack","isBottomOfStack","_c","_d","bubbleProps","currentMessage","messageId","has","maxWidth","Manifest","width","minWidth","padding","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","border","backgroundColor","COLORS","background","brandTint","brandLight","pureWhite","inactive","color","content","primary","wordBreak","_e","prev","next","delete","add","renderMessageAvatar","flex","overflowY","overflowX","display","flexDirection","height","map","index","isSmtp","MESSAGE_CHANNELS","SMTP","shouldShowDay","isSameDay","placement","getMessagePlacement","isCentered","shouldCenterAlign","isPrivateNote","Constants","ChatActivity","Category","ACTIVITY","Type","PRIVATE_NOTE","jsxs","React","Fragment","createdAt","Day","margin","alignItems","marginRight","marginLeft","justifyContent","marginBottom","flexShrink","id","flexGrow","alignSelf","_f","_Fragment","GiftedChat","forwardRef"],"mappings":"2jBA8BA,MAEMA,EAIDC,IAAmC,IAAlCC,KAAEA,EAAIC,WAAEA,EAAUC,SAAEA,GAAUH,EACnC,MAAMI,EAAUC,SAAuB,OAChCC,EAAeC,GAAoBC,EAAQA,UAAC,GAanD,OAXAC,EAAAA,WAAU,KACT,MAAMC,EAAKN,EAAQO,QACnB,GAAID,EAAI,CAEPA,EAAGE,MAAMC,UAAY,OACrB,MAAMC,EAAYJ,EAAGK,aAfK,IAgB1BL,EAAGE,MAAMC,UAAYX,EAAa,OAAY,QAC9CK,EAAiBO,EACjB,IACC,CAACb,EAAMC,IAGTc,EAAAA,2BACCC,EACCC,IAAA,MAAAC,OAAAC,OAAA,CAAAC,IAAKjB,EACLQ,MAAO,CACNC,UAAWX,EAAa,OA1BA,IA2BxBoB,SAAU,WACV,CAAAC,SAEDN,MAACO,gBAAa,CAAAD,SAAEtB,OAEhBK,GACAW,EAAAC,IAACO,SACA,CAAAC,WAAW,OACXC,KAAK,KACLC,WAAY1B,EAAa,YAAc,YACvC2B,QAAS1B,MAGT,EAIC2B,EAAkBA,CACvBC,EACAC,WAEA,MAAMC,EAmBFF,GAAS,CAAE,GAnBTG,SACLA,EAAW,GAAEC,KACbA,EAAIC,aACJA,EAAYC,aACZA,EAAYC,UACZA,EAASC,cACTA,EAAaC,gBACbA,EAAeC,cACfA,EAAgB,CAAE,EAAAC,kBAClBA,GAAoB,EAAKC,eACzBA,GAAiB,EAAKC,0BACtBA,GAA4B,EAAKC,SACjCA,GAAW,EAAKC,mBAChBA,EAAkBC,aAClBA,EAAeC,EAAaA,cAAAC,QAC5BA,EAAUC,EAAiBA,kBAACC,IAAGtC,UAC/BA,EAASuC,kBACTA,GAAiBnB,EACdoB,EAlBEC,EAAAA,OAAArB,EAAA,CAAA,WAAA,OAAA,eAAA,eAAA,YAAA,gBAAA,kBAAA,gBAAA,oBAAA,iBAAA,4BAAA,WAAA,qBAAA,eAAA,UAAA,YAAA,sBAqBAsB,EAAWC,EAAAA,gBAEXC,EAAoBpD,SAA8B,MAClDqD,EAAYC,EAAAA,aACjBlB,EAAcpB,KAAOW,EACrByB,GAGKG,EAAcvD,EAAAA,OAAO,CAC1BwD,gBAAgB,EAChBC,iBAAiB,EACjBC,sBAAsB,EACtBC,YAAY,EACZC,wBAAwB,EACxBC,mBAAoC,QAAhBC,EAAAjC,eAAAA,EAAUkC,cAAM,IAAAD,EAAAA,EAAI,EACxCE,qBAAsB,EACtBC,kBAAmB,EACnBC,cAAe,QAGTC,EAAkBC,GAAuBjE,EAAAA,SAE9C,IAAIkE,KAGAC,EAAmBC,EAAAA,SAAQ,IAC3B1C,GAAgC,IAApBA,EAASkC,OACnB,IAAIlC,GAAU2C,UAD0B,IAE7C,CAAC3C,IAEE4C,EAAiBC,EAAAA,kBAAkBrB,EAAWE,GAEpDoB,EAAAA,oBAAoBhD,GAAc,IAAM0B,EAAU/C,UAElDsE,EAAqBA,sBACpBvB,EACAE,EACAe,EAAiBP,OACjBU,GAGDI,EAAgBA,iBAACtB,GAEjBuB,EAAAA,yBAAyBzB,EAAWE,EAAae,EAAiBP,QAElEgB,EAA0BA,2BACzB1B,EACAE,EACA1B,EAASkC,OACTU,GAGDO,EAAAA,iCACCnD,aAAQ,EAARA,EAAW,GACX0B,EACAkB,EACAhC,GAGD,MAAMwC,EAAeC,EAAgBA,iBACpC3B,EACAnB,EAAc+C,aACd/C,EAAcgD,SACd1C,GAIK2C,EAAgBC,EAAWA,aAC/BC,UACA,OAAOC,QAAQD,GAAWzD,YAAQgC,EAAAyB,EAAQzD,2BAAM2D,OAAQ3D,EAAK2D,IAAI,GAElE,CAAC3D,IAII4D,EAAmBJ,EAAAA,aACxB,CAACC,EAAmBI,MACdrD,MACDC,KAKFoD,KACA5C,GAAoBA,EAAkBwC,MACtCxC,GAAoBA,EAAkB4C,IACvCA,EAAgB7D,KAAK2D,MAAQF,EAAQzD,KAAK2D,OAG5C,CAACnD,EAAgBC,EAA2BQ,IAIvC6C,EAAsBN,EAAWA,aACtC,CAACC,EAAmBI,EAA4BE,mBAC/C,MAAMC,EAAWT,EAAcE,GAAW,QAAU,OAC9CQ,GAAoC,QAArBjC,EAAA6B,aAAe,EAAfA,EAAiB7D,YAAI,IAAAgC,OAAA,EAAAA,EAAE2B,QAAqB,QAAb7D,EAAA2D,aAAO,EAAPA,EAASzD,YAAI,IAAAF,OAAA,EAAAA,EAAE6D,KAC7DO,GAAmC,QAAjBC,EAAAJ,aAAW,EAAXA,EAAa/D,YAAI,IAAAmE,OAAA,EAAAA,EAAER,QAAqB,QAAbS,EAAAX,aAAO,EAAPA,EAASzD,YAAI,IAAAoE,OAAA,EAAAA,EAAET,KAE5DU,EACLrF,OAAAC,OAAA,CAAAqF,eAAgBb,EAChBI,kBACAE,cACAC,WACAhE,QACGkB,GAIJ,GAAIjB,EACH,OAAOA,EAAaoE,GAIrB,MAAME,EAAYd,EAAQE,IACpB5F,EAAasE,EAAiBmC,IAAID,GAExC,OACCzF,MAAA,MAAAE,OAAAC,OAAA,CACCR,MAAKO,OAAAC,OAAAD,OAAAC,OAAA,CACJwF,SAAU3D,IAAYC,EAAAA,kBAAkB2D,SAAW,MAAQ,MAC3DC,MAAO,eACH7D,IAAYC,EAAiBA,kBAAC2D,SAC/B,CAAEE,SAAU,SACZ,CAAG,GACN,CAAAC,QAAS,WACTC,oBACc,SAAbd,EAAuBC,EAAe,GAAK,EAAK,GACjDc,qBACc,UAAbf,EAAwBC,EAAe,GAAK,EAAK,GAClDe,uBACc,SAAbhB,EAAuBE,EAAkB,GAAK,EAAK,GACpDe,wBACc,UAAbjB,EAAwBE,EAAkB,GAAK,EAAK,GACrDgB,OACc,SAAblB,GAAuBlD,IAAYC,EAAAA,kBAAkB2D,SAClD,+BACA,OACJS,gBACc,UAAbnB,EACGlD,IAAYC,EAAAA,kBAAkB2D,SAC7BU,EAAMA,OAACC,WAAWC,UAClBF,EAAMA,OAACC,WAAWE,WACnBzE,IAAYC,EAAiBA,kBAAC2D,SAC9BU,EAAAA,OAAOC,WAAWG,UAClBJ,SAAOC,WAAWI,SACtBC,MAAON,EAAAA,OAAOO,QAAQC,QACtBC,UAAW,gBAAY,CAAAzG,SAGxBN,MAAClB,EAAqB,CACrBE,aAAMgI,EAAArC,EAAQ3F,oBAAQ,GACtBC,WAAYA,EACZC,SAAUA,IACTsE,GAAqByD,IACpB,MAAMC,EAAO,IAAIzD,IAAIwD,GAGrB,OAFIhI,EAAYiI,EAAKC,OAAO1B,GACvByB,EAAKE,IAAI3B,GACPyB,CAAI,QAIT,GAGR,CAACzC,EAAevD,EAAMC,EAAciB,EAAYmB,IAI3C8D,EAAsB3C,EAAWA,aACtC,CAACC,EAAmBI,EAA4BE,KAG/C,IAFmBH,EAAiBH,EAASI,GAE5B,OAAO,KAExB,MAAMG,EAAWT,EAAcE,GAAW,QAAU,OAapD,OAAOvD,EAAeA,EAXqB,CAC1CoE,eAAgBb,EAChBI,kBACAE,cACAC,WACAhE,OACAO,oBACAC,iBACAC,8BAGiD,IAAI,GAEvD,CACCmD,EACAL,EACAvD,EACAO,EACAC,EACAC,EACAP,IAKF,OAAKH,GAAgC,IAApBA,EAASkC,OAKzBpD,OAAA,MAAAG,OAAAC,OAAA,CACCC,IAAKqC,EACL9C,MAAKO,OAAAC,OAAAD,OAAAC,OAAA,CACJmH,KAAM,EACNC,UAAW,OACXC,UAAW,SACXC,QAAS,OACTC,cAAe,UACX9H,EAAY,CAAEA,YAAW+H,OAAQ/H,GAAc,CAAG,GACnD4B,EAAc7B,OAElB6E,SAAUH,GAAY,CAAA/D,SAAA,CAGtBN,EAAKC,IAAA,MAAA,CAAAN,MAAO,CAAE2H,KAAM,cAEpBtH,EAAAC,IAAA,MAAAC,OAAAC,OAAA,CACCR,MAAO,CACN8H,QAAS,OACTC,cAAe,SACfJ,KAAM,aAGN,CAAAhH,SAAAoD,EAAiBkE,KAAI,CAACjD,EAASkD,qBAC/B,MAAMC,GACLnD,aAAO,EAAPA,EAAqB,aAAMoD,EAAgBA,iBAACC,OAC5CrD,aAAO,EAAPA,EAAuB,eAAMoD,EAAAA,iBAAiBC,KACzC9C,EAAW4C,EAAS,OAAUrD,EAAcE,GAAW,QAAU,OACjEI,EAAkBrB,EAAiBmE,EAAQ,GAC3C5C,EAAcvB,EAAiBmE,EAAQ,GACvCI,GAAiBC,EAAAA,UAAUvD,EAASI,GACpCoD,EAAYC,EAAAA,oBAAoBzD,EAASO,GACzCmD,EAAaC,oBAAkB3D,GAE/B4D,EACL5D,EAAkB,WAAM6D,EAASA,UAACC,aAAaC,SAASC,UACxDhE,EAAsB,eACrB6D,EAAAA,UAAUC,aAAaG,KAAKC,aAC9B,OACC9I,EAAC+I,KAAAC,EAAK,QAACC,oBAILf,IACC5G,EACAA,EAAU,CAAE4H,UAAWtE,EAAQsE,YAE/BjJ,EAACC,IAAAiJ,MAAI,CAAAD,UAAWtE,EAAQsE,UAAWjH,QAASA,KAI9CjC,EAAA+I,KAAA,MAAA5I,OAAAC,OAAA,CACCR,MAAKO,OAAAC,OAAAD,OAAAC,OAAAD,OAAAC,OAAAD,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EACAmC,EAAW,CAAE6G,OAAQ,SAAY,CAAG,GACpCd,EACD,GACA,CAAEZ,QAAS,OAAQ2B,WAAY,eAC9BpH,IAAYC,oBAAkB2D,SAC9BtD,GAAyB,UAAb4C,EAEZ,CAAEmE,YAAa,GADf,CAAEC,WAAY,GAEf,CAAG,GACFxB,IAAWS,GAAiBjG,EAC7B,CAAEgH,WAAY,EAAGD,YAAa,GAC9B,CAAG,GACN,CAAAE,eAAgBpB,EAChBqB,aAAcvE,GACM,QAAjB/B,EAAA+B,aAAW,EAAXA,EAAa/D,YAAI,IAAAgC,OAAA,EAAAA,EAAE2B,QAAuB,QAAf7D,EAAA2D,aAAO,EAAPA,EAASzD,YAAM,IAAAF,OAAA,EAAAA,EAAA6D,KACzC,EACA,GACD,KAIH,CAAAvE,SAAA,EAACgC,GAAyB,SAAb4C,GACblF,MACC,MAAAE,OAAAC,OAAA,CAAAR,MAAO,CAAE0J,YAAa,MAAOxD,MAAO,OAAQ4D,WAAY,IAEvD,CAAAnJ,SAAA+G,EAAoB1C,EAASI,EAAiBE,MAKjDjF,EAAAC,IAAA,MAAAC,OAAAC,OAAA,CACCuJ,GAAI,kBACY,QAAfrE,EAAAV,EAAQE,WAAO,IAAAQ,EAAAA,EAAA,GAAGwC,aAASvC,EAAAzD,aAAkB,EAAlBA,mBAA0B,SAEtDlC,MACCqC,IAAYC,EAAiBA,kBAAC2D,SAC3B,CAAEC,MAAO,QACTiC,EACA,CAAEL,QAAS,OAAQkC,SAAU,EAAG9D,MAAO,QACvC,IAGH,CAAAvF,SAAA0E,EAAoBL,EAASI,EAAiBE,OAI9C3C,GAAyB,UAAb4C,GACblF,MACC,MAAAE,OAAAC,OAAA,CAAAR,MAAO,CACN2J,WAAY,MACZzD,MAAO,OACP4D,WAAY,EACZG,UAAW,eACX,CAAAtJ,SAEA+G,EAAoB1C,EAASI,EAAiBE,YApE9B,QAAf+B,EAAArC,EAAQE,WAAO,IAAAmC,EAAAA,EAAA,GAAGa,KAAmC,QAA1BgC,EAAAhI,aAAkB,EAAlBA,WAA0B,IAAAgI,EAAAA,EAAA,OAwE1C,WApHdtI,EAAkBvB,EAAGC,IAAA6J,WAAA,CAAAxJ,SAAAiB,MAAwB,IAwH9C,EAIR,IAAAwI,EAAeC,EAAAA,WACdnJ"}
|
|
1
|
+
{"version":3,"file":"GiftedChat.js","sources":["../../../../../src/components/BikGiftedChat/GiftedChat/GiftedChat.tsx"],"sourcesContent":["import React, {\n\tforwardRef,\n\tuseCallback,\n\tuseEffect,\n\tuseImperativeHandle,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from 'react';\nimport { COLORS } from '../../../constants/Theme';\nimport { useWindowSize } from '../../../hooks/useWindowSize';\nimport { Button } from '../../button';\nimport { BodySecondary } from '../../TypographyStyle';\nimport { BubbleProps, GiftedChatAppType } from '../Bubble/types';\nimport { IMessage } from '../types';\nimport { Day } from './Day';\nimport { getMessagePlacement, shouldCenterAlign } from './messageHelpers';\nimport {\n\tuseAutoScrollOnNewMessages,\n\tuseInitialMountScroll,\n\tuseResizeObserverForFirstMessage,\n\tuseRestoreScrollPosition,\n\tuseScrollCleanup,\n\tuseScrollHandler,\n\tuseScrollToBottom,\n} from './scrollHooks';\nimport { AvatarProps, GiftedChatProps, MESSAGE_CHANNELS } from './types';\nimport { isSameDay, normalizeRef } from './utils';\nimport { Constants, TOP_THRESHOLD } from './utils';\n\nconst COLLAPSED_MAX_HEIGHT = 204;\n\nconst CollapsibleBubbleText: React.FC<{\n\ttext: string;\n\tisExpanded: boolean;\n\tonToggle: () => void;\n}> = ({ text, isExpanded, onToggle }) => {\n\tconst textRef = useRef<HTMLDivElement>(null);\n\tconst [isOverflowing, setIsOverflowing] = useState(false);\n\n\tuseEffect(() => {\n\t\tconst el = textRef.current;\n\t\tif (el) {\n\t\t\t// Temporarily remove max-height to measure true scroll height\n\t\t\tel.style.maxHeight = 'none';\n\t\t\tconst overflows = el.scrollHeight > COLLAPSED_MAX_HEIGHT;\n\t\t\tel.style.maxHeight = isExpanded ? 'none' : `${COLLAPSED_MAX_HEIGHT}px`;\n\t\t\tsetIsOverflowing(overflows);\n\t\t}\n\t}, [text, isExpanded]);\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tref={textRef}\n\t\t\t\tstyle={{\n\t\t\t\t\tmaxHeight: isExpanded ? 'none' : COLLAPSED_MAX_HEIGHT,\n\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<BodySecondary>{text}</BodySecondary>\n\t\t\t</div>\n\t\t\t{isOverflowing && (\n\t\t\t\t<Button\n\t\t\t\t\tbuttonType=\"text\"\n\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\tbuttonText={isExpanded ? 'Show less' : 'Read more'}\n\t\t\t\t\tonClick={onToggle}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</>\n\t);\n};\n\nconst GiftedChatInner = (\n\tprops: Omit<GiftedChatProps<IMessage>, 'ref'>,\n\tforwardedRef: React.Ref<HTMLDivElement>,\n) => {\n\tconst {\n\t\tmessages = [],\n\t\tuser,\n\t\trenderBubble,\n\t\trenderAvatar,\n\t\trenderDay,\n\t\trenderLoading,\n\t\trenderChatEmpty,\n\t\tlistViewProps = {},\n\t\trenderAvatarOnTop = false,\n\t\tshowUserAvatar = false,\n\t\tshowAvatarForEveryMessage = false,\n\t\tinverted = false,\n\t\tmessageIdGenerator,\n\t\ttopThreshold = TOP_THRESHOLD,\n\t\tappType = GiftedChatAppType.Bik,\n\t\tmaxHeight,\n\t\tisActivityMessage,\n\t\t...extraProps\n\t} = props || {};\n\n\tconst isMobile = useWindowSize();\n\n\tconst internalScrollRef = useRef<HTMLDivElement | null>(null);\n\tconst scrollRef = normalizeRef(\n\t\tlistViewProps.ref || forwardedRef,\n\t\tinternalScrollRef,\n\t);\n\n\tconst scrollState = useRef({\n\t\tisInitialMount: true,\n\t\tisUserScrolling: false,\n\t\tisLoadingOldMessages: false,\n\t\tisAtBottom: true,\n\t\thasTriggeredEndReached: false,\n\t\tlastMessagesLength: messages?.length ?? 0,\n\t\tpreviousScrollHeight: 0,\n\t\tpreviousScrollTop: 0,\n\t\tscrollTimeout: null,\n\t});\n\n\tconst [expandedMessages, setExpandedMessages] = useState<\n\t\tSet<string | number>\n\t>(new Set());\n\n\t// Reverse messages so newest appears last in DOM (natural reading order)\n\tconst reversedMessages = useMemo(() => {\n\t\tif (!messages || messages.length === 0) return [] as IMessage[];\n\t\treturn [...messages].reverse() as IMessage[];\n\t}, [messages]);\n\n\tconst scrollToBottom = useScrollToBottom(scrollRef, scrollState);\n\n\tuseImperativeHandle(forwardedRef, () => scrollRef.current!);\n\n\tuseInitialMountScroll(\n\t\tscrollRef,\n\t\tscrollState,\n\t\treversedMessages.length,\n\t\tscrollToBottom,\n\t);\n\n\tuseScrollCleanup(scrollState);\n\n\tuseRestoreScrollPosition(scrollRef, scrollState, reversedMessages.length);\n\n\tuseAutoScrollOnNewMessages(\n\t\tscrollRef,\n\t\tscrollState,\n\t\tmessages.length,\n\t\tscrollToBottom,\n\t);\n\n\tuseResizeObserverForFirstMessage(\n\t\tmessages?.[0],\n\t\tscrollState,\n\t\tscrollToBottom,\n\t\tmessageIdGenerator,\n\t);\n\n\tconst handleScroll = useScrollHandler(\n\t\tscrollState,\n\t\tlistViewProps.onEndReached,\n\t\tlistViewProps.onScroll,\n\t\ttopThreshold,\n\t);\n\n\t// Check if a message belongs to the current user\n\tconst isUserMessage = useCallback(\n\t\t(message: IMessage) => {\n\t\t\treturn Boolean(message && user && message.user?._id === user._id);\n\t\t},\n\t\t[user],\n\t);\n\n\t// Determine if avatar should be shown for this message\n\tconst shouldShowAvatar = useCallback(\n\t\t(message: IMessage, previousMessage?: IMessage) => {\n\t\t\tif (!showUserAvatar) return false;\n\t\t\tif (showAvatarForEveryMessage) return true;\n\n\t\t\t// Show avatar on the first message in a consecutive sender stack,\n\t\t\t// or when an activity interrupts the stack, or when the current message itself is an activity\n\t\t\treturn (\n\t\t\t\t!previousMessage ||\n\t\t\t\t(isActivityMessage ? isActivityMessage(message) : false) ||\n\t\t\t\t(isActivityMessage ? isActivityMessage(previousMessage) : false) ||\n\t\t\t\tpreviousMessage.user._id !== message.user._id\n\t\t\t);\n\t\t},\n\t\t[showUserAvatar, showAvatarForEveryMessage, isActivityMessage],\n\t);\n\n\t// Render a message bubble (or call custom renderBubble)\n\tconst renderMessageBubble = useCallback(\n\t\t(message: IMessage, previousMessage?: IMessage, nextMessage?: IMessage) => {\n\t\t\tconst position = isUserMessage(message) ? 'right' : 'left';\n\t\t\tconst isTopOfStack = previousMessage?.user?._id !== message?.user?._id;\n\t\t\tconst isBottomOfStack = nextMessage?.user?._id !== message?.user?._id;\n\n\t\t\tconst bubbleProps: BubbleProps<IMessage> = {\n\t\t\t\tcurrentMessage: message,\n\t\t\t\tpreviousMessage,\n\t\t\t\tnextMessage,\n\t\t\t\tposition,\n\t\t\t\tuser,\n\t\t\t\t...extraProps,\n\t\t\t};\n\n\t\t\t// Use custom render function if provided\n\t\t\tif (renderBubble) {\n\t\t\t\treturn renderBubble(bubbleProps);\n\t\t\t}\n\n\t\t\t// Default bubble rendering\n\t\t\tconst messageId = message._id;\n\t\t\tconst isExpanded = expandedMessages.has(messageId);\n\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tmaxWidth: appType === GiftedChatAppType.Manifest ? '50%' : '70%',\n\t\t\t\t\t\twidth: 'fit-content',\n\t\t\t\t\t\t...(appType === GiftedChatAppType.Manifest\n\t\t\t\t\t\t\t? { minWidth: '130px' }\n\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\tpadding: '8px 12px',\n\t\t\t\t\t\tborderTopLeftRadius:\n\t\t\t\t\t\t\tposition === 'left' ? (isTopOfStack ? 12 : 2) : 12,\n\t\t\t\t\t\tborderTopRightRadius:\n\t\t\t\t\t\t\tposition === 'right' ? (isTopOfStack ? 12 : 2) : 12,\n\t\t\t\t\t\tborderBottomLeftRadius:\n\t\t\t\t\t\t\tposition === 'left' ? (isBottomOfStack ? 12 : 2) : 12,\n\t\t\t\t\t\tborderBottomRightRadius:\n\t\t\t\t\t\t\tposition === 'right' ? (isBottomOfStack ? 12 : 2) : 12,\n\t\t\t\t\t\tborder:\n\t\t\t\t\t\t\tposition === 'left' && appType === GiftedChatAppType.Manifest\n\t\t\t\t\t\t\t\t? '1px solid rgb(224, 224, 224)'\n\t\t\t\t\t\t\t\t: 'none',\n\t\t\t\t\t\tbackgroundColor:\n\t\t\t\t\t\t\tposition === 'right'\n\t\t\t\t\t\t\t\t? appType === GiftedChatAppType.Manifest\n\t\t\t\t\t\t\t\t\t? COLORS.background.brandTint\n\t\t\t\t\t\t\t\t\t: COLORS.background.brandLight\n\t\t\t\t\t\t\t\t: appType === GiftedChatAppType.Manifest\n\t\t\t\t\t\t\t\t? COLORS.background.pureWhite\n\t\t\t\t\t\t\t\t: COLORS.background.inactive,\n\t\t\t\t\t\tcolor: COLORS.content.primary,\n\t\t\t\t\t\twordBreak: 'break-word',\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<CollapsibleBubbleText\n\t\t\t\t\t\ttext={message.text ?? ''}\n\t\t\t\t\t\tisExpanded={isExpanded}\n\t\t\t\t\t\tonToggle={() =>\n\t\t\t\t\t\t\tsetExpandedMessages((prev) => {\n\t\t\t\t\t\t\t\tconst next = new Set(prev);\n\t\t\t\t\t\t\t\tif (isExpanded) next.delete(messageId);\n\t\t\t\t\t\t\t\telse next.add(messageId);\n\t\t\t\t\t\t\t\treturn next;\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t);\n\t\t},\n\t\t[isUserMessage, user, renderBubble, extraProps, expandedMessages],\n\t);\n\n\t// Render a message avatar (or call custom renderAvatar)\n\tconst renderMessageAvatar = useCallback(\n\t\t(message: IMessage, previousMessage?: IMessage, nextMessage?: IMessage) => {\n\t\t\tconst shouldShow = shouldShowAvatar(message, previousMessage);\n\n\t\t\tif (!shouldShow) return null;\n\n\t\t\tconst position = isUserMessage(message) ? 'right' : 'left';\n\n\t\t\tconst avatarProps: AvatarProps<IMessage> = {\n\t\t\t\tcurrentMessage: message,\n\t\t\t\tpreviousMessage,\n\t\t\t\tnextMessage,\n\t\t\t\tposition,\n\t\t\t\tuser,\n\t\t\t\trenderAvatarOnTop,\n\t\t\t\tshowUserAvatar,\n\t\t\t\tshowAvatarForEveryMessage,\n\t\t\t};\n\n\t\t\treturn renderAvatar ? renderAvatar(avatarProps) : null;\n\t\t},\n\t\t[\n\t\t\tshouldShowAvatar,\n\t\t\tisUserMessage,\n\t\t\tuser,\n\t\t\trenderAvatarOnTop,\n\t\t\tshowUserAvatar,\n\t\t\tshowAvatarForEveryMessage,\n\t\t\trenderAvatar,\n\t\t],\n\t);\n\n\t// Render: Empty State\n\tif (!messages || messages.length === 0) {\n\t\treturn renderChatEmpty ? <>{renderChatEmpty()}</> : null;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tref={scrollRef as React.RefObject<HTMLDivElement>}\n\t\t\tstyle={{\n\t\t\t\tflex: 1,\n\t\t\t\toverflowY: 'auto',\n\t\t\t\toverflowX: 'hidden',\n\t\t\t\tdisplay: 'flex',\n\t\t\t\tflexDirection: 'column',\n\t\t\t\t...(maxHeight ? { maxHeight, height: maxHeight } : {}),\n\t\t\t\t...listViewProps.style,\n\t\t\t}}\n\t\t\tonScroll={handleScroll}\n\t\t>\n\t\t\t{/* Spacer to push messages to bottom (newest appears last in DOM) */}\n\t\t\t<div style={{ flex: '1 0 auto' }} />\n\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\tflexDirection: 'column',\n\t\t\t\t\tflex: '0 0 auto',\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{reversedMessages.map((message, index) => {\n\t\t\t\t\tconst isSmtp =\n\t\t\t\t\t\tmessage?.['channelId'] === MESSAGE_CHANNELS.SMTP ||\n\t\t\t\t\t\tmessage?.['channelName'] === MESSAGE_CHANNELS.SMTP;\n\t\t\t\t\tconst position = isSmtp\n\t\t\t\t\t\t? 'left'\n\t\t\t\t\t\t: isUserMessage(message)\n\t\t\t\t\t\t? 'right'\n\t\t\t\t\t\t: 'left';\n\t\t\t\t\tconst previousMessage = reversedMessages[index - 1];\n\t\t\t\t\tconst nextMessage = reversedMessages[index + 1];\n\t\t\t\t\tconst shouldShowDay = !isSameDay(message, previousMessage);\n\t\t\t\t\tconst placement = getMessagePlacement(message, position);\n\t\t\t\t\tconst isCentered = shouldCenterAlign(message);\n\t\t\t\t\t// Check if message is a private note\n\t\t\t\t\tconst isPrivateNote =\n\t\t\t\t\t\tmessage['category'] === Constants.ChatActivity.Category.ACTIVITY &&\n\t\t\t\t\t\tmessage['activityType'] ===\n\t\t\t\t\t\t\tConstants.ChatActivity.Type.PRIVATE_NOTE;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<React.Fragment\n\t\t\t\t\t\t\tkey={message._id ?? `${index}-${messageIdGenerator?.() ?? 'id'}`}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{/* Day separator */}\n\t\t\t\t\t\t\t{shouldShowDay &&\n\t\t\t\t\t\t\t\t(renderDay ? (\n\t\t\t\t\t\t\t\t\trenderDay({ createdAt: message.createdAt })\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<Day createdAt={message.createdAt} appType={appType} />\n\t\t\t\t\t\t\t\t))}\n\n\t\t\t\t\t\t\t{/* Message container */}\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t...(isMobile ? { margin: '0 4px' } : {}),\n\t\t\t\t\t\t\t\t\t...(isCentered\n\t\t\t\t\t\t\t\t\t\t? {}\n\t\t\t\t\t\t\t\t\t\t: { display: 'flex', alignItems: 'flex-start' }),\n\t\t\t\t\t\t\t\t\t...(appType !== GiftedChatAppType.Manifest\n\t\t\t\t\t\t\t\t\t\t? !isMobile && position === 'right'\n\t\t\t\t\t\t\t\t\t\t\t? { marginLeft: 8 }\n\t\t\t\t\t\t\t\t\t\t\t: { marginRight: 8 }\n\t\t\t\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\t\t\t\t...(isSmtp && !isPrivateNote && isMobile\n\t\t\t\t\t\t\t\t\t\t? { marginLeft: 8, marginRight: 8 }\n\t\t\t\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\t\t\t\tjustifyContent: placement,\n\t\t\t\t\t\t\t\t\tmarginBottom: nextMessage\n\t\t\t\t\t\t\t\t\t\t? nextMessage?.user?._id === message?.user?._id\n\t\t\t\t\t\t\t\t\t\t\t? 4\n\t\t\t\t\t\t\t\t\t\t\t: 20\n\t\t\t\t\t\t\t\t\t\t: 0,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{/* Left avatar or placeholder (for mobile, avatar is hidden) */}\n\t\t\t\t\t\t\t\t{!isMobile && position === 'left' && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tmarginRight: isSmtp ? '0px' : '4px',\n\t\t\t\t\t\t\t\t\t\t\twidth: '24px',\n\t\t\t\t\t\t\t\t\t\t\tflexShrink: 0,\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{renderMessageAvatar(message, previousMessage, nextMessage)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t{/* Message bubble */}\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tid={`message-bubble-${\n\t\t\t\t\t\t\t\t\t\tmessage._id ?? `${index}-${messageIdGenerator?.() ?? 'id'}`\n\t\t\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\t\tappType === GiftedChatAppType.Manifest\n\t\t\t\t\t\t\t\t\t\t\t? { width: '100%' }\n\t\t\t\t\t\t\t\t\t\t\t: isSmtp\n\t\t\t\t\t\t\t\t\t\t\t? { display: 'flex', flexGrow: 1, width: '100%' }\n\t\t\t\t\t\t\t\t\t\t\t: {}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{renderMessageBubble(message, previousMessage, nextMessage)}\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t{/* Right avatar or placeholder (for mobile, avatar is hidden) */}\n\t\t\t\t\t\t\t\t{!isMobile && position === 'right' && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tmarginLeft: '4px',\n\t\t\t\t\t\t\t\t\t\t\twidth: '24px',\n\t\t\t\t\t\t\t\t\t\t\tflexShrink: 0,\n\t\t\t\t\t\t\t\t\t\t\talignSelf: 'flex-start',\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{renderMessageAvatar(message, previousMessage, nextMessage)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</React.Fragment>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default forwardRef<HTMLDivElement, GiftedChatProps<IMessage>>(\n\tGiftedChatInner,\n);\n"],"names":["CollapsibleBubbleText","_ref","text","isExpanded","onToggle","textRef","useRef","isOverflowing","setIsOverflowing","useState","useEffect","el","current","style","maxHeight","overflows","scrollHeight","_jsxs","_jsx","jsx","Object","assign","ref","overflow","children","BodySecondary","Button","buttonType","size","buttonText","onClick","GiftedChatInner","props","forwardedRef","_b","messages","user","renderBubble","renderAvatar","renderDay","renderLoading","renderChatEmpty","listViewProps","renderAvatarOnTop","showUserAvatar","showAvatarForEveryMessage","inverted","messageIdGenerator","topThreshold","TOP_THRESHOLD","appType","GiftedChatAppType","Bik","isActivityMessage","extraProps","__rest","isMobile","useWindowSize","internalScrollRef","scrollRef","normalizeRef","scrollState","isInitialMount","isUserScrolling","isLoadingOldMessages","isAtBottom","hasTriggeredEndReached","lastMessagesLength","_a","length","previousScrollHeight","previousScrollTop","scrollTimeout","expandedMessages","setExpandedMessages","Set","reversedMessages","useMemo","reverse","scrollToBottom","useScrollToBottom","useImperativeHandle","useInitialMountScroll","useScrollCleanup","useRestoreScrollPosition","useAutoScrollOnNewMessages","useResizeObserverForFirstMessage","handleScroll","useScrollHandler","onEndReached","onScroll","isUserMessage","useCallback","message","Boolean","_id","shouldShowAvatar","previousMessage","renderMessageBubble","nextMessage","position","isTopOfStack","isBottomOfStack","_c","_d","bubbleProps","currentMessage","messageId","has","maxWidth","Manifest","width","minWidth","padding","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","border","backgroundColor","COLORS","background","brandTint","brandLight","pureWhite","inactive","color","content","primary","wordBreak","_e","prev","next","delete","add","renderMessageAvatar","flex","overflowY","overflowX","display","flexDirection","height","map","index","isSmtp","MESSAGE_CHANNELS","SMTP","shouldShowDay","isSameDay","placement","getMessagePlacement","isCentered","shouldCenterAlign","isPrivateNote","Constants","ChatActivity","Category","ACTIVITY","Type","PRIVATE_NOTE","jsxs","React","Fragment","createdAt","Day","margin","alignItems","marginRight","marginLeft","justifyContent","marginBottom","flexShrink","id","flexGrow","alignSelf","_f","_Fragment","GiftedChat","forwardRef"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as e,jsx as i}from"react/jsx-runtime";import t,{useMemo as n,useCallback as l}from"react";import{COLORS as o}from"../../../constants/Theme.js";import{useWindowSize as r}from"../../../hooks/useWindowSize.js";import{MESSAGE_CHANNELS as s}from"../GiftedChat/types.js";import{Constants as a,isStringifiedArray as d}from"../GiftedChat/utils.js";import{GiftedChatAppType as c}from"./types.js";const g=t=>{var g,u,v,f,m
|
|
1
|
+
import{jsxs as e,jsx as i}from"react/jsx-runtime";import t,{useMemo as n,useCallback as l}from"react";import{COLORS as o}from"../../../constants/Theme.js";import{useWindowSize as r}from"../../../hooks/useWindowSize.js";import{MESSAGE_CHANNELS as s}from"../GiftedChat/types.js";import{Constants as a,isStringifiedArray as d}from"../GiftedChat/utils.js";import{GiftedChatAppType as c}from"./types.js";const g=t=>{var g,u,v,f,h,m;const{currentMessage:b,position:y,renderMessageText:p,renderTicks:j,renderTime:T,renderCustomView:I,isCustomViewBottom:O,isUnsatisfactoryMessageFn:k,messagesGroupedByAiTraceId:x,onPress:C,containerStyle:A,bubbleStyles:M,appType:w=c.Bik}=t,G=r(),P=b,B=w===c.Manifest,S=n((()=>P.category===a.ChatActivity.Category.ACTIVITY&&P.activityType===a.ChatActivity.Type.PRIVATE_NOTE),[P.category,P.activityType]),N=n((()=>{const[e,i]=d(null==P?void 0:P.message);return e&&i&&Array.isArray(i)}),[null==P?void 0:P.message]),V=(null==P?void 0:P.channelId)===s.SMTP||(null==P?void 0:P.channelName)===s.SMTP,L=n((()=>{var e,i,t;const n={borderRadius:8,minHeight:20,margin:0,flexGrow:G?1:0,width:"100%"},l=(null==P?void 0:P.channelId)===s.GMAIL||(null==P?void 0:P.channelName)===s.GMAIL;let r={};if(B)return r="left"===y?M&&"object"==typeof M.left?M.left:{}:M&&"object"==typeof M.right?M.right:{},Object.assign({},r);if("left"===y)r=Object.assign(Object.assign({},G||l||V?{maxWidth:"100%"}:{}),S?{background:o.background.warning.light}:{backgroundColor:(null==P?void 0:P.isPrivateMail)?o.background.blue.light:o.surface.standard});else{const i=k&&k({aiTraceId:null===(e=P.eventProperties)||void 0===e?void 0:e.aiTraceId,messagesGroupedByAiTraceId:x});r=Object.assign(Object.assign({backgroundColor:"failed"===P.status||i?o.background.negative.light:o.background.brandUltraLight},S?{background:o.background.warning.light}:{}),!G&&N?{maxWidth:500}:{})}const a=M&&"object"==typeof M?"left"in M||"right"in M?"left"===y?null!==(i=M.left)&&void 0!==i?i:{}:null!==(t=M.right)&&void 0!==t?t:{}:M:{};return Object.assign(Object.assign(Object.assign({},n),r),a)}),[null==P?void 0:P.channelId,null==P?void 0:P.channelName,null===(g=null==P?void 0:P.meta)||void 0===g?void 0:g.aiUsed,null==P?void 0:P.status,null===(u=null==P?void 0:P.eventProperties)||void 0===u?void 0:u.aiTraceId,y,G,S,N,k,x,null==P?void 0:P.isPrivateMail,M,B]),U=l((()=>e("div",{children:[!O&&(null==I?void 0:I(t)),null==p?void 0:p(t),O&&(null==I?void 0:I(t))]})),[O,I,p,t]),W=n((()=>B&&"object"==typeof A?"left"===y&&"left"in A&&A.left&&"object"==typeof A.left?A.left:"right"===y&&"right"in A&&A.right&&"object"==typeof A.right?A.right:{}:{}),[B,A,y]),E=!B&&A&&"object"==typeof A?"left"in A||"right"in A?"left"===y?null!==(v=A.left)&&void 0!==v?v:{}:null!==(f=A.right)&&void 0!==f?f:{}:A:{};return i("div",Object.assign({style:Object.assign(Object.assign(Object.assign({display:"flex",marginTop:B?0:6,marginBottom:B?0:(null===(m=null===(h=null==b?void 0:b.messageInformation)||void 0===h?void 0:h.reactions)||void 0===m?void 0:m.length)>0?24:6,flexGrow:G?1:0},B?Object.assign({alignItems:"flex-end"},"right"===y?{cursor:"pointer"}:{}):{}),W),E)},B?{onClick:C}:{},{children:i("div",Object.assign({style:L},{children:e("div",{children:[i("div",Object.assign({id:b.chatActivityId||`message-${b.psqlId}`},{children:U()})),e("div",Object.assign({style:{display:"flex",flexDirection:"row",justifyContent:"flex-end"}},{children:[null==T?void 0:T(t),null==j?void 0:j(b)]}))]})}))}))},u=t.memo(g);export{u as Bubble,u as default};
|
|
2
2
|
//# sourceMappingURL=Bubble.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Bubble.js","sources":["../../../../../src/components/BikGiftedChat/Bubble/Bubble.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react';\nimport { COLORS } from '../../../constants/Theme';\nimport { useWindowSize } from '../../../hooks/useWindowSize';\nimport { MESSAGE_CHANNELS } from '../GiftedChat/types';\nimport { Constants, isStringifiedArray } from '../GiftedChat/utils';\nimport { IMessage } from '../types';\nimport { BubbleProps, GiftedChatAppType } from './types';\n\nconst BubbleComponent = <TMessage extends IMessage = IMessage>(\n\tprops: BubbleProps<TMessage>,\n): React.ReactElement => {\n\tconst {\n\t\tcurrentMessage,\n\t\tposition,\n\t\trenderMessageText,\n\t\trenderTicks,\n\t\trenderTime,\n\t\trenderCustomView,\n\t\tisCustomViewBottom,\n\t\tisUnsatisfactoryMessageFn,\n\t\tmessagesGroupedByAiTraceId,\n\t\tonPress,\n\t\tcontainerStyle,\n\t\tbubbleStyles,\n\t\tappType = GiftedChatAppType.Bik,\n\t} = props;\n\n\tconst isMobile = useWindowSize();\n\tconst message = currentMessage as any;\n\tconst isManifestApp = appType === GiftedChatAppType.Manifest;\n\n\t// Check if message is a private note\n\tconst isPrivateNote = useMemo(\n\t\t() =>\n\t\t\tmessage.category === Constants.ChatActivity.Category.ACTIVITY &&\n\t\t\tmessage.activityType === Constants.ChatActivity.Type.PRIVATE_NOTE,\n\t\t[message.category, message.activityType],\n\t);\n\n\t// Check if message is a carousel (array of items)\n\tconst isCarouselMessage = useMemo(() => {\n\t\tconst [parsedSuccessfully, parsedMessage] = isStringifiedArray(\n\t\t\tmessage?.message,\n\t\t);\n\t\treturn parsedSuccessfully && parsedMessage && Array.isArray(parsedMessage);\n\t}, [message?.message]);\n\tconst isSmtp =\n\t\tmessage?.channelId === MESSAGE_CHANNELS.SMTP ||\n\t\tmessage?.channelName === MESSAGE_CHANNELS.SMTP;\n\n\t// Generates wrapper styles for the message bubble\n\t// Handles position-based styling, channel-specific layouts, and message states\n\tconst wrapperStyles = useMemo((): React.CSSProperties => {\n\t\tconst baseStyles: React.CSSProperties = {\n\t\t\tborderRadius: 8,\n\t\t\tminHeight: 20,\n\t\t\tmargin: 0,\n\t\t\tflexGrow: isMobile ? 1 : 0,\n\t\t};\n\n\t\t// Check if message is from email channels\n\t\tconst isGmail =\n\t\t\tmessage?.channelId === MESSAGE_CHANNELS.GMAIL ||\n\t\t\tmessage?.channelName === MESSAGE_CHANNELS.GMAIL;\n\n\t\tlet dynamicStyles: React.CSSProperties = {};\n\n\t\tif (isManifestApp) {\n\t\t\tif (position === 'left') {\n\t\t\t\tdynamicStyles =\n\t\t\t\t\tbubbleStyles && typeof bubbleStyles.left === 'object'\n\t\t\t\t\t\t? bubbleStyles.left\n\t\t\t\t\t\t: {};\n\t\t\t} else {\n\t\t\t\tdynamicStyles =\n\t\t\t\t\tbubbleStyles && typeof bubbleStyles.right === 'object'\n\t\t\t\t\t\t? bubbleStyles.right\n\t\t\t\t\t\t: {};\n\t\t\t}\n\t\t\treturn { ...dynamicStyles };\n\t\t} else {\n\t\t\tif (position === 'left') {\n\t\t\t\tdynamicStyles = {\n\t\t\t\t\t...(isMobile || isGmail || isSmtp ? { maxWidth: '100%' } : {}),\n\t\t\t\t\t...(isPrivateNote\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tbackground: COLORS.background.warning.light,\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\tbackgroundColor: message?.isPrivateMail\n\t\t\t\t\t\t\t\t\t? COLORS.background.blue.light\n\t\t\t\t\t\t\t\t\t: COLORS.surface.standard,\n\t\t\t\t\t\t }),\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tconst isUnsatisfactory =\n\t\t\t\t\tisUnsatisfactoryMessageFn &&\n\t\t\t\t\tisUnsatisfactoryMessageFn({\n\t\t\t\t\t\taiTraceId: message.eventProperties?.aiTraceId,\n\t\t\t\t\t\tmessagesGroupedByAiTraceId,\n\t\t\t\t\t});\n\n\t\t\t\tdynamicStyles = {\n\t\t\t\t\tbackgroundColor:\n\t\t\t\t\t\tmessage.status === 'failed' || isUnsatisfactory\n\t\t\t\t\t\t\t? COLORS.background.negative.light\n\t\t\t\t\t\t\t: COLORS.background.brandUltraLight,\n\t\t\t\t\t...(isPrivateNote\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tbackground: COLORS.background.warning.light,\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: {}),\n\t\t\t\t\t...(!isMobile && isCarouselMessage ? { maxWidth: 500 } : {}),\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\tconst extraBubbleStyles: React.CSSProperties =\n\t\t\tbubbleStyles && typeof bubbleStyles === 'object'\n\t\t\t\t? 'left' in bubbleStyles || 'right' in bubbleStyles\n\t\t\t\t\t? position === 'left'\n\t\t\t\t\t\t? (bubbleStyles as { left?: React.CSSProperties }).left ?? {}\n\t\t\t\t\t\t: (bubbleStyles as { right?: React.CSSProperties }).right ?? {}\n\t\t\t\t\t: (bubbleStyles as React.CSSProperties)\n\t\t\t\t: {};\n\n\t\treturn { ...baseStyles, ...dynamicStyles, ...extraBubbleStyles };\n\t}, [\n\t\tmessage?.channelId,\n\t\tmessage?.channelName,\n\t\tmessage?.meta?.aiUsed,\n\t\tmessage?.status,\n\t\tmessage?.eventProperties?.aiTraceId,\n\t\tposition,\n\t\tisMobile,\n\t\tisPrivateNote,\n\t\tisCarouselMessage,\n\t\tisUnsatisfactoryMessageFn,\n\t\tmessagesGroupedByAiTraceId,\n\t\tmessage?.isPrivateMail,\n\t\tbubbleStyles,\n\t\tisManifestApp,\n\t]);\n\n\t// Renders the content of the message bubble\n\t// Handles custom views and message text in the correct order\n\tconst renderContent = useCallback(() => {\n\t\treturn (\n\t\t\t<div>\n\t\t\t\t{!isCustomViewBottom && renderCustomView?.(props)}\n\n\t\t\t\t{renderMessageText?.(props)}\n\n\t\t\t\t{isCustomViewBottom && renderCustomView?.(props)}\n\t\t\t</div>\n\t\t);\n\t}, [isCustomViewBottom, renderCustomView, renderMessageText, props]);\n\n\tconst manifestContainerStyle = useMemo(() => {\n\t\tif (!isManifestApp || typeof containerStyle !== 'object') return {};\n\t\tif (\n\t\t\tposition === 'left' &&\n\t\t\t'left' in containerStyle &&\n\t\t\tcontainerStyle.left &&\n\t\t\ttypeof containerStyle.left === 'object'\n\t\t) {\n\t\t\treturn containerStyle.left;\n\t\t}\n\t\tif (\n\t\t\tposition === 'right' &&\n\t\t\t'right' in containerStyle &&\n\t\t\tcontainerStyle.right &&\n\t\t\ttypeof containerStyle.right === 'object'\n\t\t) {\n\t\t\treturn containerStyle.right;\n\t\t}\n\t\treturn {};\n\t}, [isManifestApp, containerStyle, position]);\n\n\tconst extraContainerStyle: React.CSSProperties =\n\t\t!isManifestApp && containerStyle && typeof containerStyle === 'object'\n\t\t\t? 'left' in containerStyle || 'right' in containerStyle\n\t\t\t\t? position === 'left'\n\t\t\t\t\t? (containerStyle as { left?: React.CSSProperties }).left ?? {}\n\t\t\t\t\t: (containerStyle as { right?: React.CSSProperties }).right ?? {}\n\t\t\t\t: (containerStyle as React.CSSProperties)\n\t\t\t: {};\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tdisplay: 'flex',\n\t\t\t\tmarginTop: isManifestApp ? 0 : 6,\n\t\t\t\tmarginBottom: isManifestApp\n\t\t\t\t\t? 0\n\t\t\t\t\t: currentMessage?.['messageInformation']?.reactions?.length > 0\n\t\t\t\t\t? 24\n\t\t\t\t\t: 6,\n\t\t\t\tflexGrow: isMobile ? 1 : 0,\n\t\t\t\t...(isManifestApp && !isSmtp\n\t\t\t\t\t? {\n\t\t\t\t\t\t\talignItems: 'flex-end',\n\t\t\t\t\t\t\t...(position === 'right' ? { cursor: 'pointer' } : {}),\n\t\t\t\t\t }\n\t\t\t\t\t: {}),\n\t\t\t\t...manifestContainerStyle,\n\t\t\t\t...extraContainerStyle,\n\t\t\t}}\n\t\t\t{...(isManifestApp ? { onClick: onPress } : {})}\n\t\t>\n\t\t\t<div style={wrapperStyles}>\n\t\t\t\t<div>\n\t\t\t\t\t{/* Message content */}\n\t\t\t\t\t<div\n\t\t\t\t\t\tid={\n\t\t\t\t\t\t\tcurrentMessage['chatActivityId'] ||\n\t\t\t\t\t\t\t`message-${currentMessage['psqlId']}`\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{renderContent()}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{/* Message metadata (time and status) */}\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\tflexDirection: 'row',\n\t\t\t\t\t\t\tjustifyContent: 'flex-end',\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{renderTime?.(props)}\n\t\t\t\t\t\t{renderTicks?.(currentMessage)}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\n// Export memoized version for performance\nexport const Bubble = React.memo(BubbleComponent) as typeof BubbleComponent;\n\nexport default Bubble;\n"],"names":["BubbleComponent","props","currentMessage","position","renderMessageText","renderTicks","renderTime","renderCustomView","isCustomViewBottom","isUnsatisfactoryMessageFn","messagesGroupedByAiTraceId","onPress","containerStyle","bubbleStyles","appType","GiftedChatAppType","Bik","isMobile","useWindowSize","message","isManifestApp","Manifest","isPrivateNote","useMemo","category","Constants","ChatActivity","Category","ACTIVITY","activityType","Type","PRIVATE_NOTE","isCarouselMessage","parsedSuccessfully","parsedMessage","isStringifiedArray","Array","isArray","isSmtp","channelId","MESSAGE_CHANNELS","SMTP","channelName","wrapperStyles","baseStyles","borderRadius","minHeight","margin","flexGrow","isGmail","GMAIL","dynamicStyles","left","right","Object","assign","maxWidth","background","COLORS","warning","light","backgroundColor","isPrivateMail","blue","surface","standard","isUnsatisfactory","aiTraceId","_a","eventProperties","status","negative","brandUltraLight","extraBubbleStyles","_b","_c","meta","aiUsed","renderContent","useCallback","_jsxs","children","manifestContainerStyle","extraContainerStyle","_d","_jsx","style","display","marginTop","marginBottom","_f","_e","reactions","length","alignItems","cursor","onClick","id","flexDirection","justifyContent","Bubble","React","memo"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Bubble.js","sources":["../../../../../src/components/BikGiftedChat/Bubble/Bubble.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react';\nimport { COLORS } from '../../../constants/Theme';\nimport { useWindowSize } from '../../../hooks/useWindowSize';\nimport { MESSAGE_CHANNELS } from '../GiftedChat/types';\nimport { Constants, isStringifiedArray } from '../GiftedChat/utils';\nimport { IMessage } from '../types';\nimport { BubbleProps, GiftedChatAppType } from './types';\n\nconst BubbleComponent = <TMessage extends IMessage = IMessage>(\n\tprops: BubbleProps<TMessage>,\n): React.ReactElement => {\n\tconst {\n\t\tcurrentMessage,\n\t\tposition,\n\t\trenderMessageText,\n\t\trenderTicks,\n\t\trenderTime,\n\t\trenderCustomView,\n\t\tisCustomViewBottom,\n\t\tisUnsatisfactoryMessageFn,\n\t\tmessagesGroupedByAiTraceId,\n\t\tonPress,\n\t\tcontainerStyle,\n\t\tbubbleStyles,\n\t\tappType = GiftedChatAppType.Bik,\n\t} = props;\n\n\tconst isMobile = useWindowSize();\n\tconst message = currentMessage as any;\n\tconst isManifestApp = appType === GiftedChatAppType.Manifest;\n\n\t// Check if message is a private note\n\tconst isPrivateNote = useMemo(\n\t\t() =>\n\t\t\tmessage.category === Constants.ChatActivity.Category.ACTIVITY &&\n\t\t\tmessage.activityType === Constants.ChatActivity.Type.PRIVATE_NOTE,\n\t\t[message.category, message.activityType],\n\t);\n\n\t// Check if message is a carousel (array of items)\n\tconst isCarouselMessage = useMemo(() => {\n\t\tconst [parsedSuccessfully, parsedMessage] = isStringifiedArray(\n\t\t\tmessage?.message,\n\t\t);\n\t\treturn parsedSuccessfully && parsedMessage && Array.isArray(parsedMessage);\n\t}, [message?.message]);\n\tconst isSmtp =\n\t\tmessage?.channelId === MESSAGE_CHANNELS.SMTP ||\n\t\tmessage?.channelName === MESSAGE_CHANNELS.SMTP;\n\n\t// Generates wrapper styles for the message bubble\n\t// Handles position-based styling, channel-specific layouts, and message states\n\tconst wrapperStyles = useMemo((): React.CSSProperties => {\n\t\tconst baseStyles: React.CSSProperties = {\n\t\t\tborderRadius: 8,\n\t\t\tminHeight: 20,\n\t\t\tmargin: 0,\n\t\t\tflexGrow: isMobile ? 1 : 0,\n\t\t\twidth: '100%',\n\t\t};\n\n\t\t// Check if message is from email channels\n\t\tconst isGmail =\n\t\t\tmessage?.channelId === MESSAGE_CHANNELS.GMAIL ||\n\t\t\tmessage?.channelName === MESSAGE_CHANNELS.GMAIL;\n\n\t\tlet dynamicStyles: React.CSSProperties = {};\n\n\t\tif (isManifestApp) {\n\t\t\tif (position === 'left') {\n\t\t\t\tdynamicStyles =\n\t\t\t\t\tbubbleStyles && typeof bubbleStyles.left === 'object'\n\t\t\t\t\t\t? bubbleStyles.left\n\t\t\t\t\t\t: {};\n\t\t\t} else {\n\t\t\t\tdynamicStyles =\n\t\t\t\t\tbubbleStyles && typeof bubbleStyles.right === 'object'\n\t\t\t\t\t\t? bubbleStyles.right\n\t\t\t\t\t\t: {};\n\t\t\t}\n\t\t\treturn { ...dynamicStyles };\n\t\t} else {\n\t\t\tif (position === 'left') {\n\t\t\t\tdynamicStyles = {\n\t\t\t\t\t...(isMobile || isGmail || isSmtp ? { maxWidth: '100%' } : {}),\n\t\t\t\t\t...(isPrivateNote\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tbackground: COLORS.background.warning.light,\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\tbackgroundColor: message?.isPrivateMail\n\t\t\t\t\t\t\t\t\t? COLORS.background.blue.light\n\t\t\t\t\t\t\t\t\t: COLORS.surface.standard,\n\t\t\t\t\t\t }),\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tconst isUnsatisfactory =\n\t\t\t\t\tisUnsatisfactoryMessageFn &&\n\t\t\t\t\tisUnsatisfactoryMessageFn({\n\t\t\t\t\t\taiTraceId: message.eventProperties?.aiTraceId,\n\t\t\t\t\t\tmessagesGroupedByAiTraceId,\n\t\t\t\t\t});\n\n\t\t\t\tdynamicStyles = {\n\t\t\t\t\tbackgroundColor:\n\t\t\t\t\t\tmessage.status === 'failed' || isUnsatisfactory\n\t\t\t\t\t\t\t? COLORS.background.negative.light\n\t\t\t\t\t\t\t: COLORS.background.brandUltraLight,\n\t\t\t\t\t...(isPrivateNote\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tbackground: COLORS.background.warning.light,\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: {}),\n\t\t\t\t\t...(!isMobile && isCarouselMessage ? { maxWidth: 500 } : {}),\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\tconst extraBubbleStyles: React.CSSProperties =\n\t\t\tbubbleStyles && typeof bubbleStyles === 'object'\n\t\t\t\t? 'left' in bubbleStyles || 'right' in bubbleStyles\n\t\t\t\t\t? position === 'left'\n\t\t\t\t\t\t? (bubbleStyles as { left?: React.CSSProperties }).left ?? {}\n\t\t\t\t\t\t: (bubbleStyles as { right?: React.CSSProperties }).right ?? {}\n\t\t\t\t\t: (bubbleStyles as React.CSSProperties)\n\t\t\t\t: {};\n\n\t\treturn { ...baseStyles, ...dynamicStyles, ...extraBubbleStyles };\n\t}, [\n\t\tmessage?.channelId,\n\t\tmessage?.channelName,\n\t\tmessage?.meta?.aiUsed,\n\t\tmessage?.status,\n\t\tmessage?.eventProperties?.aiTraceId,\n\t\tposition,\n\t\tisMobile,\n\t\tisPrivateNote,\n\t\tisCarouselMessage,\n\t\tisUnsatisfactoryMessageFn,\n\t\tmessagesGroupedByAiTraceId,\n\t\tmessage?.isPrivateMail,\n\t\tbubbleStyles,\n\t\tisManifestApp,\n\t]);\n\n\t// Renders the content of the message bubble\n\t// Handles custom views and message text in the correct order\n\tconst renderContent = useCallback(() => {\n\t\treturn (\n\t\t\t<div>\n\t\t\t\t{!isCustomViewBottom && renderCustomView?.(props)}\n\n\t\t\t\t{renderMessageText?.(props)}\n\n\t\t\t\t{isCustomViewBottom && renderCustomView?.(props)}\n\t\t\t</div>\n\t\t);\n\t}, [isCustomViewBottom, renderCustomView, renderMessageText, props]);\n\n\tconst manifestContainerStyle = useMemo(() => {\n\t\tif (!isManifestApp || typeof containerStyle !== 'object') return {};\n\t\tif (\n\t\t\tposition === 'left' &&\n\t\t\t'left' in containerStyle &&\n\t\t\tcontainerStyle.left &&\n\t\t\ttypeof containerStyle.left === 'object'\n\t\t) {\n\t\t\treturn containerStyle.left;\n\t\t}\n\t\tif (\n\t\t\tposition === 'right' &&\n\t\t\t'right' in containerStyle &&\n\t\t\tcontainerStyle.right &&\n\t\t\ttypeof containerStyle.right === 'object'\n\t\t) {\n\t\t\treturn containerStyle.right;\n\t\t}\n\t\treturn {};\n\t}, [isManifestApp, containerStyle, position]);\n\n\tconst extraContainerStyle: React.CSSProperties =\n\t\t!isManifestApp && containerStyle && typeof containerStyle === 'object'\n\t\t\t? 'left' in containerStyle || 'right' in containerStyle\n\t\t\t\t? position === 'left'\n\t\t\t\t\t? (containerStyle as { left?: React.CSSProperties }).left ?? {}\n\t\t\t\t\t: (containerStyle as { right?: React.CSSProperties }).right ?? {}\n\t\t\t\t: (containerStyle as React.CSSProperties)\n\t\t\t: {};\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tdisplay: 'flex',\n\t\t\t\tmarginTop: isManifestApp ? 0 : 6,\n\t\t\t\tmarginBottom: isManifestApp\n\t\t\t\t\t? 0\n\t\t\t\t\t: currentMessage?.['messageInformation']?.reactions?.length > 0\n\t\t\t\t\t? 24\n\t\t\t\t\t: 6,\n\t\t\t\tflexGrow: isMobile ? 1 : 0,\n\t\t\t\t...(isManifestApp\n\t\t\t\t\t? {\n\t\t\t\t\t\t\talignItems: 'flex-end',\n\t\t\t\t\t\t\t...(position === 'right' ? { cursor: 'pointer' } : {}),\n\t\t\t\t\t }\n\t\t\t\t\t: {}),\n\t\t\t\t...manifestContainerStyle,\n\t\t\t\t...extraContainerStyle,\n\t\t\t}}\n\t\t\t{...(isManifestApp ? { onClick: onPress } : {})}\n\t\t>\n\t\t\t<div style={wrapperStyles}>\n\t\t\t\t<div>\n\t\t\t\t\t{/* Message content */}\n\t\t\t\t\t<div\n\t\t\t\t\t\tid={\n\t\t\t\t\t\t\tcurrentMessage['chatActivityId'] ||\n\t\t\t\t\t\t\t`message-${currentMessage['psqlId']}`\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{renderContent()}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{/* Message metadata (time and status) */}\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\tflexDirection: 'row',\n\t\t\t\t\t\t\tjustifyContent: 'flex-end',\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{renderTime?.(props)}\n\t\t\t\t\t\t{renderTicks?.(currentMessage)}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\n// Export memoized version for performance\nexport const Bubble = React.memo(BubbleComponent) as typeof BubbleComponent;\n\nexport default Bubble;\n"],"names":["BubbleComponent","props","currentMessage","position","renderMessageText","renderTicks","renderTime","renderCustomView","isCustomViewBottom","isUnsatisfactoryMessageFn","messagesGroupedByAiTraceId","onPress","containerStyle","bubbleStyles","appType","GiftedChatAppType","Bik","isMobile","useWindowSize","message","isManifestApp","Manifest","isPrivateNote","useMemo","category","Constants","ChatActivity","Category","ACTIVITY","activityType","Type","PRIVATE_NOTE","isCarouselMessage","parsedSuccessfully","parsedMessage","isStringifiedArray","Array","isArray","isSmtp","channelId","MESSAGE_CHANNELS","SMTP","channelName","wrapperStyles","baseStyles","borderRadius","minHeight","margin","flexGrow","width","isGmail","GMAIL","dynamicStyles","left","right","Object","assign","maxWidth","background","COLORS","warning","light","backgroundColor","isPrivateMail","blue","surface","standard","isUnsatisfactory","aiTraceId","_a","eventProperties","status","negative","brandUltraLight","extraBubbleStyles","_b","_c","meta","aiUsed","renderContent","useCallback","_jsxs","children","manifestContainerStyle","extraContainerStyle","_d","_jsx","style","display","marginTop","marginBottom","_f","_e","reactions","length","alignItems","cursor","onClick","id","flexDirection","justifyContent","Bubble","React","memo"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__rest as e}from"../../../_virtual/_tslib.js";import{jsx as t,Fragment as r,jsxs as i}from"react/jsx-runtime";import n,{forwardRef as s,useRef as o,useState as l,useMemo as a,useImperativeHandle as d,useCallback as g,useEffect as u}from"react";import{COLORS as c}from"../../../constants/Theme.js";import{useWindowSize as h}from"../../../hooks/useWindowSize.js";import{Button as v}from"../../button/Button.js";import{BodySecondary as p}from"../../TypographyStyle.js";import{GiftedChatAppType as m}from"../Bubble/types.js";import{Day as f}from"./Day.js";import{getMessagePlacement as b,shouldCenterAlign as
|
|
1
|
+
import{__rest as e}from"../../../_virtual/_tslib.js";import{jsx as t,Fragment as r,jsxs as i}from"react/jsx-runtime";import n,{forwardRef as s,useRef as o,useState as l,useMemo as a,useImperativeHandle as d,useCallback as g,useEffect as u}from"react";import{COLORS as c}from"../../../constants/Theme.js";import{useWindowSize as h}from"../../../hooks/useWindowSize.js";import{Button as v}from"../../button/Button.js";import{BodySecondary as p}from"../../TypographyStyle.js";import{GiftedChatAppType as m}from"../Bubble/types.js";import{Day as f}from"./Day.js";import{getMessagePlacement as b,shouldCenterAlign as x}from"./messageHelpers.js";import{useScrollToBottom as y,useInitialMountScroll as j,useScrollCleanup as T,useRestoreScrollPosition as w,useAutoScrollOnNewMessages as M,useResizeObserverForFirstMessage as O,useScrollHandler as A}from"./scrollHooks.js";import{MESSAGE_CHANNELS as _}from"./types.js";import{TOP_THRESHOLD as S,normalizeRef as k,isSameDay as R,Constants as B}from"./utils.js";const E=e=>{let{text:n,isExpanded:s,onToggle:a}=e;const d=o(null),[g,c]=l(!1);return u((()=>{const e=d.current;if(e){e.style.maxHeight="none";const t=e.scrollHeight>204;e.style.maxHeight=s?"none":"204px",c(t)}}),[n,s]),i(r,{children:[t("div",Object.assign({ref:d,style:{maxHeight:s?"none":204,overflow:"hidden"}},{children:t(p,{children:n})})),g&&t(v,{buttonType:"text",size:"xs",buttonText:s?"Show less":"Read more",onClick:a})]})};var H=s(((s,u)=>{var v;const p=s||{},{messages:H=[],user:L,renderBubble:C,renderAvatar:I,renderDay:D,renderLoading:P,renderChatEmpty:$,listViewProps:F={},renderAvatarOnTop:U=!1,showUserAvatar:V=!1,showAvatarForEveryMessage:W=!1,inverted:G=!1,messageIdGenerator:z,topThreshold:N=S,appType:Y=m.Bik,maxHeight:X,isActivityMessage:q}=p,J=e(p,["messages","user","renderBubble","renderAvatar","renderDay","renderLoading","renderChatEmpty","listViewProps","renderAvatarOnTop","showUserAvatar","showAvatarForEveryMessage","inverted","messageIdGenerator","topThreshold","appType","maxHeight","isActivityMessage"]),K=h(),Q=o(null),Z=k(F.ref||u,Q),ee=o({isInitialMount:!0,isUserScrolling:!1,isLoadingOldMessages:!1,isAtBottom:!0,hasTriggeredEndReached:!1,lastMessagesLength:null!==(v=null==H?void 0:H.length)&&void 0!==v?v:0,previousScrollHeight:0,previousScrollTop:0,scrollTimeout:null}),[te,re]=l(new Set),ie=a((()=>H&&0!==H.length?[...H].reverse():[]),[H]),ne=y(Z,ee);d(u,(()=>Z.current)),j(Z,ee,ie.length,ne),T(ee),w(Z,ee,ie.length),M(Z,ee,H.length,ne),O(null==H?void 0:H[0],ee,ne,z);const se=A(ee,F.onEndReached,F.onScroll,N),oe=g((e=>{var t;return Boolean(e&&L&&(null===(t=e.user)||void 0===t?void 0:t._id)===L._id)}),[L]),le=g(((e,t)=>!!V&&(!!W||(!t||!!q&&q(e)||!!q&&q(t)||t.user._id!==e.user._id))),[V,W,q]),ae=g(((e,r,i)=>{var n,s,o,l,a;const d=oe(e)?"right":"left",g=(null===(n=null==r?void 0:r.user)||void 0===n?void 0:n._id)!==(null===(s=null==e?void 0:e.user)||void 0===s?void 0:s._id),u=(null===(o=null==i?void 0:i.user)||void 0===o?void 0:o._id)!==(null===(l=null==e?void 0:e.user)||void 0===l?void 0:l._id),h=Object.assign({currentMessage:e,previousMessage:r,nextMessage:i,position:d,user:L},J);if(C)return C(h);const v=e._id,p=te.has(v);return t("div",Object.assign({style:Object.assign(Object.assign({maxWidth:Y===m.Manifest?"50%":"70%",width:"fit-content"},Y===m.Manifest?{minWidth:"130px"}:{}),{padding:"8px 12px",borderTopLeftRadius:"left"===d?g?12:2:12,borderTopRightRadius:"right"===d?g?12:2:12,borderBottomLeftRadius:"left"===d?u?12:2:12,borderBottomRightRadius:"right"===d?u?12:2:12,border:"left"===d&&Y===m.Manifest?"1px solid rgb(224, 224, 224)":"none",backgroundColor:"right"===d?Y===m.Manifest?c.background.brandTint:c.background.brandLight:Y===m.Manifest?c.background.pureWhite:c.background.inactive,color:c.content.primary,wordBreak:"break-word"})},{children:t(E,{text:null!==(a=e.text)&&void 0!==a?a:"",isExpanded:p,onToggle:()=>re((e=>{const t=new Set(e);return p?t.delete(v):t.add(v),t}))})}))}),[oe,L,C,J,te]),de=g(((e,t,r)=>{if(!le(e,t))return null;const i=oe(e)?"right":"left";return I?I({currentMessage:e,previousMessage:t,nextMessage:r,position:i,user:L,renderAvatarOnTop:U,showUserAvatar:V,showAvatarForEveryMessage:W}):null}),[le,oe,L,U,V,W,I]);return H&&0!==H.length?i("div",Object.assign({ref:Z,style:Object.assign(Object.assign({flex:1,overflowY:"auto",overflowX:"hidden",display:"flex",flexDirection:"column"},X?{maxHeight:X,height:X}:{}),F.style),onScroll:se},{children:[t("div",{style:{flex:"1 0 auto"}}),t("div",Object.assign({style:{display:"flex",flexDirection:"column",flex:"0 0 auto"}},{children:ie.map(((e,r)=>{var s,o,l,a,d,g;const u=(null==e?void 0:e.channelId)===_.SMTP||(null==e?void 0:e.channelName)===_.SMTP,c=u?"left":oe(e)?"right":"left",h=ie[r-1],v=ie[r+1],p=!R(e,h),y=b(e,c),j=x(e),T=e.category===B.ChatActivity.Category.ACTIVITY&&e.activityType===B.ChatActivity.Type.PRIVATE_NOTE;return i(n.Fragment,{children:[p&&(D?D({createdAt:e.createdAt}):t(f,{createdAt:e.createdAt,appType:Y})),i("div",Object.assign({style:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},K?{margin:"0 4px"}:{}),j?{}:{display:"flex",alignItems:"flex-start"}),Y!==m.Manifest?K||"right"!==c?{marginRight:8}:{marginLeft:8}:{}),u&&!T&&K?{marginLeft:8,marginRight:8}:{}),{justifyContent:y,marginBottom:v?(null===(s=null==v?void 0:v.user)||void 0===s?void 0:s._id)===(null===(o=null==e?void 0:e.user)||void 0===o?void 0:o._id)?4:20:0})},{children:[!K&&"left"===c&&t("div",Object.assign({style:{marginRight:u?"0px":"4px",width:"24px",flexShrink:0}},{children:de(e,h,v)})),t("div",Object.assign({id:`message-bubble-${null!==(l=e._id)&&void 0!==l?l:`${r}-${null!==(a=null==z?void 0:z())&&void 0!==a?a:"id"}`}`,style:Y===m.Manifest?{width:"100%"}:u?{display:"flex",flexGrow:1,width:"100%"}:{}},{children:ae(e,h,v)})),!K&&"right"===c&&t("div",Object.assign({style:{marginLeft:"4px",width:"24px",flexShrink:0,alignSelf:"flex-start"}},{children:de(e,h,v)}))]}))]},null!==(d=e._id)&&void 0!==d?d:`${r}-${null!==(g=null==z?void 0:z())&&void 0!==g?g:"id"}`)}))}))]})):$?t(r,{children:$()}):null}));export{H as default};
|
|
2
2
|
//# sourceMappingURL=GiftedChat.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GiftedChat.js","sources":["../../../../../src/components/BikGiftedChat/GiftedChat/GiftedChat.tsx"],"sourcesContent":["import React, {\n\tforwardRef,\n\tuseCallback,\n\tuseEffect,\n\tuseImperativeHandle,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from 'react';\nimport { COLORS } from '../../../constants/Theme';\nimport { useWindowSize } from '../../../hooks/useWindowSize';\nimport { Button } from '../../button';\nimport { BodySecondary } from '../../TypographyStyle';\nimport { BubbleProps, GiftedChatAppType } from '../Bubble/types';\nimport { IMessage } from '../types';\nimport { Day } from './Day';\nimport { getMessagePlacement, shouldCenterAlign } from './messageHelpers';\nimport {\n\tuseAutoScrollOnNewMessages,\n\tuseInitialMountScroll,\n\tuseResizeObserverForFirstMessage,\n\tuseRestoreScrollPosition,\n\tuseScrollCleanup,\n\tuseScrollHandler,\n\tuseScrollToBottom,\n} from './scrollHooks';\nimport { AvatarProps, GiftedChatProps, MESSAGE_CHANNELS } from './types';\nimport { isSameDay, normalizeRef } from './utils';\nimport { Constants, TOP_THRESHOLD } from './utils';\n\nconst COLLAPSED_MAX_HEIGHT = 204;\n\nconst CollapsibleBubbleText: React.FC<{\n\ttext: string;\n\tisExpanded: boolean;\n\tonToggle: () => void;\n}> = ({ text, isExpanded, onToggle }) => {\n\tconst textRef = useRef<HTMLDivElement>(null);\n\tconst [isOverflowing, setIsOverflowing] = useState(false);\n\n\tuseEffect(() => {\n\t\tconst el = textRef.current;\n\t\tif (el) {\n\t\t\t// Temporarily remove max-height to measure true scroll height\n\t\t\tel.style.maxHeight = 'none';\n\t\t\tconst overflows = el.scrollHeight > COLLAPSED_MAX_HEIGHT;\n\t\t\tel.style.maxHeight = isExpanded ? 'none' : `${COLLAPSED_MAX_HEIGHT}px`;\n\t\t\tsetIsOverflowing(overflows);\n\t\t}\n\t}, [text, isExpanded]);\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tref={textRef}\n\t\t\t\tstyle={{\n\t\t\t\t\tmaxHeight: isExpanded ? 'none' : COLLAPSED_MAX_HEIGHT,\n\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<BodySecondary>{text}</BodySecondary>\n\t\t\t</div>\n\t\t\t{isOverflowing && (\n\t\t\t\t<Button\n\t\t\t\t\tbuttonType=\"text\"\n\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\tbuttonText={isExpanded ? 'Show less' : 'Read more'}\n\t\t\t\t\tonClick={onToggle}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</>\n\t);\n};\n\nconst GiftedChatInner = (\n\tprops: Omit<GiftedChatProps<IMessage>, 'ref'>,\n\tforwardedRef: React.Ref<HTMLDivElement>,\n) => {\n\tconst {\n\t\tmessages = [],\n\t\tuser,\n\t\trenderBubble,\n\t\trenderAvatar,\n\t\trenderDay,\n\t\trenderLoading,\n\t\trenderChatEmpty,\n\t\tlistViewProps = {},\n\t\trenderAvatarOnTop = false,\n\t\tshowUserAvatar = false,\n\t\tshowAvatarForEveryMessage = false,\n\t\tinverted = false,\n\t\tmessageIdGenerator,\n\t\ttopThreshold = TOP_THRESHOLD,\n\t\tappType = GiftedChatAppType.Bik,\n\t\tmaxHeight,\n\t\tisActivityMessage,\n\t\t...extraProps\n\t} = props || {};\n\n\tconst isMobile = useWindowSize();\n\n\tconst internalScrollRef = useRef<HTMLDivElement | null>(null);\n\tconst scrollRef = normalizeRef(\n\t\tlistViewProps.ref || forwardedRef,\n\t\tinternalScrollRef,\n\t);\n\n\tconst scrollState = useRef({\n\t\tisInitialMount: true,\n\t\tisUserScrolling: false,\n\t\tisLoadingOldMessages: false,\n\t\tisAtBottom: true,\n\t\thasTriggeredEndReached: false,\n\t\tlastMessagesLength: messages?.length ?? 0,\n\t\tpreviousScrollHeight: 0,\n\t\tpreviousScrollTop: 0,\n\t\tscrollTimeout: null,\n\t});\n\n\tconst [expandedMessages, setExpandedMessages] = useState<\n\t\tSet<string | number>\n\t>(new Set());\n\n\t// Reverse messages so newest appears last in DOM (natural reading order)\n\tconst reversedMessages = useMemo(() => {\n\t\tif (!messages || messages.length === 0) return [] as IMessage[];\n\t\treturn [...messages].reverse() as IMessage[];\n\t}, [messages]);\n\n\tconst scrollToBottom = useScrollToBottom(scrollRef, scrollState);\n\n\tuseImperativeHandle(forwardedRef, () => scrollRef.current!);\n\n\tuseInitialMountScroll(\n\t\tscrollRef,\n\t\tscrollState,\n\t\treversedMessages.length,\n\t\tscrollToBottom,\n\t);\n\n\tuseScrollCleanup(scrollState);\n\n\tuseRestoreScrollPosition(scrollRef, scrollState, reversedMessages.length);\n\n\tuseAutoScrollOnNewMessages(\n\t\tscrollRef,\n\t\tscrollState,\n\t\tmessages.length,\n\t\tscrollToBottom,\n\t);\n\n\tuseResizeObserverForFirstMessage(\n\t\tmessages?.[0],\n\t\tscrollState,\n\t\tscrollToBottom,\n\t\tmessageIdGenerator,\n\t);\n\n\tconst handleScroll = useScrollHandler(\n\t\tscrollState,\n\t\tlistViewProps.onEndReached,\n\t\tlistViewProps.onScroll,\n\t\ttopThreshold,\n\t);\n\n\t// Check if a message belongs to the current user\n\tconst isUserMessage = useCallback(\n\t\t(message: IMessage) => {\n\t\t\treturn Boolean(message && user && message.user?._id === user._id);\n\t\t},\n\t\t[user],\n\t);\n\n\t// Determine if avatar should be shown for this message\n\tconst shouldShowAvatar = useCallback(\n\t\t(message: IMessage, previousMessage?: IMessage) => {\n\t\t\tif (!showUserAvatar) return false;\n\t\t\tif (showAvatarForEveryMessage) return true;\n\n\t\t\t// Show avatar on the first message in a consecutive sender stack,\n\t\t\t// or when an activity interrupts the stack, or when the current message itself is an activity\n\t\t\treturn (\n\t\t\t\t!previousMessage ||\n\t\t\t\t(isActivityMessage ? isActivityMessage(message) : false) ||\n\t\t\t\t(isActivityMessage ? isActivityMessage(previousMessage) : false) ||\n\t\t\t\tpreviousMessage.user._id !== message.user._id\n\t\t\t);\n\t\t},\n\t\t[showUserAvatar, showAvatarForEveryMessage, isActivityMessage],\n\t);\n\n\t// Render a message bubble (or call custom renderBubble)\n\tconst renderMessageBubble = useCallback(\n\t\t(message: IMessage, previousMessage?: IMessage, nextMessage?: IMessage) => {\n\t\t\tconst position = isUserMessage(message) ? 'right' : 'left';\n\t\t\tconst isTopOfStack = previousMessage?.user?._id !== message?.user?._id;\n\t\t\tconst isBottomOfStack = nextMessage?.user?._id !== message?.user?._id;\n\n\t\t\tconst bubbleProps: BubbleProps<IMessage> = {\n\t\t\t\tcurrentMessage: message,\n\t\t\t\tpreviousMessage,\n\t\t\t\tnextMessage,\n\t\t\t\tposition,\n\t\t\t\tuser,\n\t\t\t\t...extraProps,\n\t\t\t};\n\n\t\t\t// Use custom render function if provided\n\t\t\tif (renderBubble) {\n\t\t\t\treturn renderBubble(bubbleProps);\n\t\t\t}\n\n\t\t\t// Default bubble rendering\n\t\t\tconst messageId = message._id;\n\t\t\tconst isExpanded = expandedMessages.has(messageId);\n\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tmaxWidth: appType === GiftedChatAppType.Manifest ? '50%' : '70%',\n\t\t\t\t\t\twidth: 'fit-content',\n\t\t\t\t\t\t...(appType === GiftedChatAppType.Manifest\n\t\t\t\t\t\t\t? { minWidth: '130px' }\n\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\tpadding: '8px 12px',\n\t\t\t\t\t\tborderTopLeftRadius:\n\t\t\t\t\t\t\tposition === 'left' ? (isTopOfStack ? 12 : 2) : 12,\n\t\t\t\t\t\tborderTopRightRadius:\n\t\t\t\t\t\t\tposition === 'right' ? (isTopOfStack ? 12 : 2) : 12,\n\t\t\t\t\t\tborderBottomLeftRadius:\n\t\t\t\t\t\t\tposition === 'left' ? (isBottomOfStack ? 12 : 2) : 12,\n\t\t\t\t\t\tborderBottomRightRadius:\n\t\t\t\t\t\t\tposition === 'right' ? (isBottomOfStack ? 12 : 2) : 12,\n\t\t\t\t\t\tborder:\n\t\t\t\t\t\t\tposition === 'left' && appType === GiftedChatAppType.Manifest\n\t\t\t\t\t\t\t\t? '1px solid rgb(224, 224, 224)'\n\t\t\t\t\t\t\t\t: 'none',\n\t\t\t\t\t\tbackgroundColor:\n\t\t\t\t\t\t\tposition === 'right'\n\t\t\t\t\t\t\t\t? appType === GiftedChatAppType.Manifest\n\t\t\t\t\t\t\t\t\t? COLORS.background.brandTint\n\t\t\t\t\t\t\t\t\t: COLORS.background.brandLight\n\t\t\t\t\t\t\t\t: appType === GiftedChatAppType.Manifest\n\t\t\t\t\t\t\t\t? COLORS.background.pureWhite\n\t\t\t\t\t\t\t\t: COLORS.background.inactive,\n\t\t\t\t\t\tcolor: COLORS.content.primary,\n\t\t\t\t\t\twordBreak: 'break-word',\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<CollapsibleBubbleText\n\t\t\t\t\t\ttext={message.text ?? ''}\n\t\t\t\t\t\tisExpanded={isExpanded}\n\t\t\t\t\t\tonToggle={() =>\n\t\t\t\t\t\t\tsetExpandedMessages((prev) => {\n\t\t\t\t\t\t\t\tconst next = new Set(prev);\n\t\t\t\t\t\t\t\tif (isExpanded) next.delete(messageId);\n\t\t\t\t\t\t\t\telse next.add(messageId);\n\t\t\t\t\t\t\t\treturn next;\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t);\n\t\t},\n\t\t[isUserMessage, user, renderBubble, extraProps, expandedMessages],\n\t);\n\n\t// Render a message avatar (or call custom renderAvatar)\n\tconst renderMessageAvatar = useCallback(\n\t\t(message: IMessage, previousMessage?: IMessage, nextMessage?: IMessage) => {\n\t\t\tconst shouldShow = shouldShowAvatar(message, previousMessage);\n\n\t\t\tif (!shouldShow) return null;\n\n\t\t\tconst position = isUserMessage(message) ? 'right' : 'left';\n\n\t\t\tconst avatarProps: AvatarProps<IMessage> = {\n\t\t\t\tcurrentMessage: message,\n\t\t\t\tpreviousMessage,\n\t\t\t\tnextMessage,\n\t\t\t\tposition,\n\t\t\t\tuser,\n\t\t\t\trenderAvatarOnTop,\n\t\t\t\tshowUserAvatar,\n\t\t\t\tshowAvatarForEveryMessage,\n\t\t\t};\n\n\t\t\treturn renderAvatar ? renderAvatar(avatarProps) : null;\n\t\t},\n\t\t[\n\t\t\tshouldShowAvatar,\n\t\t\tisUserMessage,\n\t\t\tuser,\n\t\t\trenderAvatarOnTop,\n\t\t\tshowUserAvatar,\n\t\t\tshowAvatarForEveryMessage,\n\t\t\trenderAvatar,\n\t\t],\n\t);\n\n\t// Render: Empty State\n\tif (!messages || messages.length === 0) {\n\t\treturn renderChatEmpty ? <>{renderChatEmpty()}</> : null;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tref={scrollRef as React.RefObject<HTMLDivElement>}\n\t\t\tstyle={{\n\t\t\t\tflex: 1,\n\t\t\t\toverflowY: 'auto',\n\t\t\t\toverflowX: 'hidden',\n\t\t\t\tdisplay: 'flex',\n\t\t\t\tflexDirection: 'column',\n\t\t\t\t...(maxHeight ? { maxHeight, height: maxHeight } : {}),\n\t\t\t\t...listViewProps.style,\n\t\t\t}}\n\t\t\tonScroll={handleScroll}\n\t\t>\n\t\t\t{/* Spacer to push messages to bottom (newest appears last in DOM) */}\n\t\t\t<div style={{ flex: '1 0 auto' }} />\n\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\tflexDirection: 'column',\n\t\t\t\t\tflex: '0 0 auto',\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{reversedMessages.map((message, index) => {\n\t\t\t\t\tconst isSmtp =\n\t\t\t\t\t\tmessage?.['channelId'] === MESSAGE_CHANNELS.SMTP ||\n\t\t\t\t\t\tmessage?.['channelName'] === MESSAGE_CHANNELS.SMTP;\n\t\t\t\t\tconst position = isSmtp ? 'left' : (isUserMessage(message) ? 'right' : 'left');\n\t\t\t\t\tconst previousMessage = reversedMessages[index - 1];\n\t\t\t\t\tconst nextMessage = reversedMessages[index + 1];\n\t\t\t\t\tconst shouldShowDay = !isSameDay(message, previousMessage);\n\t\t\t\t\tconst placement = getMessagePlacement(message, position);\n\t\t\t\t\tconst isCentered = shouldCenterAlign(message);\n\t\t\t\t\t// Check if message is a private note\n\t\t\t\t\tconst isPrivateNote =\n\t\t\t\t\t\tmessage['category'] === Constants.ChatActivity.Category.ACTIVITY &&\n\t\t\t\t\t\tmessage['activityType'] ===\n\t\t\t\t\t\t\tConstants.ChatActivity.Type.PRIVATE_NOTE;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<React.Fragment\n\t\t\t\t\t\t\tkey={message._id ?? `${index}-${messageIdGenerator?.() ?? 'id'}`}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{/* Day separator */}\n\t\t\t\t\t\t\t{shouldShowDay &&\n\t\t\t\t\t\t\t\t(renderDay ? (\n\t\t\t\t\t\t\t\t\trenderDay({ createdAt: message.createdAt })\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<Day createdAt={message.createdAt} appType={appType} />\n\t\t\t\t\t\t\t\t))}\n\n\t\t\t\t\t\t\t{/* Message container */}\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t...(isMobile ? { margin: '0 4px' } : {}),\n\t\t\t\t\t\t\t\t\t...(isCentered\n\t\t\t\t\t\t\t\t\t\t? {}\n\t\t\t\t\t\t\t\t\t\t: { display: 'flex', alignItems: 'flex-start' }),\n\t\t\t\t\t\t\t\t\t...(appType !== GiftedChatAppType.Manifest\n\t\t\t\t\t\t\t\t\t\t? !isMobile && position === 'right'\n\t\t\t\t\t\t\t\t\t\t\t? { marginLeft: 8 }\n\t\t\t\t\t\t\t\t\t\t\t: { marginRight: 8 }\n\t\t\t\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\t\t\t\t...(isSmtp && !isPrivateNote && isMobile\n\t\t\t\t\t\t\t\t\t\t? { marginLeft: 8, marginRight: 8 }\n\t\t\t\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\t\t\t\tjustifyContent: placement,\n\t\t\t\t\t\t\t\t\tmarginBottom: nextMessage\n\t\t\t\t\t\t\t\t\t\t? nextMessage?.user?._id === message?.user?._id\n\t\t\t\t\t\t\t\t\t\t\t? 4\n\t\t\t\t\t\t\t\t\t\t\t: 20\n\t\t\t\t\t\t\t\t\t\t: 0,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{/* Left avatar or placeholder (for mobile, avatar is hidden) */}\n\t\t\t\t\t\t\t\t{!isMobile && position === 'left' && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{ marginRight: '4px', width: '24px', flexShrink: 0 }}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{renderMessageAvatar(message, previousMessage, nextMessage)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t{/* Message bubble */}\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tid={`message-bubble-${\n\t\t\t\t\t\t\t\t\t\tmessage._id ?? `${index}-${messageIdGenerator?.() ?? 'id'}`\n\t\t\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\t\tappType === GiftedChatAppType.Manifest\n\t\t\t\t\t\t\t\t\t\t\t? { width: '100%' }\n\t\t\t\t\t\t\t\t\t\t\t: isSmtp\n\t\t\t\t\t\t\t\t\t\t\t? { display: 'flex', flexGrow: 1, width: '100%' }\n\t\t\t\t\t\t\t\t\t\t\t: {}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{renderMessageBubble(message, previousMessage, nextMessage)}\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t{/* Right avatar or placeholder (for mobile, avatar is hidden) */}\n\t\t\t\t\t\t\t\t{!isMobile && position === 'right' && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tmarginLeft: '4px',\n\t\t\t\t\t\t\t\t\t\t\twidth: '24px',\n\t\t\t\t\t\t\t\t\t\t\tflexShrink: 0,\n\t\t\t\t\t\t\t\t\t\t\talignSelf: 'flex-start',\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{renderMessageAvatar(message, previousMessage, nextMessage)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</React.Fragment>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default forwardRef<HTMLDivElement, GiftedChatProps<IMessage>>(\n\tGiftedChatInner,\n);\n"],"names":["CollapsibleBubbleText","_ref","text","isExpanded","onToggle","textRef","useRef","isOverflowing","setIsOverflowing","useState","useEffect","el","current","style","maxHeight","overflows","scrollHeight","_jsxs","_jsx","Object","assign","ref","overflow","children","BodySecondary","Button","buttonType","size","buttonText","onClick","GiftedChat","forwardRef","GiftedChatInner","props","forwardedRef","_b","messages","user","renderBubble","renderAvatar","renderDay","renderLoading","renderChatEmpty","listViewProps","renderAvatarOnTop","showUserAvatar","showAvatarForEveryMessage","inverted","messageIdGenerator","topThreshold","TOP_THRESHOLD","appType","GiftedChatAppType","Bik","isActivityMessage","extraProps","__rest","isMobile","useWindowSize","internalScrollRef","scrollRef","normalizeRef","scrollState","isInitialMount","isUserScrolling","isLoadingOldMessages","isAtBottom","hasTriggeredEndReached","lastMessagesLength","_a","length","previousScrollHeight","previousScrollTop","scrollTimeout","expandedMessages","setExpandedMessages","Set","reversedMessages","useMemo","reverse","scrollToBottom","useScrollToBottom","useImperativeHandle","useInitialMountScroll","useScrollCleanup","useRestoreScrollPosition","useAutoScrollOnNewMessages","useResizeObserverForFirstMessage","handleScroll","useScrollHandler","onEndReached","onScroll","isUserMessage","useCallback","message","Boolean","_id","shouldShowAvatar","previousMessage","renderMessageBubble","nextMessage","position","isTopOfStack","isBottomOfStack","_c","_d","bubbleProps","currentMessage","messageId","has","maxWidth","Manifest","width","minWidth","padding","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","border","backgroundColor","COLORS","background","brandTint","brandLight","pureWhite","inactive","color","content","primary","wordBreak","_e","prev","next","delete","add","renderMessageAvatar","flex","overflowY","overflowX","display","flexDirection","height","map","index","isSmtp","MESSAGE_CHANNELS","SMTP","shouldShowDay","isSameDay","placement","getMessagePlacement","isCentered","shouldCenterAlign","isPrivateNote","Constants","ChatActivity","Category","ACTIVITY","Type","PRIVATE_NOTE","React","Fragment","createdAt","Day","margin","alignItems","marginRight","marginLeft","justifyContent","marginBottom","flexShrink","id","flexGrow","alignSelf","_f","_Fragment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GiftedChat.js","sources":["../../../../../src/components/BikGiftedChat/GiftedChat/GiftedChat.tsx"],"sourcesContent":["import React, {\n\tforwardRef,\n\tuseCallback,\n\tuseEffect,\n\tuseImperativeHandle,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from 'react';\nimport { COLORS } from '../../../constants/Theme';\nimport { useWindowSize } from '../../../hooks/useWindowSize';\nimport { Button } from '../../button';\nimport { BodySecondary } from '../../TypographyStyle';\nimport { BubbleProps, GiftedChatAppType } from '../Bubble/types';\nimport { IMessage } from '../types';\nimport { Day } from './Day';\nimport { getMessagePlacement, shouldCenterAlign } from './messageHelpers';\nimport {\n\tuseAutoScrollOnNewMessages,\n\tuseInitialMountScroll,\n\tuseResizeObserverForFirstMessage,\n\tuseRestoreScrollPosition,\n\tuseScrollCleanup,\n\tuseScrollHandler,\n\tuseScrollToBottom,\n} from './scrollHooks';\nimport { AvatarProps, GiftedChatProps, MESSAGE_CHANNELS } from './types';\nimport { isSameDay, normalizeRef } from './utils';\nimport { Constants, TOP_THRESHOLD } from './utils';\n\nconst COLLAPSED_MAX_HEIGHT = 204;\n\nconst CollapsibleBubbleText: React.FC<{\n\ttext: string;\n\tisExpanded: boolean;\n\tonToggle: () => void;\n}> = ({ text, isExpanded, onToggle }) => {\n\tconst textRef = useRef<HTMLDivElement>(null);\n\tconst [isOverflowing, setIsOverflowing] = useState(false);\n\n\tuseEffect(() => {\n\t\tconst el = textRef.current;\n\t\tif (el) {\n\t\t\t// Temporarily remove max-height to measure true scroll height\n\t\t\tel.style.maxHeight = 'none';\n\t\t\tconst overflows = el.scrollHeight > COLLAPSED_MAX_HEIGHT;\n\t\t\tel.style.maxHeight = isExpanded ? 'none' : `${COLLAPSED_MAX_HEIGHT}px`;\n\t\t\tsetIsOverflowing(overflows);\n\t\t}\n\t}, [text, isExpanded]);\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tref={textRef}\n\t\t\t\tstyle={{\n\t\t\t\t\tmaxHeight: isExpanded ? 'none' : COLLAPSED_MAX_HEIGHT,\n\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<BodySecondary>{text}</BodySecondary>\n\t\t\t</div>\n\t\t\t{isOverflowing && (\n\t\t\t\t<Button\n\t\t\t\t\tbuttonType=\"text\"\n\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\tbuttonText={isExpanded ? 'Show less' : 'Read more'}\n\t\t\t\t\tonClick={onToggle}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</>\n\t);\n};\n\nconst GiftedChatInner = (\n\tprops: Omit<GiftedChatProps<IMessage>, 'ref'>,\n\tforwardedRef: React.Ref<HTMLDivElement>,\n) => {\n\tconst {\n\t\tmessages = [],\n\t\tuser,\n\t\trenderBubble,\n\t\trenderAvatar,\n\t\trenderDay,\n\t\trenderLoading,\n\t\trenderChatEmpty,\n\t\tlistViewProps = {},\n\t\trenderAvatarOnTop = false,\n\t\tshowUserAvatar = false,\n\t\tshowAvatarForEveryMessage = false,\n\t\tinverted = false,\n\t\tmessageIdGenerator,\n\t\ttopThreshold = TOP_THRESHOLD,\n\t\tappType = GiftedChatAppType.Bik,\n\t\tmaxHeight,\n\t\tisActivityMessage,\n\t\t...extraProps\n\t} = props || {};\n\n\tconst isMobile = useWindowSize();\n\n\tconst internalScrollRef = useRef<HTMLDivElement | null>(null);\n\tconst scrollRef = normalizeRef(\n\t\tlistViewProps.ref || forwardedRef,\n\t\tinternalScrollRef,\n\t);\n\n\tconst scrollState = useRef({\n\t\tisInitialMount: true,\n\t\tisUserScrolling: false,\n\t\tisLoadingOldMessages: false,\n\t\tisAtBottom: true,\n\t\thasTriggeredEndReached: false,\n\t\tlastMessagesLength: messages?.length ?? 0,\n\t\tpreviousScrollHeight: 0,\n\t\tpreviousScrollTop: 0,\n\t\tscrollTimeout: null,\n\t});\n\n\tconst [expandedMessages, setExpandedMessages] = useState<\n\t\tSet<string | number>\n\t>(new Set());\n\n\t// Reverse messages so newest appears last in DOM (natural reading order)\n\tconst reversedMessages = useMemo(() => {\n\t\tif (!messages || messages.length === 0) return [] as IMessage[];\n\t\treturn [...messages].reverse() as IMessage[];\n\t}, [messages]);\n\n\tconst scrollToBottom = useScrollToBottom(scrollRef, scrollState);\n\n\tuseImperativeHandle(forwardedRef, () => scrollRef.current!);\n\n\tuseInitialMountScroll(\n\t\tscrollRef,\n\t\tscrollState,\n\t\treversedMessages.length,\n\t\tscrollToBottom,\n\t);\n\n\tuseScrollCleanup(scrollState);\n\n\tuseRestoreScrollPosition(scrollRef, scrollState, reversedMessages.length);\n\n\tuseAutoScrollOnNewMessages(\n\t\tscrollRef,\n\t\tscrollState,\n\t\tmessages.length,\n\t\tscrollToBottom,\n\t);\n\n\tuseResizeObserverForFirstMessage(\n\t\tmessages?.[0],\n\t\tscrollState,\n\t\tscrollToBottom,\n\t\tmessageIdGenerator,\n\t);\n\n\tconst handleScroll = useScrollHandler(\n\t\tscrollState,\n\t\tlistViewProps.onEndReached,\n\t\tlistViewProps.onScroll,\n\t\ttopThreshold,\n\t);\n\n\t// Check if a message belongs to the current user\n\tconst isUserMessage = useCallback(\n\t\t(message: IMessage) => {\n\t\t\treturn Boolean(message && user && message.user?._id === user._id);\n\t\t},\n\t\t[user],\n\t);\n\n\t// Determine if avatar should be shown for this message\n\tconst shouldShowAvatar = useCallback(\n\t\t(message: IMessage, previousMessage?: IMessage) => {\n\t\t\tif (!showUserAvatar) return false;\n\t\t\tif (showAvatarForEveryMessage) return true;\n\n\t\t\t// Show avatar on the first message in a consecutive sender stack,\n\t\t\t// or when an activity interrupts the stack, or when the current message itself is an activity\n\t\t\treturn (\n\t\t\t\t!previousMessage ||\n\t\t\t\t(isActivityMessage ? isActivityMessage(message) : false) ||\n\t\t\t\t(isActivityMessage ? isActivityMessage(previousMessage) : false) ||\n\t\t\t\tpreviousMessage.user._id !== message.user._id\n\t\t\t);\n\t\t},\n\t\t[showUserAvatar, showAvatarForEveryMessage, isActivityMessage],\n\t);\n\n\t// Render a message bubble (or call custom renderBubble)\n\tconst renderMessageBubble = useCallback(\n\t\t(message: IMessage, previousMessage?: IMessage, nextMessage?: IMessage) => {\n\t\t\tconst position = isUserMessage(message) ? 'right' : 'left';\n\t\t\tconst isTopOfStack = previousMessage?.user?._id !== message?.user?._id;\n\t\t\tconst isBottomOfStack = nextMessage?.user?._id !== message?.user?._id;\n\n\t\t\tconst bubbleProps: BubbleProps<IMessage> = {\n\t\t\t\tcurrentMessage: message,\n\t\t\t\tpreviousMessage,\n\t\t\t\tnextMessage,\n\t\t\t\tposition,\n\t\t\t\tuser,\n\t\t\t\t...extraProps,\n\t\t\t};\n\n\t\t\t// Use custom render function if provided\n\t\t\tif (renderBubble) {\n\t\t\t\treturn renderBubble(bubbleProps);\n\t\t\t}\n\n\t\t\t// Default bubble rendering\n\t\t\tconst messageId = message._id;\n\t\t\tconst isExpanded = expandedMessages.has(messageId);\n\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tmaxWidth: appType === GiftedChatAppType.Manifest ? '50%' : '70%',\n\t\t\t\t\t\twidth: 'fit-content',\n\t\t\t\t\t\t...(appType === GiftedChatAppType.Manifest\n\t\t\t\t\t\t\t? { minWidth: '130px' }\n\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\tpadding: '8px 12px',\n\t\t\t\t\t\tborderTopLeftRadius:\n\t\t\t\t\t\t\tposition === 'left' ? (isTopOfStack ? 12 : 2) : 12,\n\t\t\t\t\t\tborderTopRightRadius:\n\t\t\t\t\t\t\tposition === 'right' ? (isTopOfStack ? 12 : 2) : 12,\n\t\t\t\t\t\tborderBottomLeftRadius:\n\t\t\t\t\t\t\tposition === 'left' ? (isBottomOfStack ? 12 : 2) : 12,\n\t\t\t\t\t\tborderBottomRightRadius:\n\t\t\t\t\t\t\tposition === 'right' ? (isBottomOfStack ? 12 : 2) : 12,\n\t\t\t\t\t\tborder:\n\t\t\t\t\t\t\tposition === 'left' && appType === GiftedChatAppType.Manifest\n\t\t\t\t\t\t\t\t? '1px solid rgb(224, 224, 224)'\n\t\t\t\t\t\t\t\t: 'none',\n\t\t\t\t\t\tbackgroundColor:\n\t\t\t\t\t\t\tposition === 'right'\n\t\t\t\t\t\t\t\t? appType === GiftedChatAppType.Manifest\n\t\t\t\t\t\t\t\t\t? COLORS.background.brandTint\n\t\t\t\t\t\t\t\t\t: COLORS.background.brandLight\n\t\t\t\t\t\t\t\t: appType === GiftedChatAppType.Manifest\n\t\t\t\t\t\t\t\t? COLORS.background.pureWhite\n\t\t\t\t\t\t\t\t: COLORS.background.inactive,\n\t\t\t\t\t\tcolor: COLORS.content.primary,\n\t\t\t\t\t\twordBreak: 'break-word',\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<CollapsibleBubbleText\n\t\t\t\t\t\ttext={message.text ?? ''}\n\t\t\t\t\t\tisExpanded={isExpanded}\n\t\t\t\t\t\tonToggle={() =>\n\t\t\t\t\t\t\tsetExpandedMessages((prev) => {\n\t\t\t\t\t\t\t\tconst next = new Set(prev);\n\t\t\t\t\t\t\t\tif (isExpanded) next.delete(messageId);\n\t\t\t\t\t\t\t\telse next.add(messageId);\n\t\t\t\t\t\t\t\treturn next;\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t);\n\t\t},\n\t\t[isUserMessage, user, renderBubble, extraProps, expandedMessages],\n\t);\n\n\t// Render a message avatar (or call custom renderAvatar)\n\tconst renderMessageAvatar = useCallback(\n\t\t(message: IMessage, previousMessage?: IMessage, nextMessage?: IMessage) => {\n\t\t\tconst shouldShow = shouldShowAvatar(message, previousMessage);\n\n\t\t\tif (!shouldShow) return null;\n\n\t\t\tconst position = isUserMessage(message) ? 'right' : 'left';\n\n\t\t\tconst avatarProps: AvatarProps<IMessage> = {\n\t\t\t\tcurrentMessage: message,\n\t\t\t\tpreviousMessage,\n\t\t\t\tnextMessage,\n\t\t\t\tposition,\n\t\t\t\tuser,\n\t\t\t\trenderAvatarOnTop,\n\t\t\t\tshowUserAvatar,\n\t\t\t\tshowAvatarForEveryMessage,\n\t\t\t};\n\n\t\t\treturn renderAvatar ? renderAvatar(avatarProps) : null;\n\t\t},\n\t\t[\n\t\t\tshouldShowAvatar,\n\t\t\tisUserMessage,\n\t\t\tuser,\n\t\t\trenderAvatarOnTop,\n\t\t\tshowUserAvatar,\n\t\t\tshowAvatarForEveryMessage,\n\t\t\trenderAvatar,\n\t\t],\n\t);\n\n\t// Render: Empty State\n\tif (!messages || messages.length === 0) {\n\t\treturn renderChatEmpty ? <>{renderChatEmpty()}</> : null;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tref={scrollRef as React.RefObject<HTMLDivElement>}\n\t\t\tstyle={{\n\t\t\t\tflex: 1,\n\t\t\t\toverflowY: 'auto',\n\t\t\t\toverflowX: 'hidden',\n\t\t\t\tdisplay: 'flex',\n\t\t\t\tflexDirection: 'column',\n\t\t\t\t...(maxHeight ? { maxHeight, height: maxHeight } : {}),\n\t\t\t\t...listViewProps.style,\n\t\t\t}}\n\t\t\tonScroll={handleScroll}\n\t\t>\n\t\t\t{/* Spacer to push messages to bottom (newest appears last in DOM) */}\n\t\t\t<div style={{ flex: '1 0 auto' }} />\n\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\tflexDirection: 'column',\n\t\t\t\t\tflex: '0 0 auto',\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{reversedMessages.map((message, index) => {\n\t\t\t\t\tconst isSmtp =\n\t\t\t\t\t\tmessage?.['channelId'] === MESSAGE_CHANNELS.SMTP ||\n\t\t\t\t\t\tmessage?.['channelName'] === MESSAGE_CHANNELS.SMTP;\n\t\t\t\t\tconst position = isSmtp\n\t\t\t\t\t\t? 'left'\n\t\t\t\t\t\t: isUserMessage(message)\n\t\t\t\t\t\t? 'right'\n\t\t\t\t\t\t: 'left';\n\t\t\t\t\tconst previousMessage = reversedMessages[index - 1];\n\t\t\t\t\tconst nextMessage = reversedMessages[index + 1];\n\t\t\t\t\tconst shouldShowDay = !isSameDay(message, previousMessage);\n\t\t\t\t\tconst placement = getMessagePlacement(message, position);\n\t\t\t\t\tconst isCentered = shouldCenterAlign(message);\n\t\t\t\t\t// Check if message is a private note\n\t\t\t\t\tconst isPrivateNote =\n\t\t\t\t\t\tmessage['category'] === Constants.ChatActivity.Category.ACTIVITY &&\n\t\t\t\t\t\tmessage['activityType'] ===\n\t\t\t\t\t\t\tConstants.ChatActivity.Type.PRIVATE_NOTE;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<React.Fragment\n\t\t\t\t\t\t\tkey={message._id ?? `${index}-${messageIdGenerator?.() ?? 'id'}`}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{/* Day separator */}\n\t\t\t\t\t\t\t{shouldShowDay &&\n\t\t\t\t\t\t\t\t(renderDay ? (\n\t\t\t\t\t\t\t\t\trenderDay({ createdAt: message.createdAt })\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<Day createdAt={message.createdAt} appType={appType} />\n\t\t\t\t\t\t\t\t))}\n\n\t\t\t\t\t\t\t{/* Message container */}\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t...(isMobile ? { margin: '0 4px' } : {}),\n\t\t\t\t\t\t\t\t\t...(isCentered\n\t\t\t\t\t\t\t\t\t\t? {}\n\t\t\t\t\t\t\t\t\t\t: { display: 'flex', alignItems: 'flex-start' }),\n\t\t\t\t\t\t\t\t\t...(appType !== GiftedChatAppType.Manifest\n\t\t\t\t\t\t\t\t\t\t? !isMobile && position === 'right'\n\t\t\t\t\t\t\t\t\t\t\t? { marginLeft: 8 }\n\t\t\t\t\t\t\t\t\t\t\t: { marginRight: 8 }\n\t\t\t\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\t\t\t\t...(isSmtp && !isPrivateNote && isMobile\n\t\t\t\t\t\t\t\t\t\t? { marginLeft: 8, marginRight: 8 }\n\t\t\t\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\t\t\t\tjustifyContent: placement,\n\t\t\t\t\t\t\t\t\tmarginBottom: nextMessage\n\t\t\t\t\t\t\t\t\t\t? nextMessage?.user?._id === message?.user?._id\n\t\t\t\t\t\t\t\t\t\t\t? 4\n\t\t\t\t\t\t\t\t\t\t\t: 20\n\t\t\t\t\t\t\t\t\t\t: 0,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{/* Left avatar or placeholder (for mobile, avatar is hidden) */}\n\t\t\t\t\t\t\t\t{!isMobile && position === 'left' && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tmarginRight: isSmtp ? '0px' : '4px',\n\t\t\t\t\t\t\t\t\t\t\twidth: '24px',\n\t\t\t\t\t\t\t\t\t\t\tflexShrink: 0,\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{renderMessageAvatar(message, previousMessage, nextMessage)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t{/* Message bubble */}\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tid={`message-bubble-${\n\t\t\t\t\t\t\t\t\t\tmessage._id ?? `${index}-${messageIdGenerator?.() ?? 'id'}`\n\t\t\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\t\tappType === GiftedChatAppType.Manifest\n\t\t\t\t\t\t\t\t\t\t\t? { width: '100%' }\n\t\t\t\t\t\t\t\t\t\t\t: isSmtp\n\t\t\t\t\t\t\t\t\t\t\t? { display: 'flex', flexGrow: 1, width: '100%' }\n\t\t\t\t\t\t\t\t\t\t\t: {}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{renderMessageBubble(message, previousMessage, nextMessage)}\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t{/* Right avatar or placeholder (for mobile, avatar is hidden) */}\n\t\t\t\t\t\t\t\t{!isMobile && position === 'right' && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tmarginLeft: '4px',\n\t\t\t\t\t\t\t\t\t\t\twidth: '24px',\n\t\t\t\t\t\t\t\t\t\t\tflexShrink: 0,\n\t\t\t\t\t\t\t\t\t\t\talignSelf: 'flex-start',\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{renderMessageAvatar(message, previousMessage, nextMessage)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</React.Fragment>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default forwardRef<HTMLDivElement, GiftedChatProps<IMessage>>(\n\tGiftedChatInner,\n);\n"],"names":["CollapsibleBubbleText","_ref","text","isExpanded","onToggle","textRef","useRef","isOverflowing","setIsOverflowing","useState","useEffect","el","current","style","maxHeight","overflows","scrollHeight","_jsxs","_jsx","Object","assign","ref","overflow","children","BodySecondary","Button","buttonType","size","buttonText","onClick","GiftedChat","forwardRef","GiftedChatInner","props","forwardedRef","_b","messages","user","renderBubble","renderAvatar","renderDay","renderLoading","renderChatEmpty","listViewProps","renderAvatarOnTop","showUserAvatar","showAvatarForEveryMessage","inverted","messageIdGenerator","topThreshold","TOP_THRESHOLD","appType","GiftedChatAppType","Bik","isActivityMessage","extraProps","__rest","isMobile","useWindowSize","internalScrollRef","scrollRef","normalizeRef","scrollState","isInitialMount","isUserScrolling","isLoadingOldMessages","isAtBottom","hasTriggeredEndReached","lastMessagesLength","_a","length","previousScrollHeight","previousScrollTop","scrollTimeout","expandedMessages","setExpandedMessages","Set","reversedMessages","useMemo","reverse","scrollToBottom","useScrollToBottom","useImperativeHandle","useInitialMountScroll","useScrollCleanup","useRestoreScrollPosition","useAutoScrollOnNewMessages","useResizeObserverForFirstMessage","handleScroll","useScrollHandler","onEndReached","onScroll","isUserMessage","useCallback","message","Boolean","_id","shouldShowAvatar","previousMessage","renderMessageBubble","nextMessage","position","isTopOfStack","isBottomOfStack","_c","_d","bubbleProps","currentMessage","messageId","has","maxWidth","Manifest","width","minWidth","padding","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","border","backgroundColor","COLORS","background","brandTint","brandLight","pureWhite","inactive","color","content","primary","wordBreak","_e","prev","next","delete","add","renderMessageAvatar","flex","overflowY","overflowX","display","flexDirection","height","map","index","isSmtp","MESSAGE_CHANNELS","SMTP","shouldShowDay","isSameDay","placement","getMessagePlacement","isCentered","shouldCenterAlign","isPrivateNote","Constants","ChatActivity","Category","ACTIVITY","Type","PRIVATE_NOTE","React","Fragment","createdAt","Day","margin","alignItems","marginRight","marginLeft","justifyContent","marginBottom","flexShrink","id","flexGrow","alignSelf","_f","_Fragment"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bikdotai/bik-component-library",
|
|
3
|
-
"version": "0.0.805-beta.
|
|
3
|
+
"version": "0.0.805-beta.34",
|
|
4
4
|
"description": "Bik Component Library",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -34,6 +34,7 @@
|
|
|
34
34
|
],
|
|
35
35
|
"scripts": {
|
|
36
36
|
"build": "NODE_ENV=production rollup -c",
|
|
37
|
+
"dev": "NODE_ENV=production rollup -c --watch",
|
|
37
38
|
"build:storybook": "build-storybook",
|
|
38
39
|
"generate:icons": "npx @svgr/cli --config-file svgr.generate.cjs --out-dir src/icons svgs/",
|
|
39
40
|
"lint": "eslint . --ext .ts,.tsx,.js,.jsx",
|
|
@@ -64,6 +65,7 @@
|
|
|
64
65
|
"dependencies": {
|
|
65
66
|
"@amplitude/analytics-browser": "^2.9.3",
|
|
66
67
|
"@babel/runtime": "^7.20.7",
|
|
68
|
+
"@bikdotai/bik-component-library": "^0.0.805-beta.32",
|
|
67
69
|
"@bikdotai/bik-models": "11.4.0",
|
|
68
70
|
"@hello-pangea/dnd": "^18.0.1",
|
|
69
71
|
"@popperjs/core": "^2.11.7",
|