stream-chat-react-native-core 5.1.1-beta.1 → 5.3.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/Attachment/Card.js +29 -18
- package/lib/commonjs/components/Attachment/Card.js.map +1 -1
- package/lib/commonjs/components/Attachment/Gallery.js +16 -20
- package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
- package/lib/commonjs/components/Attachment/GalleryImage.js +34 -6
- package/lib/commonjs/components/Attachment/GalleryImage.js.map +1 -1
- package/lib/commonjs/components/Attachment/Giphy.js +37 -29
- package/lib/commonjs/components/Attachment/Giphy.js.map +1 -1
- package/lib/commonjs/components/Avatar/Avatar.js +10 -8
- package/lib/commonjs/components/Avatar/Avatar.js.map +1 -1
- package/lib/commonjs/components/Avatar/GroupAvatar.js +3 -1
- package/lib/commonjs/components/Avatar/GroupAvatar.js.map +1 -1
- package/lib/commonjs/components/ChannelList/ChannelListMessenger.js +32 -15
- package/lib/commonjs/components/ChannelList/ChannelListMessenger.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelAvatar.js +30 -6
- package/lib/commonjs/components/ChannelPreview/ChannelAvatar.js.map +1 -1
- package/lib/commonjs/components/Chat/Chat.js +20 -5
- package/lib/commonjs/components/Chat/Chat.js.map +1 -1
- package/lib/commonjs/components/Chat/hooks/useCreateChatContext.js +2 -0
- package/lib/commonjs/components/Chat/hooks/useCreateChatContext.js.map +1 -1
- package/lib/commonjs/components/ImageBackground.js +64 -0
- package/lib/commonjs/components/ImageBackground.js.map +1 -0
- package/lib/commonjs/components/Message/Message.js +15 -16
- package/lib/commonjs/components/Message/Message.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageAvatar.js +12 -4
- package/lib/commonjs/components/Message/MessageSimple/MessageAvatar.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageRepliesAvatars.js +26 -5
- package/lib/commonjs/components/Message/MessageSimple/MessageRepliesAvatars.js.map +1 -1
- package/lib/commonjs/components/MessageList/MessageList.js +39 -26
- package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
- package/lib/commonjs/components/MessageOverlay/MessageOverlay.js +58 -47
- package/lib/commonjs/components/MessageOverlay/MessageOverlay.js.map +1 -1
- package/lib/commonjs/components/MessageOverlay/OverlayReactions.js +19 -19
- package/lib/commonjs/components/MessageOverlay/OverlayReactions.js.map +1 -1
- package/lib/commonjs/contexts/chatContext/ChatContext.js +2 -2
- package/lib/commonjs/contexts/chatContext/ChatContext.js.map +1 -1
- package/lib/commonjs/contexts/debugContext/DebugContext.js +63 -0
- package/lib/commonjs/contexts/debugContext/DebugContext.js.map +1 -0
- package/lib/commonjs/contexts/index.js +13 -0
- package/lib/commonjs/contexts/index.js.map +1 -1
- package/lib/commonjs/contexts/messageOverlayContext/MessageOverlayContext.js +2 -2
- package/lib/commonjs/contexts/messageOverlayContext/MessageOverlayContext.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Attachment/Card.js +29 -18
- package/lib/module/components/Attachment/Card.js.map +1 -1
- package/lib/module/components/Attachment/Gallery.js +16 -20
- package/lib/module/components/Attachment/Gallery.js.map +1 -1
- package/lib/module/components/Attachment/GalleryImage.js +34 -6
- package/lib/module/components/Attachment/GalleryImage.js.map +1 -1
- package/lib/module/components/Attachment/Giphy.js +37 -29
- package/lib/module/components/Attachment/Giphy.js.map +1 -1
- package/lib/module/components/Avatar/Avatar.js +10 -8
- package/lib/module/components/Avatar/Avatar.js.map +1 -1
- package/lib/module/components/Avatar/GroupAvatar.js +3 -1
- package/lib/module/components/Avatar/GroupAvatar.js.map +1 -1
- package/lib/module/components/ChannelList/ChannelListMessenger.js +32 -15
- package/lib/module/components/ChannelList/ChannelListMessenger.js.map +1 -1
- package/lib/module/components/ChannelPreview/ChannelAvatar.js +30 -6
- package/lib/module/components/ChannelPreview/ChannelAvatar.js.map +1 -1
- package/lib/module/components/Chat/Chat.js +20 -5
- package/lib/module/components/Chat/Chat.js.map +1 -1
- package/lib/module/components/Chat/hooks/useCreateChatContext.js +2 -0
- package/lib/module/components/Chat/hooks/useCreateChatContext.js.map +1 -1
- package/lib/module/components/ImageBackground.js +64 -0
- package/lib/module/components/ImageBackground.js.map +1 -0
- package/lib/module/components/Message/Message.js +15 -16
- package/lib/module/components/Message/Message.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageAvatar.js +12 -4
- package/lib/module/components/Message/MessageSimple/MessageAvatar.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageRepliesAvatars.js +26 -5
- package/lib/module/components/Message/MessageSimple/MessageRepliesAvatars.js.map +1 -1
- package/lib/module/components/MessageList/MessageList.js +39 -26
- package/lib/module/components/MessageList/MessageList.js.map +1 -1
- package/lib/module/components/MessageOverlay/MessageOverlay.js +58 -47
- package/lib/module/components/MessageOverlay/MessageOverlay.js.map +1 -1
- package/lib/module/components/MessageOverlay/OverlayReactions.js +19 -19
- package/lib/module/components/MessageOverlay/OverlayReactions.js.map +1 -1
- package/lib/module/contexts/chatContext/ChatContext.js +2 -2
- package/lib/module/contexts/chatContext/ChatContext.js.map +1 -1
- package/lib/module/contexts/debugContext/DebugContext.js +63 -0
- package/lib/module/contexts/debugContext/DebugContext.js.map +1 -0
- package/lib/module/contexts/index.js +13 -0
- package/lib/module/contexts/index.js.map +1 -1
- package/lib/module/contexts/messageOverlayContext/MessageOverlayContext.js +2 -2
- package/lib/module/contexts/messageOverlayContext/MessageOverlayContext.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/Attachment/Card.d.ts +3 -2
- package/lib/typescript/components/Attachment/GalleryImage.d.ts +8 -2
- package/lib/typescript/components/Attachment/Giphy.d.ts +2 -1
- package/lib/typescript/components/Avatar/Avatar.d.ts +2 -1
- package/lib/typescript/components/Avatar/GroupAvatar.d.ts +2 -1
- package/lib/typescript/components/ChannelPreview/ChannelAvatar.d.ts +2 -0
- package/lib/typescript/components/Chat/Chat.d.ts +1 -1
- package/lib/typescript/components/Chat/hooks/useCreateChatContext.d.ts +1 -1
- package/lib/typescript/components/ImageBackground.d.ts +33 -0
- package/lib/typescript/components/Message/Message.d.ts +2 -1
- package/lib/typescript/components/Message/MessageSimple/MessageAvatar.d.ts +2 -1
- package/lib/typescript/components/Message/MessageSimple/MessageRepliesAvatars.d.ts +2 -0
- package/lib/typescript/components/MessageOverlay/OverlayReactions.d.ts +1 -0
- package/lib/typescript/contexts/chatContext/ChatContext.d.ts +3 -1
- package/lib/typescript/contexts/debugContext/DebugContext.d.ts +27 -0
- package/lib/typescript/contexts/index.d.ts +1 -0
- package/lib/typescript/contexts/messageOverlayContext/MessageOverlayContext.d.ts +4 -0
- package/package.json +2 -2
- package/src/components/Attachment/Card.tsx +11 -2
- package/src/components/Attachment/Gallery.tsx +1 -7
- package/src/components/Attachment/GalleryImage.tsx +31 -9
- package/src/components/Attachment/Giphy.tsx +8 -2
- package/src/components/Avatar/Avatar.tsx +12 -2
- package/src/components/Avatar/GroupAvatar.tsx +4 -4
- package/src/components/ChannelList/ChannelListMessenger.tsx +17 -0
- package/src/components/ChannelList/hooks/listeners/__tests__/useChannelUpdated.test.tsx +2 -1
- package/src/components/ChannelPreview/ChannelAvatar.tsx +23 -4
- package/src/components/Chat/Chat.tsx +111 -95
- package/src/components/Chat/hooks/useCreateChatContext.ts +2 -0
- package/src/components/ImageBackground.tsx +77 -0
- package/src/components/Message/Message.tsx +8 -8
- package/src/components/Message/MessageSimple/MessageAvatar.tsx +6 -2
- package/src/components/Message/MessageSimple/MessageRepliesAvatars.tsx +15 -3
- package/src/components/MessageList/MessageList.tsx +15 -0
- package/src/components/MessageOverlay/MessageOverlay.tsx +210 -205
- package/src/components/MessageOverlay/OverlayReactions.tsx +1 -0
- package/src/contexts/chatContext/ChatContext.tsx +3 -1
- package/src/contexts/debugContext/DebugContext.tsx +77 -0
- package/src/contexts/index.ts +1 -0
- package/src/contexts/messageOverlayContext/MessageOverlayContext.tsx +8 -1
- package/src/version.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["MessageOverlay.tsx"],"names":["styles","StyleSheet","create","alignEnd","alignItems","alignStart","center","flexGrow","justifyContent","containerInner","borderTopLeftRadius","borderTopRightRadius","borderWidth","overflow","flex","overlayPadding","padding","replyContainer","flexDirection","paddingHorizontal","paddingTop","row","scrollView","Platform","OS","screenHeight","halfScreenHeight","DefaultMessageTextNumberOfLines","MessageOverlayWithContext","props","alignment","ownCapabilities","clientId","files","groupStyles","handleReaction","images","message","messageActions","MessageActionList","DefaultMessageActionList","MessageActionListItem","messageContext","messageReactionTitle","messageTextNumberOfLines","messagesContext","onlyEmojis","otherAttachments","overlay","overlayOpacity","OverlayReactionList","OverlayReactionListDefault","OverlayReactions","DefaultOverlayReactions","OverlayReactionsAvatar","OverlayReactionsAvatarDefault","setOverlay","threadList","videos","isMyMessage","messageReactions","error","isThreadMessage","messageActionProps","theme","myMessageTheme","wrapMessageInTheme","user","id","JSON","stringify","myMessageThemeString","setMyMessageThemeString","modifiedTheme","style","colors","blue_alice","grey_gainsboro","grey_whisper","transparent","white_smoke","messageSimple","content","container","borderRadiusL","borderRadiusS","containerStyle","messageHeight","messageLayout","x","y","messageWidth","offsetY","translateY","scale","showScreen","fadeScreen","value","damping","mass","restDisplacementThreshold","restSpeedThreshold","stiffness","velocity","Keyboard","dismiss","onPan","onActive","evt","translationY","Extrapolate","CLAMP","onFinish","finalYPosition","velocityY","duration","easing","Easing","out","ease","onStart","panStyle","transform","showScreenStyle","translateX","groupStyle","toLowerCase","hasThreadReplies","reply_count","Attachment","FileAttachmentGroup","Gallery","MessageAvatar","Reply","absoluteFillObject","state","nativeEvent","State","END","sendReaction","own_reactions","map","reaction","type","layout","layoutHeight","height","layoutWidth","width","showAvatar","backgroundColor","quoted_message","length","borderBottomLeftRadius","borderBottomRightRadius","borderColor","messageContentOrder","messageContentType","messageContentOrderIndex","messageContainer","maxWidth","attachment","attachmentIndex","actions","latest_reactions","image","name","user_id","supportedReactions","areEqual","prevProps","nextProps","prevAlignment","prevMessage","prevMessageReactionTitle","nextAlignment","nextMessage","nextMessageReactionTitle","alignmentEqual","messageReactionTitleEqual","latestReactionsEqual","Array","isArray","every","index","MemoizedMessageOverlay","React","memo","MessageOverlay","data","componentProps"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAMA;;AAcA;;AACA;;AACA;;AAEA;;AACA;;AAMA;;AACA;;AAKA;;AAGA;;AACA;;AACA;;;;;;;;;AAMA,IAAMA,MAAM,GAAGC,wBAAWC,MAAX,CAAkB;AAC/BC,EAAAA,QAAQ,EAAE;AAAEC,IAAAA,UAAU,EAAE;AAAd,GADqB;AAE/BC,EAAAA,UAAU,EAAE;AAAED,IAAAA,UAAU,EAAE;AAAd,GAFmB;AAG/BE,EAAAA,MAAM,EAAE;AACNC,IAAAA,QAAQ,EAAE,CADJ;AAENC,IAAAA,cAAc,EAAE;AAFV,GAHuB;AAO/BC,EAAAA,cAAc,EAAE;AACdC,IAAAA,mBAAmB,EAAE,EADP;AAEdC,IAAAA,oBAAoB,EAAE,EAFR;AAGdC,IAAAA,WAAW,EAAE,CAHC;AAIdC,IAAAA,QAAQ,EAAE;AAJI,GAPe;AAa/BC,EAAAA,IAAI,EAAE;AACJA,IAAAA,IAAI,EAAE;AADF,GAbyB;AAgB/BC,EAAAA,cAAc,EAAE;AACdC,IAAAA,OAAO,EAAE;AADK,GAhBe;AAmB/BC,EAAAA,cAAc,EAAE;AACdC,IAAAA,aAAa,EAAE,KADD;AAEdC,IAAAA,iBAAiB,EAAE,CAFL;AAGdC,IAAAA,UAAU,EAAE;AAHE,GAnBe;AAwB/BC,EAAAA,GAAG,EAAE;AAAEH,IAAAA,aAAa,EAAE;AAAjB,GAxB0B;AAyB/BI,EAAAA,UAAU,EAAE;AAAET,IAAAA,QAAQ,EAAEU,sBAASC,EAAT,KAAgB,KAAhB,GAAwB,SAAxB,GAAoC;AAAhD;AAzBmB,CAAlB,CAAf;;AA4BA,IAAMC,YAAY,GAAG,eAAG,GAAH,CAArB;AACA,IAAMC,gBAAgB,GAAG,eAAG,EAAH,CAAzB;AACA,IAAMC,+BAA+B,GAAG,CAAxC;;AA2BA,IAAMC,yBAAyB,GAAG,SAA5BA,yBAA4B,CAGhCC,KAHgC,EAI7B;AAAA;;AACH,MACEC,SADF,GA8BID,KA9BJ,CACEC,SADF;AAAA,MAEEC,eAFF,GA8BIF,KA9BJ,CAEEE,eAFF;AAAA,MAGEC,QAHF,GA8BIH,KA9BJ,CAGEG,QAHF;AAAA,MAIEC,KAJF,GA8BIJ,KA9BJ,CAIEI,KAJF;AAAA,MAKEC,WALF,GA8BIL,KA9BJ,CAKEK,WALF;AAAA,MAMEC,cANF,GA8BIN,KA9BJ,CAMEM,cANF;AAAA,MAOEC,MAPF,GA8BIP,KA9BJ,CAOEO,MAPF;AAAA,MAQEC,OARF,GA8BIR,KA9BJ,CAQEQ,OARF;AAAA,MASEC,cATF,GA8BIT,KA9BJ,CASES,cATF;AAAA,8BA8BIT,KA9BJ,CAUEU,iBAVF;AAAA,MAUEA,iBAVF,sCAUsBC,oCAVtB;AAAA,MAWEC,qBAXF,GA8BIZ,KA9BJ,CAWEY,qBAXF;AAAA,MAYEC,cAZF,GA8BIb,KA9BJ,CAYEa,cAZF;AAAA,MAaEC,oBAbF,GA8BId,KA9BJ,CAaEc,oBAbF;AAAA,8BA8BId,KA9BJ,CAcEe,wBAdF;AAAA,MAcEA,wBAdF,sCAc6BjB,+BAd7B;AAAA,MAeEkB,eAfF,GA8BIhB,KA9BJ,CAeEgB,eAfF;AAAA,MAgBEC,UAhBF,GA8BIjB,KA9BJ,CAgBEiB,UAhBF;AAAA,MAiBEC,gBAjBF,GA8BIlB,KA9BJ,CAiBEkB,gBAjBF;AAAA,MAkBEC,OAlBF,GA8BInB,KA9BJ,CAkBEmB,OAlBF;AAAA,MAmBEC,cAnBF,GA8BIpB,KA9BJ,CAmBEoB,cAnBF;AAAA,8BA8BIpB,KA9BJ,CAoBEqB,mBApBF;AAAA,MAoBEA,mBApBF,sCAoBwBC,wCApBxB;AAAA,+BA8BItB,KA9BJ,CAqBEuB,gBArBF;AAAA,MAqBEA,gBArBF,uCAqBqBC,kCArBrB;AAAA,+BA8BIxB,KA9BJ,CAsBEyB,sBAtBF;AAAA,MAsBEA,sBAtBF,uCAsB2BC,8CAtB3B;AAAA,MAuBEC,UAvBF,GA8BI3B,KA9BJ,CAuBE2B,UAvBF;AAAA,MAwBEC,UAxBF,GA8BI5B,KA9BJ,CAwBE4B,UAxBF;AAAA,MAyBEC,MAzBF,GA8BI7B,KA9BJ,CAyBE6B,MAzBF;AAAA,MA0BEC,WA1BF,GA8BI9B,KA9BJ,CA0BE8B,WA1BF;AAAA,MA2BEC,gBA3BF,GA8BI/B,KA9BJ,CA2BE+B,gBA3BF;AAAA,MA4BEC,KA5BF,GA8BIhC,KA9BJ,CA4BEgC,KA5BF;AAAA,MA6BEC,eA7BF,GA8BIjC,KA9BJ,CA6BEiC,eA7BF;AAgCA,MAAMC,kBAAkB,GAAG;AACzBF,IAAAA,KAAK,EAALA,KADyB;AAEzBF,IAAAA,WAAW,EAAXA,WAFyB;AAGzBG,IAAAA,eAAe,EAAfA,eAHyB;AAIzBzB,IAAAA,OAAO,EAAPA,OAJyB;AAKzBuB,IAAAA,gBAAgB,EAAhBA;AALyB,GAA3B;;AAQA,kBAAkB,6BAAlB;AAAA,MAAQI,KAAR,aAAQA,KAAR;;AAEA,MAAMC,cAAc,GAAGpB,eAAH,oBAAGA,eAAe,CAAEoB,cAAxC;AACA,MAAMC,kBAAkB,GAAGlC,QAAQ,MAAKK,OAAL,qCAAKA,OAAO,CAAE8B,IAAd,qBAAK,cAAeC,EAApB,CAAR,IAAkC,CAAC,CAACH,cAA/D;;AAEA,kBAAwD,qBAASI,IAAI,CAACC,SAAL,CAAeL,cAAf,CAAT,CAAxD;AAAA;AAAA,MAAOM,oBAAP;AAAA,MAA6BC,uBAA7B;;AAEA,wBAAU,YAAM;AACd,QAAIP,cAAJ,EAAoB;AAClBO,MAAAA,uBAAuB,CAACH,IAAI,CAACC,SAAL,CAAeL,cAAf,CAAD,CAAvB;AACD;AACF,GAJD,EAIG,CAACA,cAAD,CAJH;AAMA,MAAMQ,aAAa,GAAG,oBACpB;AAAA,WAAM,+BAAY;AAAEC,MAAAA,KAAK,EAAET,cAAT;AAAyBD,MAAAA,KAAK,EAALA;AAAzB,KAAZ,CAAN;AAAA,GADoB,EAEpB,CAACO,oBAAD,EAAuBP,KAAvB,CAFoB,CAAtB;;AAKA,aAUIE,kBAAkB,GAAGO,aAAH,GAAmBT,KAVzC;AAAA,yBACEW,MADF;AAAA,MACYC,UADZ,eACYA,UADZ;AAAA,MACwBC,cADxB,eACwBA,cADxB;AAAA,MACwCC,YADxC,eACwCA,YADxC;AAAA,MACsDC,WADtD,eACsDA,WADtD;AAAA,MACmEC,WADnE,eACmEA,WADnE;AAAA,mCAEEC,aAFF,CAGIC,OAHJ;AAAA,qDAIMC,SAJN;AAAA,MAImBC,aAJnB,0BAImBA,aAJnB;AAAA,MAIkCC,aAJlC,0BAIkCA,aAJlC;AAAA,MAKM5E,cALN,yBAKMA,cALN;AAAA,MAMMQ,cANN,yBAMMA,cANN;AAAA,0BASE+B,OATF;AAAA,MASwBsC,cATxB,gBASaH,SATb;AAAA,MASiDpE,cATjD,gBASwCC,OATxC;;AAYA,MAAMuE,aAAa,GAAG,2CAAe,CAAf,CAAtB;AACA,MAAMC,aAAa,GAAG,2CAAe;AAAEC,IAAAA,CAAC,EAAE,CAAL;AAAQC,IAAAA,CAAC,EAAE;AAAX,GAAf,CAAtB;AACA,MAAMC,YAAY,GAAG,2CAAe,CAAf,CAArB;AAEA,MAAMC,OAAO,GAAG,2CAAe,CAAf,CAAhB;AACA,MAAMC,UAAU,GAAG,2CAAe,CAAf,CAAnB;AACA,MAAMC,KAAK,GAAG,2CAAe,CAAf,CAAd;AAEA,MAAMC,UAAU,GAAG,2CAAe,CAAf,CAAnB;;AACA,MAAMC,UAAU,GAAG,SAAbA,UAAa,GAAM;AACvB;;AAEAJ,IAAAA,OAAO,CAACK,KAAR,GAAgB,CAAhB;AACAJ,IAAAA,UAAU,CAACI,KAAX,GAAmB,CAAnB;AACAH,IAAAA,KAAK,CAACG,KAAN,GAAc,CAAd;AACAF,IAAAA,UAAU,CAACE,KAAX,GAAmB,uCAAW,CAAX,EAAc;AAC/BC,MAAAA,OAAO,EAAE,GADsB;AAE/BC,MAAAA,IAAI,EAAE,GAFyB;AAG/BC,MAAAA,yBAAyB,EAAE,IAHI;AAI/BC,MAAAA,kBAAkB,EAAE,IAJW;AAK/BC,MAAAA,SAAS,EAAE,GALoB;AAM/BC,MAAAA,QAAQ,EAAE;AANqB,KAAd,CAAnB;AAQD,GAdD;;AAgBA,wBAAU,YAAM;AACdC,0BAASC,OAAT;;AACAT,IAAAA,UAAU;AACX,GAHD,EAGG,EAHH;AAKA,MAAMU,KAAK,GAAG,sDAAyD;AACrEC,IAAAA,QAAQ,EAAE,kBAACC,GAAD,EAAS;AACjBf,MAAAA,UAAU,CAACI,KAAX,GAAmBL,OAAO,CAACK,KAAR,GAAgBW,GAAG,CAACC,YAAvC;AACA5D,MAAAA,cAAc,CAACgD,KAAf,GAAuB,wCACrBJ,UAAU,CAACI,KADU,EAErB,CAAC,CAAD,EAAIvE,gBAAJ,CAFqB,EAGrB,CAAC,CAAD,EAAI,IAAJ,CAHqB,EAIrBoF,mCAAYC,KAJS,CAAvB;AAMAjB,MAAAA,KAAK,CAACG,KAAN,GAAc,wCACZJ,UAAU,CAACI,KADC,EAEZ,CAAC,CAAD,EAAIvE,gBAAJ,CAFY,EAGZ,CAAC,CAAD,EAAI,IAAJ,CAHY,EAIZoF,mCAAYC,KAJA,CAAd;AAMD,KAfoE;AAgBrEC,IAAAA,QAAQ,EAAE,kBAACJ,GAAD,EAAS;AACjB,UAAMK,cAAc,GAAGL,GAAG,CAACC,YAAJ,GAAmBD,GAAG,CAACM,SAAJ,GAAgB,GAA1D;;AAEA,UAAID,cAAc,GAAGvF,gBAAjB,IAAqCmE,UAAU,CAACI,KAAX,GAAmB,CAA5D,EAA+D;AAC7D,oDAAgBJ,UAAhB;AACA5C,QAAAA,cAAc,CAACgD,KAAf,GAAuB,uCACrB,CADqB,EAErB;AACEkB,UAAAA,QAAQ,EAAE,GADZ;AAEEC,UAAAA,MAAM,EAAEC,8BAAOC,GAAP,CAAWD,8BAAOE,IAAlB;AAFV,SAFqB,EAMrB,YAAM;AACJ,8CAAQ/D,UAAR,EAAoB,MAApB;AACD,SARoB,CAAvB;AAUAqC,QAAAA,UAAU,CAACI,KAAX,GACEW,GAAG,CAACM,SAAJ,GAAgB,IAAhB,GACI,sCAAU;AACRX,UAAAA,QAAQ,EAAEK,GAAG,CAACM;AADN,SAAV,CADJ,GAII,uCAAWzF,YAAX,EAAyB;AACvB0F,UAAAA,QAAQ,EAAE,GADa;AAEvBC,UAAAA,MAAM,EAAEC,8BAAOC,GAAP,CAAWD,8BAAOE,IAAlB;AAFe,SAAzB,CALN;AASD,OArBD,MAqBO;AACL1B,QAAAA,UAAU,CAACI,KAAX,GAAmB,uCAAW,CAAX,CAAnB;AACAH,QAAAA,KAAK,CAACG,KAAN,GAAc,uCAAW,CAAX,CAAd;AACAhD,QAAAA,cAAc,CAACgD,KAAf,GAAuB,uCAAW,CAAX,CAAvB;AACD;AACF,KA7CoE;AA8CrEuB,IAAAA,OAAO,EAAE,mBAAM;AACb,kDAAgB3B,UAAhB;AACAD,MAAAA,OAAO,CAACK,KAAR,GAAgBJ,UAAU,CAACI,KAA3B;AACD;AAjDoE,GAAzD,CAAd;AAoDA,MAAMwB,QAAQ,GAAG,6CAA4B;AAAA,WAAO;AAClDC,MAAAA,SAAS,EAAE,CACT;AACE7B,QAAAA,UAAU,EAAEA,UAAU,CAACI;AADzB,OADS,EAIT;AACEH,QAAAA,KAAK,EAAEA,KAAK,CAACG;AADf,OAJS;AADuC,KAAP;AAAA,GAA5B,CAAjB;AAWA,MAAM0B,eAAe,GAAG,6CACtB;AAAA,WAAO;AACLD,MAAAA,SAAS,EAAE,CACT;AACE7B,QAAAA,UAAU,EAAE,wCAAYE,UAAU,CAACE,KAAvB,EAA8B,CAAC,CAAD,EAAI,CAAJ,CAA9B,EAAsC,CAACV,aAAa,CAACU,KAAd,GAAsB,CAAvB,EAA0B,CAA1B,CAAtC;AADd,OADS,EAIT;AACE2B,QAAAA,UAAU,EAAE,wCACV7B,UAAU,CAACE,KADD,EAEV,CAAC,CAAD,EAAI,CAAJ,CAFU,EAGV,CAACnE,SAAS,KAAK,MAAd,GAAuB,CAAC6D,YAAY,CAACM,KAAd,GAAsB,CAA7C,GAAiDN,YAAY,CAACM,KAAb,GAAqB,CAAvE,EAA0E,CAA1E,CAHU;AADd,OAJS,EAWT;AACEH,QAAAA,KAAK,EAAEC,UAAU,CAACE;AADpB,OAXS;AADN,KAAP;AAAA,GADsB,EAkBtB,CAACnE,SAAD,CAlBsB,CAAxB;AAqBA,MAAM+F,UAAU,GAAM/F,SAAN,SAAmB,CAAC,CAAAI,WAAW,QAAX,YAAAA,WAAW,CAAG,CAAH,CAAX,KAAoB,QAArB,EAA+B4F,WAA/B,EAAnC;AAEA,MAAMC,gBAAgB,GAAG,CAAC,EAAC1F,OAAD,YAACA,OAAO,CAAE2F,WAAV,CAA1B;;AAEA,cAA2EnF,eAAe,IAAI,EAA9F;AAAA,MAAQoF,UAAR,SAAQA,UAAR;AAAA,MAAoBC,mBAApB,SAAoBA,mBAApB;AAAA,MAAyCC,OAAzC,SAAyCA,OAAzC;AAAA,MAAkDC,aAAlD,SAAkDA,aAAlD;AAAA,MAAiEC,KAAjE,SAAiEA,KAAjE;;AAEA,SACE,gCAAC,iCAAD;AAAkB,IAAA,KAAK,EAAExF,eAAzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,+BAAD;AAAiB,IAAA,KAAK,EAAEH,cAAxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,2BAAD;AAAe,IAAA,WAAW,EAAEwB,kBAAkB,GAAGO,aAAH,GAAmBT,KAAjE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,iCAAD,CAAU,IAAV;AACE,IAAA,aAAa,EAAE,MADjB;AAEE,IAAA,KAAK,EAAE,CAAC/D,wBAAWqI,kBAAZ,EAAgChD,cAAhC,CAFT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAIE,gCAAC,4CAAD;AACE,IAAA,OAAO,EAAEtC,OAAO,KAAK,SADvB;AAEE,IAAA,WAAW,EAAE,CAFf;AAGE,IAAA,OAAO,EAAE,EAHX;AAIE,IAAA,cAAc,EAAE0D,KAJlB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAME,gCAAC,iCAAD,CAAU,IAAV;AAAe,IAAA,KAAK,EAAE,CAACzG,wBAAWqI,kBAAZ,CAAtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,yBAAD;AAAc,IAAA,KAAK,EAAEtI,MAAM,CAACc,IAA5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,4CAAD;AACE,IAAA,OAAO,EAAE,EADX;AAEE,IAAA,oBAAoB,EAAE,qCAAgC;AAAA,UAAdyH,KAAc,SAA7BC,WAA6B,CAAdD,KAAc;;AACpD,UAAIA,KAAK,KAAKE,iCAAMC,GAApB,EAAyB;AACvBlF,QAAAA,UAAU,CAAC,MAAD,CAAV;AACD;AACF,KANH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAQE,gCAAC,iCAAD,CAAU,IAAV;AAAe,IAAA,KAAK,EAAE,CAACxD,MAAM,CAACc,IAAR,EAAc2G,QAAd,CAAtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACGpF,OAAO,IACN,gCAAC,iBAAD;AACE,IAAA,KAAK,EAAE,CACLrC,MAAM,CAACM,MADF,EAELN,MAAM,CAACe,cAFF,EAGL;AAAEC,MAAAA,OAAO,EAAED;AAAX,KAHK,EAILe,SAAS,KAAK,MAAd,GAAuB9B,MAAM,CAACK,UAA9B,GAA2CL,MAAM,CAACG,QAJ7C,CADT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAQGgC,cAAc,IAAIJ,eAAJ,YAAIA,eAAe,CAAE4G,YAAnC,GACC,gCAAC,mBAAD;AACE,IAAA,aAAa,EAAEnD,aADjB;AAEE,IAAA,gBAAgB,EACd,CAAAnD,OAAO,QAAP,qCAAAA,OAAO,CAAEuG,aAAT,2CAAwBC,GAAxB,CAA4B,UAACC,QAAD;AAAA,aAAcA,QAAQ,CAACC,IAAvB;AAAA,KAA5B,MAA4D,EAHhE;AAKE,IAAA,UAAU,EAAEhD,UALd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADD,GAQG,IAhBN,EAiBE,gCAAC,iCAAD,CAAU,IAAV;AACE,IAAA,QAAQ,EAAE,yBAIJ;AAAA,wCAHJyC,WAGI,CAFFQ,MAEE;AAAA,UAFgBC,YAEhB,yBAFQC,MAER;AAAA,UAFqCC,WAErC,yBAF8BC,KAE9B;AAAA,UAFkD3D,CAElD,yBAFkDA,CAElD;AAAA,UAFqDC,CAErD,yBAFqDA,CAErD;AACJF,MAAAA,aAAa,CAACS,KAAd,GAAsB;AACpBR,QAAAA,CAAC,EAAE3D,SAAS,KAAK,MAAd,GAAuB2D,CAAC,GAAG0D,WAA3B,GAAyC1D,CADxB;AAEpBC,QAAAA,CAAC,EAADA;AAFoB,OAAtB;AAIAC,MAAAA,YAAY,CAACM,KAAb,GAAqBkD,WAArB;AACA5D,MAAAA,aAAa,CAACU,KAAd,GAAsBgD,YAAtB;AACD,KAZH;AAaE,IAAA,KAAK,EAAE,CAACjJ,MAAM,CAACG,QAAR,EAAkBH,MAAM,CAACqB,GAAzB,EAA8BsG,eAA9B,CAbT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAeG7F,SAAS,KAAK,MAAd,IAAwBsG,aAAxB,IACC,gCAAC,aAAD;AAAqBtG,IAAAA,SAAS,EAATA,SAArB;AAAgCO,IAAAA,OAAO,EAAPA,OAAhC;AAAyCgH,IAAAA,UAAU,EAAE,IAArD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAhBJ,EAkBE,gCAAC,iBAAD;AACE,IAAA,aAAa,EAAC,MADhB;AAEE,IAAA,KAAK,EAAE,CACLrJ,MAAM,CAACS,cADF,EAEL;AACE6I,MAAAA,eAAe,EACbxG,UAAU,IAAI,CAACT,OAAO,CAACkH,cAAvB,GACIxE,WADJ,GAEIhC,gBAAgB,QAAhB,IAAAA,gBAAgB,CAAEyG,MAAlB,GACAzG,gBAAgB,CAAC,CAAD,CAAhB,CAAoBgG,IAApB,KAA6B,OAA7B,GACE,CAAC1G,OAAO,CAACkH,cAAT,GACExE,WADF,GAEEF,cAHJ,GAIED,UALF,GAMA9C,SAAS,KAAK,MAAd,GACAkD,WADA,GAEAH,cAZR;AAaE4E,MAAAA,sBAAsB,EACpB,CAAC5B,UAAU,KAAK,aAAf,IACCA,UAAU,KAAK,aADjB,MAEC,CAACE,gBAAD,IAAqBtE,UAFtB,IAGI4B,aAHJ,GAIID,aAlBR;AAmBEsE,MAAAA,uBAAuB,EACrB,CAAC7B,UAAU,KAAK,cAAf,IACCA,UAAU,KAAK,cADjB,MAEC,CAACE,gBAAD,IAAqBtE,UAFtB,IAGI4B,aAHJ,GAIID,aAxBR;AAyBEuE,MAAAA,WAAW,EAAE7E;AAzBf,KAFK,EA6BJhC,UAAU,IAAI,CAACT,OAAO,CAACkH,cAAxB,IAA2CxG,gBAA3C,YAA2CA,gBAAgB,CAAEyG,MAA7D,GACI;AAAE5I,MAAAA,WAAW,EAAE;AAAf,KADJ,GAEI,EA/BC,EAgCLH,cAhCK,CAFT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAqCGoC,eArCH,6CAqCGA,eAAe,CAAE+G,mBArCpB,qBAqCG,sBAAsCf,GAAtC,CACC,UAACgB,kBAAD,EAAqBC,wBAArB,EAAkD;AAChD,YAAQD,kBAAR;AACE,WAAK,cAAL;AACE,eACExH,OAAO,CAACkH,cAAR,IACAlB,KADA,IAEE,gCAAC,iBAAD;AACE,UAAA,GAAG,oBAAkByB,wBADvB;AAEE,UAAA,KAAK,EAAE,CAAC9J,MAAM,CAACiB,cAAR,EAAwBA,cAAxB,CAFT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAIE,gCAAC,KAAD;AACE,UAAA,aAAa,EACXoB,OAAO,CAACkH,cAFZ;AAIE,UAAA,MAAM,EAAE;AACNQ,YAAAA,gBAAgB,EAAE;AAChBC,cAAAA,QAAQ,EAAE,eAAG,EAAH;AADM;AADZ,WAJV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAJF,CAHJ;;AAoBF,WAAK,aAAL;AACE,eAAOjH,gBAAP,oBAAOA,gBAAgB,CAAE8F,GAAlB,CACL,UAACoB,UAAD,EAAaC,eAAb;AAAA,iBACEjC,UAAU,IACR,gCAAC,UAAD;AACE,YAAA,UAAU,EAAEgC,UADd;AAEE,YAAA,GAAG,EAAK5H,OAAO,CAAC+B,EAAb,SAAmB8F,eAFxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAFJ;AAAA,SADK,CAAP;;AASF,WAAK,OAAL;AACE,eACEhC,mBAAmB,IACjB,gCAAC,mBAAD;AACE,UAAA,KAAK,EAAEjG,KADT;AAEE,UAAA,GAAG,6BAA2B6H,wBAFhC;AAGE,UAAA,SAAS,EAAEzH,OAAO,CAAC+B,EAHrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAFJ;;AASF,WAAK,SAAL;AACE,eACE+D,OAAO,IACL,gCAAC,OAAD;AACE,UAAA,SAAS,EAAErG,SADb;AAEE,UAAA,WAAW,EAAEI,WAFf;AAGE,UAAA,gBAAgB,EAAE,CAAC,EAACG,OAAD,YAACA,OAAO,CAAE2F,WAAV,CAHrB;AAIE,UAAA,MAAM,EAAE5F,MAJV;AAKE,UAAA,GAAG,eAAa0H,wBALlB;AAME,UAAA,OAAO,EAAEzH,OANX;AAOE,UAAA,UAAU,EAAEoB,UAPd;AAQE,UAAA,MAAM,EAAEC,MARV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAFJ;;AAcF,WAAK,MAAL;AACA;AACE,eAAOX,gBAAgB,QAAhB,IAAAA,gBAAgB,CAAEyG,MAAlB,IACLzG,gBAAgB,CAAC,CAAD,CAAhB,CAAoBoH,OADf,GACyB,IADzB,GAEL,gCAAC,0CAAD;AACE,UAAA,GAAG,8BAA4BL,wBADjC;AAEE,UAAA,OAAO,EAAEzH,OAFX;AAGE,UAAA,cAAc,MAHhB;AAIE,UAAA,wBAAwB,EAAEO,wBAJ5B;AAKE,UAAA,UAAU,EAAEE,UALd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAFF;AA3DJ;AAsED,GAxEF,CArCH,CAlBF,CAjBF,EAoJGR,cAAc,IACb,gCAAC,iBAAD;AACE,IAAA,qBAAqB,EAAEG,qBADzB;AAEE,IAAA,UAAU,EAAEsD;AAFd,KAGMhC,kBAHN;AAIE,IAAA,OAAO,EAAE1B,OAJX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KArJJ,EA4JG,CAAC,CAACM,oBAAF,IACDN,OAAO,CAAC+H,gBADP,IAED/H,OAAO,CAAC+H,gBAAR,CAAyBZ,MAAzB,GAAkC,CAFjC,GAGC,gCAAC,gBAAD;AACE,IAAA,SAAS,EAAE1H,SADb;AAEE,IAAA,sBAAsB,EAAEwB,sBAF1B;AAGE,IAAA,SAAS,EACPjB,OAAO,CAAC+H,gBAAR,CAAyBvB,GAAzB,CAA6B,UAACC,QAAD;AAAA;;AAAA,aAAe;AAC1ChH,QAAAA,SAAS,EACPE,QAAQ,IAAIA,QAAQ,wBAAK8G,QAAQ,CAAC3E,IAAd,qBAAK,eAAeC,EAApB,CAApB,GAA6C,OAA7C,GAAuD,MAFf;AAG1CA,QAAAA,EAAE,EAAE,CAAA0E,QAAQ,QAAR,+BAAAA,QAAQ,CAAE3E,IAAV,qCAAgBC,EAAhB,KAAsB,EAHgB;AAI1CiG,QAAAA,KAAK,EAAEvB,QAAF,uCAAEA,QAAQ,CAAE3E,IAAZ,qBAAE,gBAAgBkG,KAJmB;AAK1CC,QAAAA,IAAI,EAAE,CAAAxB,QAAQ,QAAR,+BAAAA,QAAQ,CAAE3E,IAAV,qCAAgBmG,IAAhB,KAAwBxB,QAAQ,CAACyB,OAAjC,IAA4C,EALR;AAM1CxB,QAAAA,IAAI,EAAED,QAAQ,CAACC;AAN2B,OAAf;AAAA,KAA7B,CAJJ;AAaE,IAAA,UAAU,EAAEhD,UAbd;AAcE,IAAA,kBAAkB,EAAElD,eAAF,oBAAEA,eAAe,CAAE2H,kBAdvC;AAeE,IAAA,KAAK,EAAE7H,oBAfT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAHD,GAoBG,IAhLN,CAFJ,CARF,CADF,CADF,CANF,CAJF,CADF,CADF,CADF,CADF;AAuND,CA1ZD;;AA4ZA,IAAM8H,QAAQ,GAAG,SAAXA,QAAW,CACfC,SADe,EAEfC,SAFe,EAGZ;AACH,MACaC,aADb,GAIIF,SAJJ,CACE5I,SADF;AAAA,MAEW+I,WAFX,GAIIH,SAJJ,CAEErI,OAFF;AAAA,MAGwByI,wBAHxB,GAIIJ,SAJJ,CAGE/H,oBAHF;AAKA,MACaoI,aADb,GAIIJ,SAJJ,CACE7I,SADF;AAAA,MAEWkJ,WAFX,GAIIL,SAJJ,CAEEtI,OAFF;AAAA,MAGwB4I,wBAHxB,GAIIN,SAJJ,CAGEhI,oBAHF;AAMA,MAAMuI,cAAc,GAAGN,aAAa,KAAKG,aAAzC;AACA,MAAI,CAACG,cAAL,EAAqB,OAAO,KAAP;AAErB,MAAMC,yBAAyB,GAAGL,wBAAwB,KAAKG,wBAA/D;AACA,MAAI,CAACE,yBAAL,EAAgC,OAAO,KAAP;AAEhC,MAAMC,oBAAoB,GACxBC,KAAK,CAACC,OAAN,CAAcT,WAAd,oBAAcA,WAAW,CAAET,gBAA3B,KAAgDiB,KAAK,CAACC,OAAN,CAAcN,WAAd,oBAAcA,WAAW,CAAEZ,gBAA3B,CAAhD,GACI,CAAAS,WAAW,QAAX,YAAAA,WAAW,CAAET,gBAAb,CAA8BZ,MAA9B,OAAyCwB,WAAzC,oBAAyCA,WAAW,CAAEZ,gBAAb,CAA8BZ,MAAvE,MACAqB,WADA,oBACAA,WAAW,CAAET,gBAAb,CAA8BmB,KAA9B,CACE,iBAAWC,KAAX;AAAA;;AAAA,QAAGzC,IAAH,SAAGA,IAAH;AAAA,WAAqBA,IAAI,MAAKiC,WAAL,6CAAKA,WAAW,CAAEZ,gBAAlB,qBAAK,sBAAgCoB,KAAhC,EAAuCzC,IAA5C,CAAzB;AAAA,GADF,CADA,CADJ,GAKI,CAAA8B,WAAW,QAAX,YAAAA,WAAW,CAAET,gBAAb,OAAkCY,WAAlC,oBAAkCA,WAAW,CAAEZ,gBAA/C,CANN;AAOA,MAAI,CAACgB,oBAAL,EAA2B,OAAO,KAAP;AAE3B,SAAO,IAAP;AACD,CA/BD;;AAiCA,IAAMK,sBAAsB,GAAGC,kBAAMC,IAAN,CAC7B/J,yBAD6B,EAE7B6I,QAF6B,CAA/B;;AAiBO,IAAMmB,cAAc,GAAG,SAAjBA,cAAiB,CAG5B/J,KAH4B,EAIzB;AACH,8BAOI,sDAPJ;AAAA,MACEgK,IADF,yBACEA,IADF;AAAA,MAEEtJ,iBAFF,yBAEEA,iBAFF;AAAA,MAGEE,qBAHF,yBAGEA,qBAHF;AAAA,MAIES,mBAJF,yBAIEA,mBAJF;AAAA,MAKEE,gBALF,yBAKEA,gBALF;AAAA,MAMEE,sBANF,yBAMEA,sBANF;;AAQA,2BAAgC,wCAAhC;AAAA,MAAQN,OAAR,sBAAQA,OAAR;AAAA,MAAiBQ,UAAjB,sBAAiBA,UAAjB;;AAEA,MAAMsI,cAAc,GAAG;AACrBvJ,IAAAA,iBAAiB,EAAEV,KAAK,CAACU,iBAAN,IAA2BA,iBADzB;AAErBE,IAAAA,qBAAqB,EAAEZ,KAAK,CAACY,qBAAN,IAA+BA,qBAFjC;AAGrBS,IAAAA,mBAAmB,EACjBrB,KAAK,CAACqB,mBAAN,IAA6BA,mBAA7B,KAAoD2I,IAApD,oBAAoDA,IAAI,CAAE3I,mBAA1D,CAJmB;AAKrBE,IAAAA,gBAAgB,EAAEvB,KAAK,CAACuB,gBAAN,IAA0BA,gBALvB;AAMrBE,IAAAA,sBAAsB,EAAEzB,KAAK,CAACyB,sBAAN,IAAgCA;AANnC,GAAvB;AASA,SACE,gCAAC,sBAAD;AAEIN,IAAAA,OAAO,EAAPA,OAFJ;AAGIQ,IAAAA,UAAU,EAAVA;AAHJ,KAKMsI,cALN,EAMOD,IAAI,IAAI,EANf,EAOMhK,KAPN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KADF;AAWD,CAnCM","sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport { Keyboard, Platform, SafeAreaView, StyleSheet, View, ViewStyle } from 'react-native';\nimport {\n PanGestureHandler,\n PanGestureHandlerGestureEvent,\n State,\n TapGestureHandler,\n} from 'react-native-gesture-handler';\nimport Animated, {\n cancelAnimation,\n Easing,\n Extrapolate,\n interpolate,\n runOnJS,\n useAnimatedGestureHandler,\n useAnimatedStyle,\n useSharedValue,\n withDecay,\n withSpring,\n withTiming,\n} from 'react-native-reanimated';\n\nimport { MessageActionList as DefaultMessageActionList } from './MessageActionList';\nimport { OverlayReactionList as OverlayReactionListDefault } from './OverlayReactionList';\nimport { OverlayReactionsAvatar as OverlayReactionsAvatarDefault } from './OverlayReactionsAvatar';\n\nimport { MessageProvider } from '../../contexts/messageContext/MessageContext';\nimport {\n MessageOverlayContextValue,\n MessageOverlayData,\n useMessageOverlayContext,\n} from '../../contexts/messageOverlayContext/MessageOverlayContext';\n\nimport { MessagesProvider } from '../../contexts/messagesContext/MessagesContext';\nimport {\n OverlayContextValue,\n OverlayProviderProps,\n useOverlayContext,\n} from '../../contexts/overlayContext/OverlayContext';\nimport { mergeThemes, ThemeProvider, useTheme } from '../../contexts/themeContext/ThemeContext';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { vh, vw } from '../../utils/utils';\nimport { MessageTextContainer } from '../Message/MessageSimple/MessageTextContainer';\nimport {\n OverlayReactions as DefaultOverlayReactions,\n Reaction,\n} from '../MessageOverlay/OverlayReactions';\nimport type { ReplyProps } from '../Reply/Reply';\n\nconst styles = StyleSheet.create({\n alignEnd: { alignItems: 'flex-end' },\n alignStart: { alignItems: 'flex-start' },\n center: {\n flexGrow: 1,\n justifyContent: 'center',\n },\n containerInner: {\n borderTopLeftRadius: 16,\n borderTopRightRadius: 16,\n borderWidth: 1,\n overflow: 'hidden',\n },\n flex: {\n flex: 1,\n },\n overlayPadding: {\n padding: 8,\n },\n replyContainer: {\n flexDirection: 'row',\n paddingHorizontal: 8,\n paddingTop: 8,\n },\n row: { flexDirection: 'row' },\n scrollView: { overflow: Platform.OS === 'ios' ? 'visible' : 'scroll' },\n});\n\nconst screenHeight = vh(100);\nconst halfScreenHeight = vh(50);\nconst DefaultMessageTextNumberOfLines = 5;\n\nexport type MessageOverlayPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<\n MessageOverlayContextValue<StreamChatGenerics>,\n | 'MessageActionList'\n | 'MessageActionListItem'\n | 'OverlayReactionList'\n | 'OverlayReactions'\n | 'OverlayReactionsAvatar'\n> &\n Omit<MessageOverlayData<StreamChatGenerics>, 'supportedReactions'> &\n Pick<OverlayContextValue, 'overlay' | 'setOverlay'> &\n Pick<\n OverlayProviderProps<StreamChatGenerics>,\n | 'error'\n | 'isMyMessage'\n | 'isThreadMessage'\n | 'message'\n | 'messageReactions'\n | 'messageTextNumberOfLines'\n > & {\n overlayOpacity: Animated.SharedValue<number>;\n showScreen?: Animated.SharedValue<number>;\n };\n\nconst MessageOverlayWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageOverlayPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n alignment,\n ownCapabilities,\n clientId,\n files,\n groupStyles,\n handleReaction,\n images,\n message,\n messageActions,\n MessageActionList = DefaultMessageActionList,\n MessageActionListItem,\n messageContext,\n messageReactionTitle,\n messageTextNumberOfLines = DefaultMessageTextNumberOfLines,\n messagesContext,\n onlyEmojis,\n otherAttachments,\n overlay,\n overlayOpacity,\n OverlayReactionList = OverlayReactionListDefault,\n OverlayReactions = DefaultOverlayReactions,\n OverlayReactionsAvatar = OverlayReactionsAvatarDefault,\n setOverlay,\n threadList,\n videos,\n isMyMessage,\n messageReactions,\n error,\n isThreadMessage,\n } = props;\n\n const messageActionProps = {\n error,\n isMyMessage,\n isThreadMessage,\n message,\n messageReactions,\n };\n\n const { theme } = useTheme();\n\n const myMessageTheme = messagesContext?.myMessageTheme;\n const wrapMessageInTheme = clientId === message?.user?.id && !!myMessageTheme;\n\n const [myMessageThemeString, setMyMessageThemeString] = useState(JSON.stringify(myMessageTheme));\n\n useEffect(() => {\n if (myMessageTheme) {\n setMyMessageThemeString(JSON.stringify(myMessageTheme));\n }\n }, [myMessageTheme]);\n\n const modifiedTheme = useMemo(\n () => mergeThemes({ style: myMessageTheme, theme }),\n [myMessageThemeString, theme],\n );\n\n const {\n colors: { blue_alice, grey_gainsboro, grey_whisper, transparent, white_smoke },\n messageSimple: {\n content: {\n container: { borderRadiusL, borderRadiusS },\n containerInner,\n replyContainer,\n },\n },\n overlay: { container: containerStyle, padding: overlayPadding },\n } = wrapMessageInTheme ? modifiedTheme : theme;\n\n const messageHeight = useSharedValue(0);\n const messageLayout = useSharedValue({ x: 0, y: 0 });\n const messageWidth = useSharedValue(0);\n\n const offsetY = useSharedValue(0);\n const translateY = useSharedValue(0);\n const scale = useSharedValue(1);\n\n const showScreen = useSharedValue(0);\n const fadeScreen = () => {\n 'worklet';\n\n offsetY.value = 0;\n translateY.value = 0;\n scale.value = 1;\n showScreen.value = withSpring(1, {\n damping: 600,\n mass: 0.5,\n restDisplacementThreshold: 0.01,\n restSpeedThreshold: 0.01,\n stiffness: 200,\n velocity: 32,\n });\n };\n\n useEffect(() => {\n Keyboard.dismiss();\n fadeScreen();\n }, []);\n\n const onPan = useAnimatedGestureHandler<PanGestureHandlerGestureEvent>({\n onActive: (evt) => {\n translateY.value = offsetY.value + evt.translationY;\n overlayOpacity.value = interpolate(\n translateY.value,\n [0, halfScreenHeight],\n [1, 0.75],\n Extrapolate.CLAMP,\n );\n scale.value = interpolate(\n translateY.value,\n [0, halfScreenHeight],\n [1, 0.85],\n Extrapolate.CLAMP,\n );\n },\n onFinish: (evt) => {\n const finalYPosition = evt.translationY + evt.velocityY * 0.1;\n\n if (finalYPosition > halfScreenHeight && translateY.value > 0) {\n cancelAnimation(translateY);\n overlayOpacity.value = withTiming(\n 0,\n {\n duration: 200,\n easing: Easing.out(Easing.ease),\n },\n () => {\n runOnJS(setOverlay)('none');\n },\n );\n translateY.value =\n evt.velocityY > 1000\n ? withDecay({\n velocity: evt.velocityY,\n })\n : withTiming(screenHeight, {\n duration: 200,\n easing: Easing.out(Easing.ease),\n });\n } else {\n translateY.value = withTiming(0);\n scale.value = withTiming(1);\n overlayOpacity.value = withTiming(1);\n }\n },\n onStart: () => {\n cancelAnimation(translateY);\n offsetY.value = translateY.value;\n },\n });\n\n const panStyle = useAnimatedStyle<ViewStyle>(() => ({\n transform: [\n {\n translateY: translateY.value,\n },\n {\n scale: scale.value,\n },\n ],\n }));\n\n const showScreenStyle = useAnimatedStyle<ViewStyle>(\n () => ({\n transform: [\n {\n translateY: interpolate(showScreen.value, [0, 1], [messageHeight.value / 2, 0]),\n },\n {\n translateX: interpolate(\n showScreen.value,\n [0, 1],\n [alignment === 'left' ? -messageWidth.value / 2 : messageWidth.value / 2, 0],\n ),\n },\n {\n scale: showScreen.value,\n },\n ],\n }),\n [alignment],\n );\n\n const groupStyle = `${alignment}_${(groupStyles?.[0] || 'bottom').toLowerCase()}`;\n\n const hasThreadReplies = !!message?.reply_count;\n\n const { Attachment, FileAttachmentGroup, Gallery, MessageAvatar, Reply } = messagesContext || {};\n\n return (\n <MessagesProvider value={messagesContext}>\n <MessageProvider value={messageContext}>\n <ThemeProvider mergedStyle={wrapMessageInTheme ? modifiedTheme : theme}>\n <Animated.View\n pointerEvents={'auto'}\n style={[StyleSheet.absoluteFillObject, containerStyle]}\n >\n <PanGestureHandler\n enabled={overlay === 'message'}\n maxPointers={1}\n minDist={10}\n onGestureEvent={onPan}\n >\n <Animated.View style={[StyleSheet.absoluteFillObject]}>\n <SafeAreaView style={styles.flex}>\n <TapGestureHandler\n maxDist={32}\n onHandlerStateChange={({ nativeEvent: { state } }) => {\n if (state === State.END) {\n setOverlay('none');\n }\n }}\n >\n <Animated.View style={[styles.flex, panStyle]}>\n {message && (\n <View\n style={[\n styles.center,\n styles.overlayPadding,\n { padding: overlayPadding },\n alignment === 'left' ? styles.alignStart : styles.alignEnd,\n ]}\n >\n {handleReaction && ownCapabilities?.sendReaction ? (\n <OverlayReactionList\n messageLayout={messageLayout}\n ownReactionTypes={\n message?.own_reactions?.map((reaction) => reaction.type) || []\n }\n showScreen={showScreen}\n />\n ) : null}\n <Animated.View\n onLayout={({\n nativeEvent: {\n layout: { height: layoutHeight, width: layoutWidth, x, y },\n },\n }) => {\n messageLayout.value = {\n x: alignment === 'left' ? x + layoutWidth : x,\n y,\n };\n messageWidth.value = layoutWidth;\n messageHeight.value = layoutHeight;\n }}\n style={[styles.alignEnd, styles.row, showScreenStyle]}\n >\n {alignment === 'left' && MessageAvatar && (\n <MessageAvatar {...{ alignment, message, showAvatar: true }} />\n )}\n <View\n pointerEvents='none'\n style={[\n styles.containerInner,\n {\n backgroundColor:\n onlyEmojis && !message.quoted_message\n ? transparent\n : otherAttachments?.length\n ? otherAttachments[0].type === 'giphy'\n ? !message.quoted_message\n ? transparent\n : grey_gainsboro\n : blue_alice\n : alignment === 'left'\n ? white_smoke\n : grey_gainsboro,\n borderBottomLeftRadius:\n (groupStyle === 'left_bottom' ||\n groupStyle === 'left_single') &&\n (!hasThreadReplies || threadList)\n ? borderRadiusS\n : borderRadiusL,\n borderBottomRightRadius:\n (groupStyle === 'right_bottom' ||\n groupStyle === 'right_single') &&\n (!hasThreadReplies || threadList)\n ? borderRadiusS\n : borderRadiusL,\n borderColor: grey_whisper,\n },\n (onlyEmojis && !message.quoted_message) || otherAttachments?.length\n ? { borderWidth: 0 }\n : {},\n containerInner,\n ]}\n >\n {messagesContext?.messageContentOrder?.map(\n (messageContentType, messageContentOrderIndex) => {\n switch (messageContentType) {\n case 'quoted_reply':\n return (\n message.quoted_message &&\n Reply && (\n <View\n key={`quoted_reply_${messageContentOrderIndex}`}\n style={[styles.replyContainer, replyContainer]}\n >\n <Reply\n quotedMessage={\n message.quoted_message as ReplyProps<StreamChatGenerics>['quotedMessage']\n }\n styles={{\n messageContainer: {\n maxWidth: vw(60),\n },\n }}\n />\n </View>\n )\n );\n case 'attachments':\n return otherAttachments?.map(\n (attachment, attachmentIndex) =>\n Attachment && (\n <Attachment\n attachment={attachment}\n key={`${message.id}-${attachmentIndex}`}\n />\n ),\n );\n case 'files':\n return (\n FileAttachmentGroup && (\n <FileAttachmentGroup\n files={files}\n key={`file_attachment_group_${messageContentOrderIndex}`}\n messageId={message.id}\n />\n )\n );\n case 'gallery':\n return (\n Gallery && (\n <Gallery\n alignment={alignment}\n groupStyles={groupStyles}\n hasThreadReplies={!!message?.reply_count}\n images={images}\n key={`gallery_${messageContentOrderIndex}`}\n message={message}\n threadList={threadList}\n videos={videos}\n />\n )\n );\n case 'text':\n default:\n return otherAttachments?.length &&\n otherAttachments[0].actions ? null : (\n <MessageTextContainer<StreamChatGenerics>\n key={`message_text_container_${messageContentOrderIndex}`}\n message={message}\n messageOverlay\n messageTextNumberOfLines={messageTextNumberOfLines}\n onlyEmojis={onlyEmojis}\n />\n );\n }\n },\n )}\n </View>\n </Animated.View>\n {messageActions && (\n <MessageActionList\n MessageActionListItem={MessageActionListItem}\n showScreen={showScreen}\n {...messageActionProps}\n message={message}\n />\n )}\n {!!messageReactionTitle &&\n message.latest_reactions &&\n message.latest_reactions.length > 0 ? (\n <OverlayReactions\n alignment={alignment}\n OverlayReactionsAvatar={OverlayReactionsAvatar}\n reactions={\n message.latest_reactions.map((reaction) => ({\n alignment:\n clientId && clientId === reaction.user?.id ? 'right' : 'left',\n id: reaction?.user?.id || '',\n image: reaction?.user?.image,\n name: reaction?.user?.name || reaction.user_id || '',\n type: reaction.type,\n })) as Reaction[]\n }\n showScreen={showScreen}\n supportedReactions={messagesContext?.supportedReactions}\n title={messageReactionTitle}\n />\n ) : null}\n </View>\n )}\n </Animated.View>\n </TapGestureHandler>\n </SafeAreaView>\n </Animated.View>\n </PanGestureHandler>\n </Animated.View>\n </ThemeProvider>\n </MessageProvider>\n </MessagesProvider>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: MessageOverlayPropsWithContext<StreamChatGenerics>,\n nextProps: MessageOverlayPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n alignment: prevAlignment,\n message: prevMessage,\n messageReactionTitle: prevMessageReactionTitle,\n } = prevProps;\n const {\n alignment: nextAlignment,\n message: nextMessage,\n messageReactionTitle: nextMessageReactionTitle,\n } = nextProps;\n\n const alignmentEqual = prevAlignment === nextAlignment;\n if (!alignmentEqual) return false;\n\n const messageReactionTitleEqual = prevMessageReactionTitle === nextMessageReactionTitle;\n if (!messageReactionTitleEqual) return false;\n\n const latestReactionsEqual =\n Array.isArray(prevMessage?.latest_reactions) && Array.isArray(nextMessage?.latest_reactions)\n ? prevMessage?.latest_reactions.length === nextMessage?.latest_reactions.length &&\n prevMessage?.latest_reactions.every(\n ({ type }, index) => type === nextMessage?.latest_reactions?.[index].type,\n )\n : prevMessage?.latest_reactions === nextMessage?.latest_reactions;\n if (!latestReactionsEqual) return false;\n\n return true;\n};\n\nconst MemoizedMessageOverlay = React.memo(\n MessageOverlayWithContext,\n areEqual,\n) as typeof MessageOverlayWithContext;\n\nexport type MessageOverlayProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<Omit<MessageOverlayPropsWithContext<StreamChatGenerics>, 'overlayOpacity'>> &\n Pick<MessageOverlayPropsWithContext<StreamChatGenerics>, 'overlayOpacity'> &\n Pick<\n MessageOverlayPropsWithContext<StreamChatGenerics>,\n 'isMyMessage' | 'error' | 'isThreadMessage' | 'message' | 'messageReactions'\n >;\n\n/**\n * MessageOverlay - A high level component which implements all the logic required for a message overlay\n */\nexport const MessageOverlay = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageOverlayProps<StreamChatGenerics>,\n) => {\n const {\n data,\n MessageActionList,\n MessageActionListItem,\n OverlayReactionList,\n OverlayReactions,\n OverlayReactionsAvatar,\n } = useMessageOverlayContext<StreamChatGenerics>();\n const { overlay, setOverlay } = useOverlayContext();\n\n const componentProps = {\n MessageActionList: props.MessageActionList || MessageActionList,\n MessageActionListItem: props.MessageActionListItem || MessageActionListItem,\n OverlayReactionList:\n props.OverlayReactionList || OverlayReactionList || data?.OverlayReactionList,\n OverlayReactions: props.OverlayReactions || OverlayReactions,\n OverlayReactionsAvatar: props.OverlayReactionsAvatar || OverlayReactionsAvatar,\n };\n\n return (\n <MemoizedMessageOverlay\n {...{\n overlay,\n setOverlay,\n }}\n {...componentProps}\n {...(data || {})}\n {...props}\n />\n );\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["MessageOverlay.tsx"],"names":["styles","StyleSheet","create","alignEnd","alignItems","alignStart","center","flexGrow","justifyContent","containerInner","borderTopLeftRadius","borderTopRightRadius","borderWidth","overflow","flex","overlayPadding","padding","replyContainer","flexDirection","paddingHorizontal","paddingTop","row","scrollView","Platform","OS","screenHeight","halfScreenHeight","DefaultMessageTextNumberOfLines","MessageOverlayWithContext","props","alignment","ownCapabilities","clientId","files","groupStyles","handleReaction","images","chatContext","message","messageActions","MessageActionList","DefaultMessageActionList","MessageActionListItem","messageContext","messageReactionTitle","messageTextNumberOfLines","messagesContext","onlyEmojis","otherAttachments","overlay","overlayOpacity","OverlayReactionList","OverlayReactionListDefault","OverlayReactions","DefaultOverlayReactions","OverlayReactionsAvatar","OverlayReactionsAvatarDefault","setOverlay","threadList","videos","isMyMessage","messageReactions","error","isThreadMessage","messageActionProps","theme","myMessageTheme","wrapMessageInTheme","user","id","JSON","stringify","myMessageThemeString","setMyMessageThemeString","modifiedTheme","style","colors","blue_alice","grey_gainsboro","grey_whisper","transparent","white_smoke","messageSimple","content","container","borderRadiusL","borderRadiusS","containerStyle","messageHeight","messageLayout","x","y","messageWidth","offsetY","translateY","scale","showScreen","fadeScreen","value","damping","mass","restDisplacementThreshold","restSpeedThreshold","stiffness","velocity","Keyboard","dismiss","onPan","onActive","evt","translationY","Extrapolate","CLAMP","onFinish","finalYPosition","velocityY","duration","easing","Easing","out","ease","onStart","panStyle","transform","showScreenStyle","translateX","groupStyle","toLowerCase","hasThreadReplies","reply_count","Attachment","FileAttachmentGroup","Gallery","MessageAvatar","Reply","absoluteFillObject","state","nativeEvent","State","END","sendReaction","own_reactions","map","reaction","type","layout","layoutHeight","height","layoutWidth","width","showAvatar","backgroundColor","quoted_message","length","borderBottomLeftRadius","borderBottomRightRadius","borderColor","messageContentOrder","messageContentType","messageContentOrderIndex","messageContainer","maxWidth","attachment","attachmentIndex","actions","latest_reactions","image","name","user_id","supportedReactions","areEqual","prevProps","nextProps","prevAlignment","prevMessage","prevMessageReactionTitle","nextAlignment","nextMessage","nextMessageReactionTitle","alignmentEqual","messageReactionTitleEqual","latestReactionsEqual","Array","isArray","every","index","MemoizedMessageOverlay","React","memo","MessageOverlay","data","componentProps"],"mappings":"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","sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport { Keyboard, Platform, SafeAreaView, StyleSheet, View, ViewStyle } from 'react-native';\nimport {\n PanGestureHandler,\n PanGestureHandlerGestureEvent,\n State,\n TapGestureHandler,\n} from 'react-native-gesture-handler';\nimport Animated, {\n cancelAnimation,\n Easing,\n Extrapolate,\n interpolate,\n runOnJS,\n useAnimatedGestureHandler,\n useAnimatedStyle,\n useSharedValue,\n withDecay,\n withSpring,\n withTiming,\n} from 'react-native-reanimated';\n\nimport { MessageActionList as DefaultMessageActionList } from './MessageActionList';\nimport { OverlayReactionList as OverlayReactionListDefault } from './OverlayReactionList';\nimport { OverlayReactionsAvatar as OverlayReactionsAvatarDefault } from './OverlayReactionsAvatar';\n\nimport { ChatProvider } from '../../contexts/chatContext/ChatContext';\nimport { MessageProvider } from '../../contexts/messageContext/MessageContext';\nimport {\n MessageOverlayContextValue,\n MessageOverlayData,\n useMessageOverlayContext,\n} from '../../contexts/messageOverlayContext/MessageOverlayContext';\n\nimport { MessagesProvider } from '../../contexts/messagesContext/MessagesContext';\nimport {\n OverlayContextValue,\n OverlayProviderProps,\n useOverlayContext,\n} from '../../contexts/overlayContext/OverlayContext';\nimport { mergeThemes, ThemeProvider, useTheme } from '../../contexts/themeContext/ThemeContext';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { vh, vw } from '../../utils/utils';\nimport { MessageTextContainer } from '../Message/MessageSimple/MessageTextContainer';\nimport {\n OverlayReactions as DefaultOverlayReactions,\n Reaction,\n} from '../MessageOverlay/OverlayReactions';\nimport type { ReplyProps } from '../Reply/Reply';\n\nconst styles = StyleSheet.create({\n alignEnd: { alignItems: 'flex-end' },\n alignStart: { alignItems: 'flex-start' },\n center: {\n flexGrow: 1,\n justifyContent: 'center',\n },\n containerInner: {\n borderTopLeftRadius: 16,\n borderTopRightRadius: 16,\n borderWidth: 1,\n overflow: 'hidden',\n },\n flex: {\n flex: 1,\n },\n overlayPadding: {\n padding: 8,\n },\n replyContainer: {\n flexDirection: 'row',\n paddingHorizontal: 8,\n paddingTop: 8,\n },\n row: { flexDirection: 'row' },\n scrollView: { overflow: Platform.OS === 'ios' ? 'visible' : 'scroll' },\n});\n\nconst screenHeight = vh(100);\nconst halfScreenHeight = vh(50);\nconst DefaultMessageTextNumberOfLines = 5;\n\nexport type MessageOverlayPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<\n MessageOverlayContextValue<StreamChatGenerics>,\n | 'MessageActionList'\n | 'MessageActionListItem'\n | 'OverlayReactionList'\n | 'OverlayReactions'\n | 'OverlayReactionsAvatar'\n> &\n Omit<MessageOverlayData<StreamChatGenerics>, 'supportedReactions'> &\n Pick<OverlayContextValue, 'overlay' | 'setOverlay'> &\n Pick<\n OverlayProviderProps<StreamChatGenerics>,\n | 'error'\n | 'isMyMessage'\n | 'isThreadMessage'\n | 'message'\n | 'messageReactions'\n | 'messageTextNumberOfLines'\n > & {\n overlayOpacity: Animated.SharedValue<number>;\n showScreen?: Animated.SharedValue<number>;\n };\n\nconst MessageOverlayWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageOverlayPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n alignment,\n ownCapabilities,\n clientId,\n files,\n groupStyles,\n handleReaction,\n images,\n chatContext,\n message,\n messageActions,\n MessageActionList = DefaultMessageActionList,\n MessageActionListItem,\n messageContext,\n messageReactionTitle,\n messageTextNumberOfLines = DefaultMessageTextNumberOfLines,\n messagesContext,\n onlyEmojis,\n otherAttachments,\n overlay,\n overlayOpacity,\n OverlayReactionList = OverlayReactionListDefault,\n OverlayReactions = DefaultOverlayReactions,\n OverlayReactionsAvatar = OverlayReactionsAvatarDefault,\n setOverlay,\n threadList,\n videos,\n isMyMessage,\n messageReactions,\n error,\n isThreadMessage,\n } = props;\n\n const messageActionProps = {\n error,\n isMyMessage,\n isThreadMessage,\n message,\n messageReactions,\n };\n\n const { theme } = useTheme();\n\n const myMessageTheme = messagesContext?.myMessageTheme;\n const wrapMessageInTheme = clientId === message?.user?.id && !!myMessageTheme;\n\n const [myMessageThemeString, setMyMessageThemeString] = useState(JSON.stringify(myMessageTheme));\n\n useEffect(() => {\n if (myMessageTheme) {\n setMyMessageThemeString(JSON.stringify(myMessageTheme));\n }\n }, [myMessageTheme]);\n\n const modifiedTheme = useMemo(\n () => mergeThemes({ style: myMessageTheme, theme }),\n [myMessageThemeString, theme],\n );\n\n const {\n colors: { blue_alice, grey_gainsboro, grey_whisper, transparent, white_smoke },\n messageSimple: {\n content: {\n container: { borderRadiusL, borderRadiusS },\n containerInner,\n replyContainer,\n },\n },\n overlay: { container: containerStyle, padding: overlayPadding },\n } = wrapMessageInTheme ? modifiedTheme : theme;\n\n const messageHeight = useSharedValue(0);\n const messageLayout = useSharedValue({ x: 0, y: 0 });\n const messageWidth = useSharedValue(0);\n\n const offsetY = useSharedValue(0);\n const translateY = useSharedValue(0);\n const scale = useSharedValue(1);\n\n const showScreen = useSharedValue(0);\n const fadeScreen = () => {\n 'worklet';\n\n offsetY.value = 0;\n translateY.value = 0;\n scale.value = 1;\n showScreen.value = withSpring(1, {\n damping: 600,\n mass: 0.5,\n restDisplacementThreshold: 0.01,\n restSpeedThreshold: 0.01,\n stiffness: 200,\n velocity: 32,\n });\n };\n\n useEffect(() => {\n Keyboard.dismiss();\n fadeScreen();\n }, []);\n\n const onPan = useAnimatedGestureHandler<PanGestureHandlerGestureEvent>({\n onActive: (evt) => {\n translateY.value = offsetY.value + evt.translationY;\n overlayOpacity.value = interpolate(\n translateY.value,\n [0, halfScreenHeight],\n [1, 0.75],\n Extrapolate.CLAMP,\n );\n scale.value = interpolate(\n translateY.value,\n [0, halfScreenHeight],\n [1, 0.85],\n Extrapolate.CLAMP,\n );\n },\n onFinish: (evt) => {\n const finalYPosition = evt.translationY + evt.velocityY * 0.1;\n\n if (finalYPosition > halfScreenHeight && translateY.value > 0) {\n cancelAnimation(translateY);\n overlayOpacity.value = withTiming(\n 0,\n {\n duration: 200,\n easing: Easing.out(Easing.ease),\n },\n () => {\n runOnJS(setOverlay)('none');\n },\n );\n translateY.value =\n evt.velocityY > 1000\n ? withDecay({\n velocity: evt.velocityY,\n })\n : withTiming(screenHeight, {\n duration: 200,\n easing: Easing.out(Easing.ease),\n });\n } else {\n translateY.value = withTiming(0);\n scale.value = withTiming(1);\n overlayOpacity.value = withTiming(1);\n }\n },\n onStart: () => {\n cancelAnimation(translateY);\n offsetY.value = translateY.value;\n },\n });\n\n const panStyle = useAnimatedStyle<ViewStyle>(() => ({\n transform: [\n {\n translateY: translateY.value,\n },\n {\n scale: scale.value,\n },\n ],\n }));\n\n const showScreenStyle = useAnimatedStyle<ViewStyle>(\n () => ({\n transform: [\n {\n translateY: interpolate(showScreen.value, [0, 1], [messageHeight.value / 2, 0]),\n },\n {\n translateX: interpolate(\n showScreen.value,\n [0, 1],\n [alignment === 'left' ? -messageWidth.value / 2 : messageWidth.value / 2, 0],\n ),\n },\n {\n scale: showScreen.value,\n },\n ],\n }),\n [alignment],\n );\n\n const groupStyle = `${alignment}_${(groupStyles?.[0] || 'bottom').toLowerCase()}`;\n\n const hasThreadReplies = !!message?.reply_count;\n\n const { Attachment, FileAttachmentGroup, Gallery, MessageAvatar, Reply } = messagesContext || {};\n\n return (\n <ChatProvider value={chatContext}>\n <MessagesProvider value={messagesContext}>\n <MessageProvider value={messageContext}>\n <ThemeProvider mergedStyle={wrapMessageInTheme ? modifiedTheme : theme}>\n <Animated.View\n pointerEvents={'auto'}\n style={[StyleSheet.absoluteFillObject, containerStyle]}\n >\n <PanGestureHandler\n enabled={overlay === 'message'}\n maxPointers={1}\n minDist={10}\n onGestureEvent={onPan}\n >\n <Animated.View style={[StyleSheet.absoluteFillObject]}>\n <SafeAreaView style={styles.flex}>\n <TapGestureHandler\n maxDist={32}\n onHandlerStateChange={({ nativeEvent: { state } }) => {\n if (state === State.END) {\n setOverlay('none');\n }\n }}\n >\n <Animated.View style={[styles.flex, panStyle]}>\n {message && (\n <View\n style={[\n styles.center,\n styles.overlayPadding,\n { padding: overlayPadding },\n alignment === 'left' ? styles.alignStart : styles.alignEnd,\n ]}\n >\n {handleReaction && ownCapabilities?.sendReaction ? (\n <OverlayReactionList\n messageLayout={messageLayout}\n ownReactionTypes={\n message?.own_reactions?.map((reaction) => reaction.type) || []\n }\n showScreen={showScreen}\n />\n ) : null}\n <Animated.View\n onLayout={({\n nativeEvent: {\n layout: { height: layoutHeight, width: layoutWidth, x, y },\n },\n }) => {\n messageLayout.value = {\n x: alignment === 'left' ? x + layoutWidth : x,\n y,\n };\n messageWidth.value = layoutWidth;\n messageHeight.value = layoutHeight;\n }}\n style={[styles.alignEnd, styles.row, showScreenStyle]}\n >\n {alignment === 'left' && MessageAvatar && (\n <MessageAvatar {...{ alignment, message, showAvatar: true }} />\n )}\n <View\n pointerEvents='none'\n style={[\n styles.containerInner,\n {\n backgroundColor:\n onlyEmojis && !message.quoted_message\n ? transparent\n : otherAttachments?.length\n ? otherAttachments[0].type === 'giphy'\n ? !message.quoted_message\n ? transparent\n : grey_gainsboro\n : blue_alice\n : alignment === 'left'\n ? white_smoke\n : grey_gainsboro,\n borderBottomLeftRadius:\n (groupStyle === 'left_bottom' ||\n groupStyle === 'left_single') &&\n (!hasThreadReplies || threadList)\n ? borderRadiusS\n : borderRadiusL,\n borderBottomRightRadius:\n (groupStyle === 'right_bottom' ||\n groupStyle === 'right_single') &&\n (!hasThreadReplies || threadList)\n ? borderRadiusS\n : borderRadiusL,\n borderColor: grey_whisper,\n },\n (onlyEmojis && !message.quoted_message) ||\n otherAttachments?.length\n ? { borderWidth: 0 }\n : {},\n containerInner,\n ]}\n >\n {messagesContext?.messageContentOrder?.map(\n (messageContentType, messageContentOrderIndex) => {\n switch (messageContentType) {\n case 'quoted_reply':\n return (\n message.quoted_message &&\n Reply && (\n <View\n key={`quoted_reply_${messageContentOrderIndex}`}\n style={[styles.replyContainer, replyContainer]}\n >\n <Reply\n quotedMessage={\n message.quoted_message as ReplyProps<StreamChatGenerics>['quotedMessage']\n }\n styles={{\n messageContainer: {\n maxWidth: vw(60),\n },\n }}\n />\n </View>\n )\n );\n case 'attachments':\n return otherAttachments?.map(\n (attachment, attachmentIndex) =>\n Attachment && (\n <Attachment\n attachment={attachment}\n key={`${message.id}-${attachmentIndex}`}\n />\n ),\n );\n case 'files':\n return (\n FileAttachmentGroup && (\n <FileAttachmentGroup\n files={files}\n key={`file_attachment_group_${messageContentOrderIndex}`}\n messageId={message.id}\n />\n )\n );\n case 'gallery':\n return (\n Gallery && (\n <Gallery\n alignment={alignment}\n groupStyles={groupStyles}\n hasThreadReplies={!!message?.reply_count}\n images={images}\n key={`gallery_${messageContentOrderIndex}`}\n message={message}\n threadList={threadList}\n videos={videos}\n />\n )\n );\n case 'text':\n default:\n return otherAttachments?.length &&\n otherAttachments[0].actions ? null : (\n <MessageTextContainer<StreamChatGenerics>\n key={`message_text_container_${messageContentOrderIndex}`}\n message={message}\n messageOverlay\n messageTextNumberOfLines={messageTextNumberOfLines}\n onlyEmojis={onlyEmojis}\n />\n );\n }\n },\n )}\n </View>\n </Animated.View>\n {messageActions && (\n <MessageActionList\n MessageActionListItem={MessageActionListItem}\n showScreen={showScreen}\n {...messageActionProps}\n message={message}\n />\n )}\n {!!messageReactionTitle &&\n message.latest_reactions &&\n message.latest_reactions.length > 0 ? (\n <OverlayReactions\n alignment={alignment}\n OverlayReactionsAvatar={OverlayReactionsAvatar}\n reactions={\n message.latest_reactions.map((reaction) => ({\n alignment:\n clientId && clientId === reaction.user?.id ? 'right' : 'left',\n id: reaction?.user?.id || '',\n image: reaction?.user?.image,\n name: reaction?.user?.name || reaction.user_id || '',\n type: reaction.type,\n })) as Reaction[]\n }\n showScreen={showScreen}\n supportedReactions={messagesContext?.supportedReactions}\n title={messageReactionTitle}\n />\n ) : null}\n </View>\n )}\n </Animated.View>\n </TapGestureHandler>\n </SafeAreaView>\n </Animated.View>\n </PanGestureHandler>\n </Animated.View>\n </ThemeProvider>\n </MessageProvider>\n </MessagesProvider>\n </ChatProvider>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: MessageOverlayPropsWithContext<StreamChatGenerics>,\n nextProps: MessageOverlayPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n alignment: prevAlignment,\n message: prevMessage,\n messageReactionTitle: prevMessageReactionTitle,\n } = prevProps;\n const {\n alignment: nextAlignment,\n message: nextMessage,\n messageReactionTitle: nextMessageReactionTitle,\n } = nextProps;\n\n const alignmentEqual = prevAlignment === nextAlignment;\n if (!alignmentEqual) return false;\n\n const messageReactionTitleEqual = prevMessageReactionTitle === nextMessageReactionTitle;\n if (!messageReactionTitleEqual) return false;\n\n const latestReactionsEqual =\n Array.isArray(prevMessage?.latest_reactions) && Array.isArray(nextMessage?.latest_reactions)\n ? prevMessage?.latest_reactions.length === nextMessage?.latest_reactions.length &&\n prevMessage?.latest_reactions.every(\n ({ type }, index) => type === nextMessage?.latest_reactions?.[index].type,\n )\n : prevMessage?.latest_reactions === nextMessage?.latest_reactions;\n if (!latestReactionsEqual) return false;\n\n return true;\n};\n\nconst MemoizedMessageOverlay = React.memo(\n MessageOverlayWithContext,\n areEqual,\n) as typeof MessageOverlayWithContext;\n\nexport type MessageOverlayProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<Omit<MessageOverlayPropsWithContext<StreamChatGenerics>, 'overlayOpacity'>> &\n Pick<MessageOverlayPropsWithContext<StreamChatGenerics>, 'overlayOpacity'> &\n Pick<\n MessageOverlayPropsWithContext<StreamChatGenerics>,\n 'isMyMessage' | 'error' | 'isThreadMessage' | 'message' | 'messageReactions'\n >;\n\n/**\n * MessageOverlay - A high level component which implements all the logic required for a message overlay\n */\nexport const MessageOverlay = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageOverlayProps<StreamChatGenerics>,\n) => {\n const {\n data,\n MessageActionList,\n MessageActionListItem,\n OverlayReactionList,\n OverlayReactions,\n OverlayReactionsAvatar,\n } = useMessageOverlayContext<StreamChatGenerics>();\n const { overlay, setOverlay } = useOverlayContext();\n\n const componentProps = {\n MessageActionList: props.MessageActionList || MessageActionList,\n MessageActionListItem: props.MessageActionListItem || MessageActionListItem,\n OverlayReactionList:\n props.OverlayReactionList || OverlayReactionList || data?.OverlayReactionList,\n OverlayReactions: props.OverlayReactions || OverlayReactions,\n OverlayReactionsAvatar: props.OverlayReactionsAvatar || OverlayReactionsAvatar,\n };\n\n return (\n <MemoizedMessageOverlay\n {...{\n overlay,\n setOverlay,\n }}\n {...componentProps}\n {...(data || {})}\n {...props}\n />\n );\n};\n"]}
|
|
@@ -114,7 +114,7 @@ var ReactionIcon = function ReactionIcon(_ref) {
|
|
|
114
114
|
__self: _this,
|
|
115
115
|
__source: {
|
|
116
116
|
fileName: _jsxFileName,
|
|
117
|
-
lineNumber:
|
|
117
|
+
lineNumber: 123,
|
|
118
118
|
columnNumber: 10
|
|
119
119
|
}
|
|
120
120
|
});
|
|
@@ -177,7 +177,7 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
177
177
|
__self: _this,
|
|
178
178
|
__source: {
|
|
179
179
|
fileName: _jsxFileName,
|
|
180
|
-
lineNumber:
|
|
180
|
+
lineNumber: 208,
|
|
181
181
|
columnNumber: 7
|
|
182
182
|
}
|
|
183
183
|
}, _react["default"].createElement(_reactNative.View, {
|
|
@@ -185,7 +185,7 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
185
185
|
__self: _this,
|
|
186
186
|
__source: {
|
|
187
187
|
fileName: _jsxFileName,
|
|
188
|
-
lineNumber:
|
|
188
|
+
lineNumber: 209,
|
|
189
189
|
columnNumber: 9
|
|
190
190
|
}
|
|
191
191
|
}, _react["default"].createElement(OverlayReactionsAvatar, {
|
|
@@ -194,7 +194,7 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
194
194
|
__self: _this,
|
|
195
195
|
__source: {
|
|
196
196
|
fileName: _jsxFileName,
|
|
197
|
-
lineNumber:
|
|
197
|
+
lineNumber: 210,
|
|
198
198
|
columnNumber: 11
|
|
199
199
|
}
|
|
200
200
|
}), _react["default"].createElement(_reactNative.View, {
|
|
@@ -202,14 +202,14 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
202
202
|
__self: _this,
|
|
203
203
|
__source: {
|
|
204
204
|
fileName: _jsxFileName,
|
|
205
|
-
lineNumber:
|
|
205
|
+
lineNumber: 211,
|
|
206
206
|
columnNumber: 11
|
|
207
207
|
}
|
|
208
208
|
}, _react["default"].createElement(_reactNativeSvg["default"], {
|
|
209
209
|
__self: _this,
|
|
210
210
|
__source: {
|
|
211
211
|
fileName: _jsxFileName,
|
|
212
|
-
lineNumber:
|
|
212
|
+
lineNumber: 212,
|
|
213
213
|
columnNumber: 13
|
|
214
214
|
}
|
|
215
215
|
}, _react["default"].createElement(_reactNativeSvg.Circle, {
|
|
@@ -222,7 +222,7 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
222
222
|
__self: _this,
|
|
223
223
|
__source: {
|
|
224
224
|
fileName: _jsxFileName,
|
|
225
|
-
lineNumber:
|
|
225
|
+
lineNumber: 213,
|
|
226
226
|
columnNumber: 15
|
|
227
227
|
}
|
|
228
228
|
}), _react["default"].createElement(_reactNativeSvg.Circle, {
|
|
@@ -235,7 +235,7 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
235
235
|
__self: _this,
|
|
236
236
|
__source: {
|
|
237
237
|
fileName: _jsxFileName,
|
|
238
|
-
lineNumber:
|
|
238
|
+
lineNumber: 221,
|
|
239
239
|
columnNumber: 15
|
|
240
240
|
}
|
|
241
241
|
})), _react["default"].createElement(_reactNative.View, {
|
|
@@ -249,7 +249,7 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
249
249
|
__self: _this,
|
|
250
250
|
__source: {
|
|
251
251
|
fileName: _jsxFileName,
|
|
252
|
-
lineNumber:
|
|
252
|
+
lineNumber: 230,
|
|
253
253
|
columnNumber: 13
|
|
254
254
|
}
|
|
255
255
|
}), _react["default"].createElement(_reactNative.View, {
|
|
@@ -257,14 +257,14 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
257
257
|
__self: _this,
|
|
258
258
|
__source: {
|
|
259
259
|
fileName: _jsxFileName,
|
|
260
|
-
lineNumber:
|
|
260
|
+
lineNumber: 243,
|
|
261
261
|
columnNumber: 13
|
|
262
262
|
}
|
|
263
263
|
}, _react["default"].createElement(_reactNativeSvg["default"], {
|
|
264
264
|
__self: _this,
|
|
265
265
|
__source: {
|
|
266
266
|
fileName: _jsxFileName,
|
|
267
|
-
lineNumber:
|
|
267
|
+
lineNumber: 244,
|
|
268
268
|
columnNumber: 15
|
|
269
269
|
}
|
|
270
270
|
}, _react["default"].createElement(_reactNativeSvg.Circle, {
|
|
@@ -275,7 +275,7 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
275
275
|
__self: _this,
|
|
276
276
|
__source: {
|
|
277
277
|
fileName: _jsxFileName,
|
|
278
|
-
lineNumber:
|
|
278
|
+
lineNumber: 245,
|
|
279
279
|
columnNumber: 17
|
|
280
280
|
}
|
|
281
281
|
}))), _react["default"].createElement(_reactNative.View, {
|
|
@@ -289,7 +289,7 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
289
289
|
__self: _this,
|
|
290
290
|
__source: {
|
|
291
291
|
fileName: _jsxFileName,
|
|
292
|
-
lineNumber:
|
|
292
|
+
lineNumber: 253,
|
|
293
293
|
columnNumber: 13
|
|
294
294
|
}
|
|
295
295
|
}, _react["default"].createElement(ReactionIcon, {
|
|
@@ -300,7 +300,7 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
300
300
|
__self: _this,
|
|
301
301
|
__source: {
|
|
302
302
|
fileName: _jsxFileName,
|
|
303
|
-
lineNumber:
|
|
303
|
+
lineNumber: 270,
|
|
304
304
|
columnNumber: 15
|
|
305
305
|
}
|
|
306
306
|
})))), _react["default"].createElement(_reactNative.View, {
|
|
@@ -308,7 +308,7 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
308
308
|
__self: _this,
|
|
309
309
|
__source: {
|
|
310
310
|
fileName: _jsxFileName,
|
|
311
|
-
lineNumber:
|
|
311
|
+
lineNumber: 279,
|
|
312
312
|
columnNumber: 9
|
|
313
313
|
}
|
|
314
314
|
}, _react["default"].createElement(_reactNative.Text, {
|
|
@@ -318,7 +318,7 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
318
318
|
__self: _this,
|
|
319
319
|
__source: {
|
|
320
320
|
fileName: _jsxFileName,
|
|
321
|
-
lineNumber:
|
|
321
|
+
lineNumber: 280,
|
|
322
322
|
columnNumber: 11
|
|
323
323
|
}
|
|
324
324
|
}, name)));
|
|
@@ -347,7 +347,7 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
347
347
|
__self: _this,
|
|
348
348
|
__source: {
|
|
349
349
|
fileName: _jsxFileName,
|
|
350
|
-
lineNumber:
|
|
350
|
+
lineNumber: 308,
|
|
351
351
|
columnNumber: 5
|
|
352
352
|
}
|
|
353
353
|
}, _react["default"].createElement(_reactNative.Text, {
|
|
@@ -357,7 +357,7 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
357
357
|
__self: _this,
|
|
358
358
|
__source: {
|
|
359
359
|
fileName: _jsxFileName,
|
|
360
|
-
lineNumber:
|
|
360
|
+
lineNumber: 315,
|
|
361
361
|
columnNumber: 7
|
|
362
362
|
}
|
|
363
363
|
}, title), _react["default"].createElement(_reactNativeGestureHandler.FlatList, {
|
|
@@ -375,7 +375,7 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
375
375
|
__self: _this,
|
|
376
376
|
__source: {
|
|
377
377
|
fileName: _jsxFileName,
|
|
378
|
-
lineNumber:
|
|
378
|
+
lineNumber: 316,
|
|
379
379
|
columnNumber: 7
|
|
380
380
|
}
|
|
381
381
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["OverlayReactions.tsx"],"names":["styles","StyleSheet","create","avatarContainer","padding","avatarInnerContainer","alignSelf","avatarName","flex","fontSize","fontWeight","paddingTop","textAlign","avatarNameContainer","alignItems","flexDirection","flexGrow","container","borderRadius","marginTop","width","flatListContainer","paddingHorizontal","paddingVertical","flatListContentContainer","paddingBottom","reactionBubble","justifyContent","position","reactionBubbleBackground","height","title","reactionData","Icon","LoveReaction","type","ThumbsUpReaction","ThumbsDownReaction","LOLReaction","WutReaction","ReactionIcon","pathFill","size","supportedReactions","find","reaction","Unknown","OverlayReactions","props","overlayAlignment","alignment","reactions","showScreen","OverlayReactionsAvatar","layoutHeight","layoutWidth","theme","colors","accent_blue","black","grey_gainsboro","white","overlay","overlayPadding","avatarSize","radius","titleStyle","supportedReactionTypes","map","supportedReaction","filteredReactions","filter","includes","numColumns","Math","floor","Number","maxHeight","renderItem","item","name","x","y","left","top","absoluteFill","backgroundColor","borderColor","borderWidth","color","showScreenStyle","transform","translateY","value","translateX","scale","layout","nativeEvent","index","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { StyleSheet, Text, useWindowDimensions, View, ViewStyle } from 'react-native';\nimport { FlatList } from 'react-native-gesture-handler';\nimport Animated, { interpolate, useAnimatedStyle, useSharedValue } from 'react-native-reanimated';\nimport Svg, { Circle } from 'react-native-svg';\n\nimport type { Alignment } from '../../contexts/messageContext/MessageContext';\nimport type { MessageOverlayContextValue } from '../../contexts/messageOverlayContext/MessageOverlayContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport {\n LOLReaction,\n LoveReaction,\n ThumbsDownReaction,\n ThumbsUpReaction,\n Unknown,\n WutReaction,\n} from '../../icons';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport type { ReactionData } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n avatarContainer: {\n padding: 8,\n },\n avatarInnerContainer: {\n alignSelf: 'center',\n },\n avatarName: {\n flex: 1,\n fontSize: 12,\n fontWeight: '700',\n paddingTop: 6,\n textAlign: 'center',\n },\n avatarNameContainer: {\n alignItems: 'center',\n flexDirection: 'row',\n flexGrow: 1,\n },\n container: {\n alignItems: 'center',\n borderRadius: 16,\n marginTop: 8,\n width: '100%',\n },\n flatListContainer: {\n paddingHorizontal: 12,\n paddingVertical: 8,\n },\n flatListContentContainer: {\n alignItems: 'center',\n paddingBottom: 12,\n },\n reactionBubble: {\n alignItems: 'center',\n borderRadius: 24,\n justifyContent: 'center',\n position: 'absolute',\n },\n reactionBubbleBackground: {\n borderRadius: 24,\n height: 24,\n position: 'absolute',\n width: 24,\n },\n title: {\n fontSize: 16,\n fontWeight: '700',\n paddingTop: 16,\n },\n});\n\nconst reactionData: ReactionData[] = [\n {\n Icon: LoveReaction,\n type: 'love',\n },\n {\n Icon: ThumbsUpReaction,\n type: 'like',\n },\n {\n Icon: ThumbsDownReaction,\n type: 'sad',\n },\n {\n Icon: LOLReaction,\n type: 'haha',\n },\n {\n Icon: WutReaction,\n type: 'wow',\n },\n];\n\nexport type Reaction = {\n alignment: Alignment;\n name: string;\n type: string;\n image?: string;\n};\n\nexport type OverlayReactionsProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<MessageOverlayContextValue<StreamChatGenerics>, 'OverlayReactionsAvatar'> & {\n reactions: Reaction[];\n showScreen: Animated.SharedValue<number>;\n title: string;\n alignment?: Alignment;\n supportedReactions?: ReactionData[];\n};\n\nconst ReactionIcon: React.FC<\n Pick<Reaction, 'type'> & {\n pathFill: string;\n size: number;\n supportedReactions: ReactionData[];\n }\n> = ({ pathFill, size, supportedReactions, type }) => {\n const Icon = supportedReactions.find((reaction) => reaction.type === type)?.Icon || Unknown;\n return <Icon height={size} pathFill={pathFill} width={size} />;\n};\n\n/**\n * OverlayReactions - A high level component which implements all the logic required for message overlay reactions\n */\nexport const OverlayReactions: React.FC<OverlayReactionsProps> = (props) => {\n const {\n alignment: overlayAlignment,\n reactions,\n supportedReactions = reactionData,\n showScreen,\n title,\n OverlayReactionsAvatar,\n } = props;\n const layoutHeight = useSharedValue(0);\n const layoutWidth = useSharedValue(0);\n\n const {\n theme: {\n colors: { accent_blue, black, grey_gainsboro, white },\n overlay: {\n padding: overlayPadding,\n reactions: {\n avatarContainer,\n avatarName,\n avatarSize,\n container,\n flatListContainer,\n radius,\n reactionBubble,\n reactionBubbleBackground,\n title: titleStyle,\n },\n },\n },\n } = useTheme();\n\n const width = useWindowDimensions().width;\n const height = useWindowDimensions().height;\n\n const supportedReactionTypes = supportedReactions.map(\n (supportedReaction) => supportedReaction.type,\n );\n\n const filteredReactions = reactions.filter((reaction) =>\n supportedReactionTypes.includes(reaction.type),\n );\n\n const numColumns = Math.floor(\n (width -\n overlayPadding * 2 -\n ((Number(flatListContainer.paddingHorizontal || 0) ||\n styles.flatListContainer.paddingHorizontal) +\n (Number(avatarContainer.padding || 0) || styles.avatarContainer.padding)) *\n 2) /\n (avatarSize + (Number(avatarContainer.padding || 0) || styles.avatarContainer.padding) * 2),\n );\n\n const maxHeight = Math.floor(\n height -\n overlayPadding * 2 -\n ((Number(flatListContainer.paddingVertical || 0) ||\n styles.flatListContainer.paddingVertical) +\n (Number(avatarContainer.padding || 0) || styles.avatarContainer.padding)) *\n 2,\n );\n\n const renderItem = ({ item }: { item: Reaction }) => {\n const { alignment = 'left', name, type } = item;\n const x = avatarSize / 2 - (avatarSize / (radius * 4)) * (alignment === 'left' ? 1 : -1);\n const y = avatarSize - radius;\n\n const left =\n alignment === 'left'\n ? x -\n (Number(reactionBubbleBackground.width || 0) || styles.reactionBubbleBackground.width) +\n radius\n : x - radius;\n const top =\n y -\n radius -\n (Number(reactionBubbleBackground.height || 0) || styles.reactionBubbleBackground.height);\n\n return (\n <View style={[styles.avatarContainer, avatarContainer]}>\n <View style={styles.avatarInnerContainer}>\n <OverlayReactionsAvatar reaction={item} size={avatarSize} />\n <View style={[StyleSheet.absoluteFill]}>\n <Svg>\n <Circle\n cx={x - (radius * 2 - radius / 4) * (alignment === 'left' ? 1 : -1)}\n cy={y - radius * 2 - radius / 4}\n fill={alignment === 'left' ? grey_gainsboro : white}\n r={radius * 2}\n stroke={alignment === 'left' ? white : grey_gainsboro}\n strokeWidth={radius / 2}\n />\n <Circle\n cx={x}\n cy={y}\n fill={alignment === 'left' ? grey_gainsboro : white}\n r={radius}\n stroke={alignment === 'left' ? white : grey_gainsboro}\n strokeWidth={radius / 2}\n />\n </Svg>\n <View\n style={[\n styles.reactionBubbleBackground,\n {\n backgroundColor: alignment === 'left' ? grey_gainsboro : white,\n borderColor: alignment === 'left' ? white : grey_gainsboro,\n borderWidth: radius / 2,\n left,\n top,\n },\n reactionBubbleBackground,\n ]}\n />\n <View style={[StyleSheet.absoluteFill]}>\n <Svg>\n <Circle\n cx={x - (radius * 2 - radius / 4) * (alignment === 'left' ? 1 : -1)}\n cy={y - radius * 2 - radius / 4}\n fill={alignment === 'left' ? grey_gainsboro : white}\n r={radius * 2 - radius / 2}\n />\n </Svg>\n </View>\n <View\n style={[\n styles.reactionBubble,\n {\n backgroundColor: alignment === 'left' ? grey_gainsboro : white,\n height:\n (reactionBubble.borderRadius || styles.reactionBubble.borderRadius) -\n radius / 2,\n left,\n top,\n width:\n (reactionBubble.borderRadius || styles.reactionBubble.borderRadius) -\n radius / 2,\n },\n reactionBubble,\n ]}\n >\n <ReactionIcon\n pathFill={accent_blue}\n size={(reactionBubble.borderRadius || styles.reactionBubble.borderRadius) / 2}\n supportedReactions={supportedReactions}\n type={type}\n />\n </View>\n </View>\n </View>\n <View style={styles.avatarNameContainer}>\n <Text style={[styles.avatarName, { color: black }, avatarName]}>{name}</Text>\n </View>\n </View>\n );\n };\n\n const showScreenStyle = useAnimatedStyle<ViewStyle>(\n () => ({\n transform: [\n {\n translateY: interpolate(showScreen.value, [0, 1], [-layoutHeight.value / 2, 0]),\n },\n {\n translateX: interpolate(\n showScreen.value,\n [0, 1],\n [overlayAlignment === 'left' ? -layoutWidth.value / 2 : layoutWidth.value / 2, 0],\n ),\n },\n {\n scale: showScreen.value,\n },\n ],\n }),\n [overlayAlignment],\n );\n\n return (\n <Animated.View\n onLayout={({ nativeEvent: { layout } }) => {\n layoutWidth.value = layout.width;\n layoutHeight.value = layout.height;\n }}\n style={[styles.container, { backgroundColor: white }, container, showScreenStyle]}\n >\n <Text style={[styles.title, { color: black }, titleStyle]}>{title}</Text>\n <FlatList\n contentContainerStyle={styles.flatListContentContainer}\n data={filteredReactions}\n keyExtractor={({ name }, index) => `${name}_${index}`}\n numColumns={numColumns}\n renderItem={renderItem}\n style={[styles.flatListContainer, flatListContainer, { maxHeight: maxHeight / numColumns }]}\n />\n </Animated.View>\n );\n};\n\nOverlayReactions.displayName = 'OverlayReactions{overlay{reactions}}';\n"]}
|
|
1
|
+
{"version":3,"sources":["OverlayReactions.tsx"],"names":["styles","StyleSheet","create","avatarContainer","padding","avatarInnerContainer","alignSelf","avatarName","flex","fontSize","fontWeight","paddingTop","textAlign","avatarNameContainer","alignItems","flexDirection","flexGrow","container","borderRadius","marginTop","width","flatListContainer","paddingHorizontal","paddingVertical","flatListContentContainer","paddingBottom","reactionBubble","justifyContent","position","reactionBubbleBackground","height","title","reactionData","Icon","LoveReaction","type","ThumbsUpReaction","ThumbsDownReaction","LOLReaction","WutReaction","ReactionIcon","pathFill","size","supportedReactions","find","reaction","Unknown","OverlayReactions","props","overlayAlignment","alignment","reactions","showScreen","OverlayReactionsAvatar","layoutHeight","layoutWidth","theme","colors","accent_blue","black","grey_gainsboro","white","overlay","overlayPadding","avatarSize","radius","titleStyle","supportedReactionTypes","map","supportedReaction","filteredReactions","filter","includes","numColumns","Math","floor","Number","maxHeight","renderItem","item","name","x","y","left","top","absoluteFill","backgroundColor","borderColor","borderWidth","color","showScreenStyle","transform","translateY","value","translateX","scale","layout","nativeEvent","index","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { StyleSheet, Text, useWindowDimensions, View, ViewStyle } from 'react-native';\nimport { FlatList } from 'react-native-gesture-handler';\nimport Animated, { interpolate, useAnimatedStyle, useSharedValue } from 'react-native-reanimated';\nimport Svg, { Circle } from 'react-native-svg';\n\nimport type { Alignment } from '../../contexts/messageContext/MessageContext';\nimport type { MessageOverlayContextValue } from '../../contexts/messageOverlayContext/MessageOverlayContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport {\n LOLReaction,\n LoveReaction,\n ThumbsDownReaction,\n ThumbsUpReaction,\n Unknown,\n WutReaction,\n} from '../../icons';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport type { ReactionData } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n avatarContainer: {\n padding: 8,\n },\n avatarInnerContainer: {\n alignSelf: 'center',\n },\n avatarName: {\n flex: 1,\n fontSize: 12,\n fontWeight: '700',\n paddingTop: 6,\n textAlign: 'center',\n },\n avatarNameContainer: {\n alignItems: 'center',\n flexDirection: 'row',\n flexGrow: 1,\n },\n container: {\n alignItems: 'center',\n borderRadius: 16,\n marginTop: 8,\n width: '100%',\n },\n flatListContainer: {\n paddingHorizontal: 12,\n paddingVertical: 8,\n },\n flatListContentContainer: {\n alignItems: 'center',\n paddingBottom: 12,\n },\n reactionBubble: {\n alignItems: 'center',\n borderRadius: 24,\n justifyContent: 'center',\n position: 'absolute',\n },\n reactionBubbleBackground: {\n borderRadius: 24,\n height: 24,\n position: 'absolute',\n width: 24,\n },\n title: {\n fontSize: 16,\n fontWeight: '700',\n paddingTop: 16,\n },\n});\n\nconst reactionData: ReactionData[] = [\n {\n Icon: LoveReaction,\n type: 'love',\n },\n {\n Icon: ThumbsUpReaction,\n type: 'like',\n },\n {\n Icon: ThumbsDownReaction,\n type: 'sad',\n },\n {\n Icon: LOLReaction,\n type: 'haha',\n },\n {\n Icon: WutReaction,\n type: 'wow',\n },\n];\n\nexport type Reaction = {\n alignment: Alignment;\n id: string;\n name: string;\n type: string;\n image?: string;\n};\n\nexport type OverlayReactionsProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<MessageOverlayContextValue<StreamChatGenerics>, 'OverlayReactionsAvatar'> & {\n reactions: Reaction[];\n showScreen: Animated.SharedValue<number>;\n title: string;\n alignment?: Alignment;\n supportedReactions?: ReactionData[];\n};\n\nconst ReactionIcon: React.FC<\n Pick<Reaction, 'type'> & {\n pathFill: string;\n size: number;\n supportedReactions: ReactionData[];\n }\n> = ({ pathFill, size, supportedReactions, type }) => {\n const Icon = supportedReactions.find((reaction) => reaction.type === type)?.Icon || Unknown;\n return <Icon height={size} pathFill={pathFill} width={size} />;\n};\n\n/**\n * OverlayReactions - A high level component which implements all the logic required for message overlay reactions\n */\nexport const OverlayReactions: React.FC<OverlayReactionsProps> = (props) => {\n const {\n alignment: overlayAlignment,\n reactions,\n supportedReactions = reactionData,\n showScreen,\n title,\n OverlayReactionsAvatar,\n } = props;\n const layoutHeight = useSharedValue(0);\n const layoutWidth = useSharedValue(0);\n\n const {\n theme: {\n colors: { accent_blue, black, grey_gainsboro, white },\n overlay: {\n padding: overlayPadding,\n reactions: {\n avatarContainer,\n avatarName,\n avatarSize,\n container,\n flatListContainer,\n radius,\n reactionBubble,\n reactionBubbleBackground,\n title: titleStyle,\n },\n },\n },\n } = useTheme();\n\n const width = useWindowDimensions().width;\n const height = useWindowDimensions().height;\n\n const supportedReactionTypes = supportedReactions.map(\n (supportedReaction) => supportedReaction.type,\n );\n\n const filteredReactions = reactions.filter((reaction) =>\n supportedReactionTypes.includes(reaction.type),\n );\n\n const numColumns = Math.floor(\n (width -\n overlayPadding * 2 -\n ((Number(flatListContainer.paddingHorizontal || 0) ||\n styles.flatListContainer.paddingHorizontal) +\n (Number(avatarContainer.padding || 0) || styles.avatarContainer.padding)) *\n 2) /\n (avatarSize + (Number(avatarContainer.padding || 0) || styles.avatarContainer.padding) * 2),\n );\n\n const maxHeight = Math.floor(\n height -\n overlayPadding * 2 -\n ((Number(flatListContainer.paddingVertical || 0) ||\n styles.flatListContainer.paddingVertical) +\n (Number(avatarContainer.padding || 0) || styles.avatarContainer.padding)) *\n 2,\n );\n\n const renderItem = ({ item }: { item: Reaction }) => {\n const { alignment = 'left', name, type } = item;\n const x = avatarSize / 2 - (avatarSize / (radius * 4)) * (alignment === 'left' ? 1 : -1);\n const y = avatarSize - radius;\n\n const left =\n alignment === 'left'\n ? x -\n (Number(reactionBubbleBackground.width || 0) || styles.reactionBubbleBackground.width) +\n radius\n : x - radius;\n const top =\n y -\n radius -\n (Number(reactionBubbleBackground.height || 0) || styles.reactionBubbleBackground.height);\n\n return (\n <View style={[styles.avatarContainer, avatarContainer]}>\n <View style={styles.avatarInnerContainer}>\n <OverlayReactionsAvatar reaction={item} size={avatarSize} />\n <View style={[StyleSheet.absoluteFill]}>\n <Svg>\n <Circle\n cx={x - (radius * 2 - radius / 4) * (alignment === 'left' ? 1 : -1)}\n cy={y - radius * 2 - radius / 4}\n fill={alignment === 'left' ? grey_gainsboro : white}\n r={radius * 2}\n stroke={alignment === 'left' ? white : grey_gainsboro}\n strokeWidth={radius / 2}\n />\n <Circle\n cx={x}\n cy={y}\n fill={alignment === 'left' ? grey_gainsboro : white}\n r={radius}\n stroke={alignment === 'left' ? white : grey_gainsboro}\n strokeWidth={radius / 2}\n />\n </Svg>\n <View\n style={[\n styles.reactionBubbleBackground,\n {\n backgroundColor: alignment === 'left' ? grey_gainsboro : white,\n borderColor: alignment === 'left' ? white : grey_gainsboro,\n borderWidth: radius / 2,\n left,\n top,\n },\n reactionBubbleBackground,\n ]}\n />\n <View style={[StyleSheet.absoluteFill]}>\n <Svg>\n <Circle\n cx={x - (radius * 2 - radius / 4) * (alignment === 'left' ? 1 : -1)}\n cy={y - radius * 2 - radius / 4}\n fill={alignment === 'left' ? grey_gainsboro : white}\n r={radius * 2 - radius / 2}\n />\n </Svg>\n </View>\n <View\n style={[\n styles.reactionBubble,\n {\n backgroundColor: alignment === 'left' ? grey_gainsboro : white,\n height:\n (reactionBubble.borderRadius || styles.reactionBubble.borderRadius) -\n radius / 2,\n left,\n top,\n width:\n (reactionBubble.borderRadius || styles.reactionBubble.borderRadius) -\n radius / 2,\n },\n reactionBubble,\n ]}\n >\n <ReactionIcon\n pathFill={accent_blue}\n size={(reactionBubble.borderRadius || styles.reactionBubble.borderRadius) / 2}\n supportedReactions={supportedReactions}\n type={type}\n />\n </View>\n </View>\n </View>\n <View style={styles.avatarNameContainer}>\n <Text style={[styles.avatarName, { color: black }, avatarName]}>{name}</Text>\n </View>\n </View>\n );\n };\n\n const showScreenStyle = useAnimatedStyle<ViewStyle>(\n () => ({\n transform: [\n {\n translateY: interpolate(showScreen.value, [0, 1], [-layoutHeight.value / 2, 0]),\n },\n {\n translateX: interpolate(\n showScreen.value,\n [0, 1],\n [overlayAlignment === 'left' ? -layoutWidth.value / 2 : layoutWidth.value / 2, 0],\n ),\n },\n {\n scale: showScreen.value,\n },\n ],\n }),\n [overlayAlignment],\n );\n\n return (\n <Animated.View\n onLayout={({ nativeEvent: { layout } }) => {\n layoutWidth.value = layout.width;\n layoutHeight.value = layout.height;\n }}\n style={[styles.container, { backgroundColor: white }, container, showScreenStyle]}\n >\n <Text style={[styles.title, { color: black }, titleStyle]}>{title}</Text>\n <FlatList\n contentContainerStyle={styles.flatListContentContainer}\n data={filteredReactions}\n keyExtractor={({ name }, index) => `${name}_${index}`}\n numColumns={numColumns}\n renderItem={renderItem}\n style={[styles.flatListContainer, flatListContainer, { maxHeight: maxHeight / numColumns }]}\n />\n </Animated.View>\n );\n};\n\nOverlayReactions.displayName = 'OverlayReactions{overlay{reactions}}';\n"]}
|
|
@@ -36,7 +36,7 @@ var ChatProvider = function ChatProvider(_ref) {
|
|
|
36
36
|
__self: _this,
|
|
37
37
|
__source: {
|
|
38
38
|
fileName: _jsxFileName,
|
|
39
|
-
lineNumber:
|
|
39
|
+
lineNumber: 78,
|
|
40
40
|
columnNumber: 3
|
|
41
41
|
}
|
|
42
42
|
}, children);
|
|
@@ -63,7 +63,7 @@ var withChatContext = function withChatContext(Component) {
|
|
|
63
63
|
__self: _this,
|
|
64
64
|
__source: {
|
|
65
65
|
fileName: _jsxFileName,
|
|
66
|
-
lineNumber:
|
|
66
|
+
lineNumber: 111,
|
|
67
67
|
columnNumber: 12
|
|
68
68
|
}
|
|
69
69
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ChatContext.tsx"],"names":["ChatContext","React","createContext","DEFAULT_BASE_CONTEXT_VALUE","ChatProvider","children","value","useChatContext","contextValue","Error","withChatContext","Component","WithChatContextComponent","props","chatContext","displayName"],"mappings":";;;;;;;;;;;AAAA;;
|
|
1
|
+
{"version":3,"sources":["ChatContext.tsx"],"names":["ChatContext","React","createContext","DEFAULT_BASE_CONTEXT_VALUE","ChatProvider","children","value","useChatContext","contextValue","Error","withChatContext","Component","WithChatContextComponent","props","chatContext","displayName"],"mappings":";;;;;;;;;;;AAAA;;AAMA;;AAEA;;AACA;;;;;;;;;AA0DO,IAAMA,WAAW,GAAGC,kBAAMC,aAAN,CAAoBC,mDAApB,CAApB;;;;AAEA,IAAMC,YAAY,GAAG,SAAfA,YAAe;AAAA,MAG1BC,QAH0B,QAG1BA,QAH0B;AAAA,MAI1BC,KAJ0B,QAI1BA,KAJ0B;AAAA,SAQ1B,gCAAC,WAAD,CAAa,QAAb;AAAsB,IAAA,KAAK,EAAEA,KAA7B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACGD,QADH,CAR0B;AAAA,CAArB;;;;AAaA,IAAME,cAAc,GAAG,SAAjBA,cAAiB,GAEvB;AACL,MAAMC,YAAY,GAAG,uBAAWR,WAAX,CAArB;;AAEA,MAAIQ,YAAY,KAAKL,mDAAjB,IAA+C,CAAC,2CAApD,EAAyE;AACvE,UAAM,IAAIM,KAAJ,+MAAN;AAGD;;AAED,SAAOD,YAAP;AACD,CAZM;;;;AAmBA,IAAME,eAAe,GAAG,SAAlBA,eAAkB,CAI7BC,SAJ6B,EAKqC;AAClE,MAAMC,wBAAwB,GAAG,SAA3BA,wBAA2B,CAACC,KAAD,EAAgE;AAC/F,QAAMC,WAAW,GAAGP,cAAc,EAAlC;AAEA,WAAO,gCAAC,SAAD,gCAAgBM,KAAhB,EAAiCC,WAAjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAAP;AACD,GAJD;;AAKAF,EAAAA,wBAAwB,CAACG,WAAzB,uBAAyD,oCAAeJ,SAAf,CAAzD;AACA,SAAOC,wBAAP;AACD,CAbM","sourcesContent":["import React, { PropsWithChildren, useContext } from 'react';\nimport type { ImageProps } from 'react-native';\n\nimport type { AppSettingsAPIResponse, Channel, EventHandler, Mute, StreamChat } from 'stream-chat';\n\nimport type { DefaultStreamChatGenerics, UnknownType } from '../../types/types';\nimport { DEFAULT_BASE_CONTEXT_VALUE } from '../utils/defaultBaseContextValue';\n\nimport { getDisplayName } from '../utils/getDisplayName';\nimport { isTestEnvironment } from '../utils/isTestEnvironment';\n\nexport type ChatContextValue<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n /**\n * Object of application settings returned from Stream.\n * */\n appSettings: AppSettingsAPIResponse<StreamChatGenerics> | null;\n /**\n * The StreamChat client object\n *\n * ```\n * import { StreamChat } from 'stream-chat';\n * import { Chat } from 'stream-chat-react-native';\n *\n * const client = StreamChat.getInstance('api_key);\n * await client.connectUser('user_id', 'userToken');\n *\n * <Chat client={client}>\n * </Chat>\n * ```\n *\n * @overrideType StreamChat\n * */\n client: StreamChat<StreamChatGenerics>;\n connectionRecovering: boolean;\n enableOfflineSupport: boolean;\n ImageComponent: React.ComponentType<ImageProps>;\n isOnline: boolean;\n mutedUsers: Mute<StreamChatGenerics>[];\n /**\n * @param newChannel Channel to set as active.\n *\n * @overrideType Function\n */\n setActiveChannel: (newChannel?: Channel<StreamChatGenerics>) => void;\n subscribeConnectionRecoveredCallback: (callback: EventHandler<StreamChatGenerics>) => () => void;\n /**\n * Instance of channel object from stream-chat package.\n *\n * Please check the docs around how to create or query channel - https://getstream.io/chat/docs/javascript/creating_channels/?language=javascript\n *\n * ```\n * import { StreamChat, Channel } from 'stream-chat';\n * import { Chat, Channel} from 'stream-chat-react-native';\n *\n * const client = StreamChat.getInstance('api_key');\n * await client.connectUser('user_id', 'user_token');\n * const channel = client.channel('messaging', 'channel_id');\n * await channel.watch();\n * ```\n *\n * @overrideType Channel\n */\n channel?: Channel<StreamChatGenerics>;\n};\n\nexport const ChatContext = React.createContext(DEFAULT_BASE_CONTEXT_VALUE as ChatContextValue);\n\nexport const ChatProvider = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n children,\n value,\n}: PropsWithChildren<{\n value?: ChatContextValue<StreamChatGenerics>;\n}>) => (\n <ChatContext.Provider value={value as unknown as ChatContextValue}>\n {children}\n </ChatContext.Provider>\n);\n\nexport const useChatContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>() => {\n const contextValue = useContext(ChatContext) as unknown as ChatContextValue<StreamChatGenerics>;\n\n if (contextValue === DEFAULT_BASE_CONTEXT_VALUE && !isTestEnvironment()) {\n throw new Error(\n `The useChatContext hook was called outside the ChatContext Provider. Make sure you have configured Chat component correctly - https://getstream.io/chat/docs/sdk/reactnative/basics/hello_stream_chat/#chat`,\n );\n }\n\n return contextValue;\n};\n\n/**\n * Typescript currently does not support partial inference so if ChatContext\n * typing is desired while using the HOC withChatContext the Props for the\n * wrapped component must be provided as the first generic.\n */\nexport const withChatContext = <\n P extends UnknownType,\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n Component: React.ComponentType<P>,\n): React.FC<Omit<P, keyof ChatContextValue<StreamChatGenerics>>> => {\n const WithChatContextComponent = (props: Omit<P, keyof ChatContextValue<StreamChatGenerics>>) => {\n const chatContext = useChatContext<StreamChatGenerics>();\n\n return <Component {...(props as P)} {...chatContext} />;\n };\n WithChatContextComponent.displayName = `WithChatContext${getDisplayName(Component)}`;\n return WithChatContextComponent;\n};\n"]}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useDebugContext = exports.DebugContextProvider = exports.DebugContext = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
|
|
10
|
+
var _defaultBaseContextValue = require("../utils/defaultBaseContextValue");
|
|
11
|
+
|
|
12
|
+
var _this = this,
|
|
13
|
+
_jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/contexts/debugContext/DebugContext.tsx";
|
|
14
|
+
|
|
15
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
16
|
+
|
|
17
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
18
|
+
|
|
19
|
+
var DebugContext = _react["default"].createContext(_defaultBaseContextValue.DEFAULT_BASE_CONTEXT_VALUE);
|
|
20
|
+
|
|
21
|
+
exports.DebugContext = DebugContext;
|
|
22
|
+
|
|
23
|
+
var DebugContextProvider = function DebugContextProvider(_ref) {
|
|
24
|
+
var children = _ref.children,
|
|
25
|
+
useFlipper = _ref.useFlipper;
|
|
26
|
+
var debugRef = (0, _react.useRef)({
|
|
27
|
+
eventType: undefined,
|
|
28
|
+
sendEventParams: undefined
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
var _useFlipper = useFlipper(),
|
|
32
|
+
updateData = _useFlipper.updateData;
|
|
33
|
+
|
|
34
|
+
var ref = (0, _react.useRef)({
|
|
35
|
+
setEventType: function setEventType(data) {
|
|
36
|
+
debugRef.current.eventType = data;
|
|
37
|
+
updateData(debugRef);
|
|
38
|
+
},
|
|
39
|
+
setSendEventParams: function setSendEventParams(data) {
|
|
40
|
+
debugRef.current.sendEventParams = data;
|
|
41
|
+
updateData(debugRef);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
return _react["default"].createElement(DebugContext.Provider, {
|
|
45
|
+
value: ref,
|
|
46
|
+
__self: _this,
|
|
47
|
+
__source: {
|
|
48
|
+
fileName: _jsxFileName,
|
|
49
|
+
lineNumber: 65,
|
|
50
|
+
columnNumber: 5
|
|
51
|
+
}
|
|
52
|
+
}, children);
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
exports.DebugContextProvider = DebugContextProvider;
|
|
56
|
+
|
|
57
|
+
var useDebugContext = function useDebugContext() {
|
|
58
|
+
var contextValue = (0, _react.useContext)(DebugContext);
|
|
59
|
+
return contextValue;
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
exports.useDebugContext = useDebugContext;
|
|
63
|
+
//# sourceMappingURL=DebugContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["DebugContext.tsx"],"names":["DebugContext","React","createContext","DEFAULT_BASE_CONTEXT_VALUE","DebugContextProvider","children","useFlipper","debugRef","eventType","undefined","sendEventParams","updateData","ref","setEventType","data","current","setSendEventParams","useDebugContext","contextValue"],"mappings":";;;;;;;AAAA;;AAOA;;;;;;;;;AAwBO,IAAMA,YAAY,GAAGC,kBAAMC,aAAN,CAC1BC,mDAD0B,CAArB;;;;AAIA,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAuB,OAS7B;AAAA,MANLC,QAMK,QANLA,QAMK;AAAA,MALLC,UAKK,QALLA,UAKK;AACL,MAAMC,QAAQ,GAAG,mBAA8C;AAC7DC,IAAAA,SAAS,EAAEC,SADkD;AAE7DC,IAAAA,eAAe,EAAED;AAF4C,GAA9C,CAAjB;;AAKA,oBAAuBH,UAAU,EAAjC;AAAA,MAAQK,UAAR,eAAQA,UAAR;;AAEA,MAAMC,GAAG,GAAG,mBAA8C;AACxDC,IAAAA,YAAY,EAAE,sBAACC,IAAD,EAAkB;AAC9BP,MAAAA,QAAQ,CAACQ,OAAT,CAAiBP,SAAjB,GAA6BM,IAA7B;AACAH,MAAAA,UAAU,CAACJ,QAAD,CAAV;AACD,KAJuD;AAKxDS,IAAAA,kBAAkB,EAAE,4BAACF,IAAD,EAAuE;AACzFP,MAAAA,QAAQ,CAACQ,OAAT,CAAiBL,eAAjB,GAAmCI,IAAnC;AACAH,MAAAA,UAAU,CAACJ,QAAD,CAAV;AACD;AARuD,GAA9C,CAAZ;AAWA,SACE,gCAAC,YAAD,CAAc,QAAd;AAAuB,IAAA,KAAK,EAAEK,GAA9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACGP,QADH,CADF;AAKD,CAjCM;;;;AAmCA,IAAMY,eAAe,GAAG,SAAlBA,eAAkB,GAAM;AACnC,MAAMC,YAAY,GAAG,uBACnBlB,YADmB,CAArB;AAIA,SAAOkB,YAAP;AACD,CANM","sourcesContent":["import React, { PropsWithChildren, useContext, useRef } from 'react';\n\nimport type { Channel, ChannelState, StreamChat } from 'stream-chat';\n\nimport type { MessageType } from '../../components/MessageList/hooks/useMessageList';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\n\nimport { DEFAULT_BASE_CONTEXT_VALUE } from '../utils/defaultBaseContextValue';\n\nexport type DebugDataType<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> =\n | StreamChat<StreamChatGenerics>['user']\n | {\n data: Channel<StreamChatGenerics>['data'];\n members: ChannelState<StreamChatGenerics>['members'];\n }[]\n | MessageType<StreamChatGenerics>[];\n\nexport type DebugContextValue<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n eventType?: string;\n sendEventParams?: {\n action: string;\n data: DebugDataType<StreamChatGenerics>;\n };\n setEventType?: (data: string) => void;\n setSendEventParams?: (data: { action: string; data: DebugDataType<StreamChatGenerics> }) => void;\n};\n\nexport const DebugContext = React.createContext(\n DEFAULT_BASE_CONTEXT_VALUE as React.MutableRefObject<DebugContextValue>,\n);\n\nexport const DebugContextProvider = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n children,\n useFlipper,\n}: PropsWithChildren<{\n useFlipper: () => {\n updateData: (ref: React.RefObject<DebugContextValue<StreamChatGenerics>>) => void;\n };\n}>) => {\n const debugRef = useRef<DebugContextValue<StreamChatGenerics>>({\n eventType: undefined,\n sendEventParams: undefined,\n });\n\n const { updateData } = useFlipper();\n\n const ref = useRef<DebugContextValue<StreamChatGenerics>>({\n setEventType: (data: string) => {\n debugRef.current.eventType = data;\n updateData(debugRef);\n },\n setSendEventParams: (data: { action: string; data: DebugDataType<StreamChatGenerics> }) => {\n debugRef.current.sendEventParams = data;\n updateData(debugRef);\n },\n });\n\n return (\n <DebugContext.Provider value={ref as unknown as React.MutableRefObject<DebugContextValue>}>\n {children}\n </DebugContext.Provider>\n );\n};\n\nexport const useDebugContext = () => {\n const contextValue = useContext(\n DebugContext,\n ) as unknown as React.MutableRefObject<DebugContextValue>;\n\n return contextValue;\n};\n"]}
|
|
@@ -54,6 +54,19 @@ Object.keys(_ChatContext).forEach(function (key) {
|
|
|
54
54
|
});
|
|
55
55
|
});
|
|
56
56
|
|
|
57
|
+
var _DebugContext = require("./debugContext/DebugContext");
|
|
58
|
+
|
|
59
|
+
Object.keys(_DebugContext).forEach(function (key) {
|
|
60
|
+
if (key === "default" || key === "__esModule") return;
|
|
61
|
+
if (key in exports && exports[key] === _DebugContext[key]) return;
|
|
62
|
+
Object.defineProperty(exports, key, {
|
|
63
|
+
enumerable: true,
|
|
64
|
+
get: function get() {
|
|
65
|
+
return _DebugContext[key];
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
|
|
57
70
|
var _ImageGalleryContext = require("./imageGalleryContext/ImageGalleryContext");
|
|
58
71
|
|
|
59
72
|
Object.keys(_ImageGalleryContext).forEach(function (key) {
|