@replyke/ui-core-react-native 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/dist/cjs/components/CustomButton.d.ts +11 -0
  2. package/dist/cjs/components/CustomButton.js +27 -0
  3. package/dist/cjs/components/CustomButton.js.map +1 -0
  4. package/dist/cjs/components/EmojiSuggestions.d.ts +6 -0
  5. package/dist/cjs/components/EmojiSuggestions.js +59 -0
  6. package/dist/cjs/components/EmojiSuggestions.js.map +1 -0
  7. package/dist/cjs/components/FromNow.d.ts +9 -0
  8. package/dist/cjs/components/FromNow.js +54 -0
  9. package/dist/cjs/components/FromNow.js.map +1 -0
  10. package/dist/cjs/components/GiphyContainer.d.ts +14 -0
  11. package/dist/cjs/components/GiphyContainer.js +232 -0
  12. package/dist/cjs/components/GiphyContainer.js.map +1 -0
  13. package/dist/cjs/components/Skeleton.d.ts +6 -0
  14. package/dist/cjs/components/Skeleton.js +56 -0
  15. package/dist/cjs/components/Skeleton.js.map +1 -0
  16. package/dist/cjs/components/UserAvatar.d.ts +12 -0
  17. package/dist/cjs/components/UserAvatar.js +41 -0
  18. package/dist/cjs/components/UserAvatar.js.map +1 -0
  19. package/dist/cjs/components/index.d.ts +6 -0
  20. package/dist/cjs/components/index.js +21 -0
  21. package/dist/cjs/components/index.js.map +1 -0
  22. package/dist/cjs/constants/index.d.ts +1 -0
  23. package/dist/cjs/constants/index.js +18 -0
  24. package/dist/cjs/constants/index.js.map +1 -0
  25. package/dist/cjs/constants/reset-styles.d.ts +9 -0
  26. package/dist/cjs/constants/reset-styles.js +40 -0
  27. package/dist/cjs/constants/reset-styles.js.map +1 -0
  28. package/dist/cjs/helpers/getImageComponent.d.ts +10 -0
  29. package/dist/cjs/helpers/getImageComponent.js +25 -0
  30. package/dist/cjs/helpers/getImageComponent.js.map +1 -0
  31. package/dist/cjs/helpers/index.d.ts +2 -0
  32. package/dist/cjs/helpers/index.js +8 -0
  33. package/dist/cjs/helpers/index.js.map +1 -0
  34. package/dist/cjs/helpers/parseContentWithMentions.d.ts +2 -0
  35. package/dist/cjs/helpers/parseContentWithMentions.js +44 -0
  36. package/dist/cjs/helpers/parseContentWithMentions.js.map +1 -0
  37. package/dist/cjs/hooks/index.d.ts +1 -0
  38. package/dist/cjs/hooks/index.js +9 -0
  39. package/dist/cjs/hooks/index.js.map +1 -0
  40. package/dist/cjs/hooks/useTextInputCursorIndicator.d.ts +7 -0
  41. package/dist/cjs/hooks/useTextInputCursorIndicator.js +24 -0
  42. package/dist/cjs/hooks/useTextInputCursorIndicator.js.map +1 -0
  43. package/dist/cjs/icons/FlagIcon.d.ts +7 -0
  44. package/dist/cjs/icons/FlagIcon.js +42 -0
  45. package/dist/cjs/icons/FlagIcon.js.map +1 -0
  46. package/dist/cjs/icons/HeartFullIcon.d.ts +7 -0
  47. package/dist/cjs/icons/HeartFullIcon.js +40 -0
  48. package/dist/cjs/icons/HeartFullIcon.js.map +1 -0
  49. package/dist/cjs/icons/HeartIcon.d.ts +7 -0
  50. package/dist/cjs/icons/HeartIcon.js +40 -0
  51. package/dist/cjs/icons/HeartIcon.js.map +1 -0
  52. package/dist/cjs/icons/MagnifyingGlassIcon.d.ts +8 -0
  53. package/dist/cjs/icons/MagnifyingGlassIcon.js +40 -0
  54. package/dist/cjs/icons/MagnifyingGlassIcon.js.map +1 -0
  55. package/dist/cjs/icons/TrashIcon.d.ts +7 -0
  56. package/dist/cjs/icons/TrashIcon.js +40 -0
  57. package/dist/cjs/icons/TrashIcon.js.map +1 -0
  58. package/dist/cjs/icons/index.d.ts +6 -0
  59. package/dist/cjs/icons/index.js +17 -0
  60. package/dist/cjs/icons/index.js.map +1 -0
  61. package/dist/cjs/index.d.ts +5 -0
  62. package/dist/cjs/index.js +22 -0
  63. package/dist/cjs/index.js.map +1 -0
  64. package/dist/esm/components/CustomButton.d.ts +11 -0
  65. package/dist/esm/components/CustomButton.js +25 -0
  66. package/dist/esm/components/CustomButton.js.map +1 -0
  67. package/dist/esm/components/EmojiSuggestions.d.ts +6 -0
  68. package/dist/esm/components/EmojiSuggestions.js +57 -0
  69. package/dist/esm/components/EmojiSuggestions.js.map +1 -0
  70. package/dist/esm/components/FromNow.d.ts +9 -0
  71. package/dist/esm/components/FromNow.js +49 -0
  72. package/dist/esm/components/FromNow.js.map +1 -0
  73. package/dist/esm/components/GiphyContainer.d.ts +14 -0
  74. package/dist/esm/components/GiphyContainer.js +229 -0
  75. package/dist/esm/components/GiphyContainer.js.map +1 -0
  76. package/dist/esm/components/Skeleton.d.ts +6 -0
  77. package/dist/esm/components/Skeleton.js +52 -0
  78. package/dist/esm/components/Skeleton.js.map +1 -0
  79. package/dist/esm/components/UserAvatar.d.ts +12 -0
  80. package/dist/esm/components/UserAvatar.js +39 -0
  81. package/dist/esm/components/UserAvatar.js.map +1 -0
  82. package/dist/esm/components/index.d.ts +6 -0
  83. package/dist/esm/components/index.js +7 -0
  84. package/dist/esm/components/index.js.map +1 -0
  85. package/dist/esm/constants/index.d.ts +1 -0
  86. package/dist/esm/constants/index.js +2 -0
  87. package/dist/esm/constants/index.js.map +1 -0
  88. package/dist/esm/constants/reset-styles.d.ts +9 -0
  89. package/dist/esm/constants/reset-styles.js +37 -0
  90. package/dist/esm/constants/reset-styles.js.map +1 -0
  91. package/dist/esm/helpers/getImageComponent.d.ts +10 -0
  92. package/dist/esm/helpers/getImageComponent.js +21 -0
  93. package/dist/esm/helpers/getImageComponent.js.map +1 -0
  94. package/dist/esm/helpers/index.d.ts +2 -0
  95. package/dist/esm/helpers/index.js +3 -0
  96. package/dist/esm/helpers/index.js.map +1 -0
  97. package/dist/esm/helpers/parseContentWithMentions.d.ts +2 -0
  98. package/dist/esm/helpers/parseContentWithMentions.js +40 -0
  99. package/dist/esm/helpers/parseContentWithMentions.js.map +1 -0
  100. package/dist/esm/hooks/index.d.ts +1 -0
  101. package/dist/esm/hooks/index.js +2 -0
  102. package/dist/esm/hooks/index.js.map +1 -0
  103. package/dist/esm/hooks/useTextInputCursorIndicator.d.ts +7 -0
  104. package/dist/esm/hooks/useTextInputCursorIndicator.js +21 -0
  105. package/dist/esm/hooks/useTextInputCursorIndicator.js.map +1 -0
  106. package/dist/esm/icons/FlagIcon.d.ts +7 -0
  107. package/dist/esm/icons/FlagIcon.js +7 -0
  108. package/dist/esm/icons/FlagIcon.js.map +1 -0
  109. package/dist/esm/icons/HeartFullIcon.d.ts +7 -0
  110. package/dist/esm/icons/HeartFullIcon.js +5 -0
  111. package/dist/esm/icons/HeartFullIcon.js.map +1 -0
  112. package/dist/esm/icons/HeartIcon.d.ts +7 -0
  113. package/dist/esm/icons/HeartIcon.js +5 -0
  114. package/dist/esm/icons/HeartIcon.js.map +1 -0
  115. package/dist/esm/icons/MagnifyingGlassIcon.d.ts +8 -0
  116. package/dist/esm/icons/MagnifyingGlassIcon.js +5 -0
  117. package/dist/esm/icons/MagnifyingGlassIcon.js.map +1 -0
  118. package/dist/esm/icons/TrashIcon.d.ts +7 -0
  119. package/dist/esm/icons/TrashIcon.js +5 -0
  120. package/dist/esm/icons/TrashIcon.js.map +1 -0
  121. package/dist/esm/icons/index.d.ts +6 -0
  122. package/dist/esm/icons/index.js +7 -0
  123. package/dist/esm/icons/index.js.map +1 -0
  124. package/dist/esm/index.d.ts +5 -0
  125. package/dist/esm/index.js +6 -0
  126. package/dist/esm/index.js.map +1 -0
  127. package/package.json +62 -0
@@ -0,0 +1,25 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { View, Text, TouchableOpacity, } from "react-native";
3
+ const CustomButton = ({ onPress, text, activeText, error, disabled, style, submitting, }) => {
4
+ const baseStyle = {
5
+ backgroundColor: "#60a5fa",
6
+ paddingHorizontal: 16,
7
+ paddingVertical: 20,
8
+ flexDirection: "row",
9
+ alignItems: "center",
10
+ justifyContent: "center",
11
+ borderRadius: 12,
12
+ };
13
+ const textStyle = {
14
+ fontSize: 18,
15
+ fontWeight: "500",
16
+ color: "#ffffff",
17
+ };
18
+ const errorStyle = {
19
+ color: "#ef4444",
20
+ marginTop: 4,
21
+ };
22
+ return (_jsxs(View, { style: style, children: [disabled ? (_jsx(View, { style: { ...baseStyle, opacity: 0.5, pointerEvents: "none" }, children: _jsx(Text, { style: textStyle, children: submitting ? activeText : text }) })) : (_jsx(TouchableOpacity, { onPress: onPress, style: baseStyle, children: _jsx(Text, { style: textStyle, children: submitting ? activeText : text }) })), error && _jsx(Text, { style: errorStyle, children: error })] }));
23
+ };
24
+ export default CustomButton;
25
+ //# sourceMappingURL=CustomButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomButton.js","sourceRoot":"","sources":["../../../src/components/CustomButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,IAAI,EACJ,IAAI,EACJ,gBAAgB,GAIjB,MAAM,cAAc,CAAC;AAEtB,MAAM,YAAY,GAAG,CAAC,EACpB,OAAO,EACP,IAAI,EACJ,UAAU,EACV,KAAK,EACL,QAAQ,EACR,KAAK,EACL,UAAU,GASX,EAAE,EAAE;IACH,MAAM,SAAS,GAAc;QAC3B,eAAe,EAAE,SAAS;QAC1B,iBAAiB,EAAE,EAAE;QACrB,eAAe,EAAE,EAAE;QACnB,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,QAAQ;QACxB,YAAY,EAAE,EAAE;KACjB,CAAC;IAEF,MAAM,SAAS,GAAc;QAC3B,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,KAAK;QACjB,KAAK,EAAE,SAAS;KACjB,CAAC;IAEF,MAAM,UAAU,GAAc;QAC5B,KAAK,EAAE,SAAS;QAChB,SAAS,EAAE,CAAC;KACb,CAAC;IAEF,OAAO,CACL,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,aACf,QAAQ,CAAC,CAAC,CAAC,CACV,KAAC,IAAI,IAAC,KAAK,EAAE,EAAE,GAAG,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,YAChE,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,YAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,GAAQ,GAC1D,CACR,CAAC,CAAC,CAAC,CACF,KAAC,gBAAgB,IAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,YAClD,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,YAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,GAAQ,GAC9C,CACpB,EAEA,KAAK,IAAI,KAAC,IAAI,IAAC,KAAK,EAAE,UAAU,YAAG,KAAK,GAAQ,IAC5C,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ interface EmojiSuggestionsProps {
3
+ onEmojiClick: (emoji: string) => void;
4
+ }
5
+ declare const EmojiSuggestions: React.FC<EmojiSuggestionsProps>;
6
+ export default EmojiSuggestions;
@@ -0,0 +1,57 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useEffect, useState } from "react";
3
+ import { View, Text, TouchableOpacity, Animated } from "react-native";
4
+ const emojiGroup1 = ["😂", "❤️", "🤣", "😍", "🙏"];
5
+ const emojiGroup2 = ["🥰", "😊", "😭", "👍", "😅"];
6
+ const emojiGroup3 = ["😢", "👏", "💕", "🥺", "😘"];
7
+ const emojiGroup4 = ["🤔", "🤗", "🙌", "😎", "✨"];
8
+ const EmojiSuggestions = ({ onEmojiClick, }) => {
9
+ const [clickedEmoji, setClickedEmoji] = useState(null);
10
+ const [scaleAnim] = useState(new Animated.Value(1));
11
+ const [emojiSubset, setEmojiSubset] = useState([]);
12
+ useEffect(() => {
13
+ // Pick 8 random emojis from the array
14
+ const combinedEmojis = [...emojiGroup1, ...emojiGroup2, ...emojiGroup3];
15
+ const shuffled = combinedEmojis.sort(() => 0.5 - Math.random());
16
+ setEmojiSubset(shuffled.slice(0, 8));
17
+ }, []);
18
+ const handleEmojiClick = (emoji) => {
19
+ setClickedEmoji(emoji);
20
+ // Shrink animation
21
+ Animated.sequence([
22
+ Animated.timing(scaleAnim, {
23
+ toValue: 0.8,
24
+ duration: 100,
25
+ useNativeDriver: true,
26
+ }),
27
+ Animated.timing(scaleAnim, {
28
+ toValue: 1,
29
+ duration: 100,
30
+ useNativeDriver: true,
31
+ }),
32
+ ]).start(() => {
33
+ setClickedEmoji(null);
34
+ });
35
+ onEmojiClick(emoji);
36
+ };
37
+ return (_jsx(View, { style: {
38
+ borderBottomWidth: 0.5,
39
+ borderBottomColor: "#e6e6e6",
40
+ padding: 8,
41
+ flexDirection: "row",
42
+ justifyContent: "space-around", // Distribute emojis evenly
43
+ alignItems: "center",
44
+ }, children: emojiSubset.map((emoji) => (_jsx(TouchableOpacity, { onPress: () => handleEmojiClick(emoji), activeOpacity: 0.7, children: _jsx(Animated.View, { style: {
45
+ transform: [
46
+ {
47
+ scale: clickedEmoji === emoji ? scaleAnim : 1,
48
+ },
49
+ ],
50
+ justifyContent: "center",
51
+ alignItems: "center",
52
+ }, children: _jsx(Text, { style: {
53
+ fontSize: 24,
54
+ }, children: emoji }) }) }, emoji))) }));
55
+ };
56
+ export default EmojiSuggestions;
57
+ //# sourceMappingURL=EmojiSuggestions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmojiSuggestions.js","sourceRoot":"","sources":["../../../src/components/EmojiSuggestions.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ declare function FromNow({ time, fontSize, fontWeight, color, lean, justNowText, }: {
2
+ time: Date | string;
3
+ fontSize?: number;
4
+ fontWeight?: number;
5
+ color?: string;
6
+ lean?: boolean;
7
+ justNowText?: string;
8
+ }): import("react/jsx-runtime").JSX.Element;
9
+ export default FromNow;
@@ -0,0 +1,49 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import moment from "moment";
3
+ import { Text } from "react-native";
4
+ function formatTime(time, justNowText) {
5
+ const now = new Date();
6
+ const then = new Date(time);
7
+ const seconds = Math.floor((now.getTime() - then.getTime()) / 1000);
8
+ let timeString = "";
9
+ if (seconds < 20) {
10
+ timeString = justNowText;
11
+ }
12
+ else if (seconds < 60) {
13
+ timeString = `${seconds}s`;
14
+ }
15
+ else if (seconds < 3600) {
16
+ timeString = `${Math.floor(seconds / 60)}m`;
17
+ }
18
+ else if (seconds < 86400) {
19
+ timeString = `${Math.floor(seconds / 3600)}h`;
20
+ }
21
+ else if (seconds < 2592000) {
22
+ // 30 days
23
+ timeString = `${Math.floor(seconds / 86400)}d`;
24
+ }
25
+ else if (seconds < 31536000) {
26
+ // 365 days
27
+ timeString = `${Math.floor(seconds / 2592000)}mo`;
28
+ }
29
+ else {
30
+ timeString = `${Math.floor(seconds / 31536000)}y`;
31
+ }
32
+ return timeString;
33
+ }
34
+ function FromNow({ time, fontSize = 12, fontWeight = 400, color = "#737373", lean, justNowText = "Just now", }) {
35
+ if (lean) {
36
+ return (_jsx(Text, { style: {
37
+ fontSize,
38
+ fontWeight: fontWeight,
39
+ color,
40
+ }, children: formatTime(time, justNowText) }));
41
+ }
42
+ return (_jsx(Text, { style: {
43
+ fontSize,
44
+ fontWeight: fontWeight,
45
+ color,
46
+ }, children: moment(new Date(time)).fromNow() }));
47
+ }
48
+ export default FromNow;
49
+ //# sourceMappingURL=FromNow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FromNow.js","sourceRoot":"","sources":["../../../src/components/FromNow.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAGpC,SAAS,UAAU,CAAC,IAAmB,EAAE,WAAmB;IAC1D,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IAEpE,IAAI,UAAU,GAAG,EAAE,CAAC;IAEpB,IAAI,OAAO,GAAG,EAAE,EAAE,CAAC;QACjB,UAAU,GAAG,WAAW,CAAC;IAC3B,CAAC;SAAM,IAAI,OAAO,GAAG,EAAE,EAAE,CAAC;QACxB,UAAU,GAAG,GAAG,OAAO,GAAG,CAAC;IAC7B,CAAC;SAAM,IAAI,OAAO,GAAG,IAAI,EAAE,CAAC;QAC1B,UAAU,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC;IAC9C,CAAC;SAAM,IAAI,OAAO,GAAG,KAAK,EAAE,CAAC;QAC3B,UAAU,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;IAChD,CAAC;SAAM,IAAI,OAAO,GAAG,OAAO,EAAE,CAAC;QAC7B,UAAU;QACV,UAAU,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC;IACjD,CAAC;SAAM,IAAI,OAAO,GAAG,QAAQ,EAAE,CAAC;QAC9B,WAAW;QACX,UAAU,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IACpD,CAAC;SAAM,CAAC;QACN,UAAU,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC;IACpD,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,OAAO,CAAC,EACf,IAAI,EACJ,QAAQ,GAAG,EAAE,EACb,UAAU,GAAG,GAAG,EAChB,KAAK,GAAG,SAAS,EACjB,IAAI,EACJ,WAAW,GAAG,UAAU,GAQzB;IACC,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CACL,KAAC,IAAI,IACH,KAAK,EAAE;gBACL,QAAQ;gBACR,UAAU,EAAE,UAAwB;gBACpC,KAAK;aACN,YAEA,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,GACzB,CACR,CAAC;IACJ,CAAC;IACD,OAAO,CACL,KAAC,IAAI,IACH,KAAK,EAAE;YACL,QAAQ;YACR,UAAU,EAAE,UAAwB;YACpC,KAAK;SACN,YAEA,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,GAC5B,CACR,CAAC;AACJ,CAAC;AAED,eAAe,OAAO,CAAC"}
@@ -0,0 +1,14 @@
1
+ interface GiphyContainerProps {
2
+ onClickBack: () => void;
3
+ onSelectGif: (selectedGif: {
4
+ id: string;
5
+ url: string;
6
+ gifUrl: string;
7
+ gifPreviewUrl: string;
8
+ altText: string | undefined;
9
+ aspectRatio: number;
10
+ }) => void;
11
+ visible: boolean;
12
+ }
13
+ export default function GiphyContainer({ onClickBack, onSelectGif, visible, }: GiphyContainerProps): import("react/jsx-runtime").JSX.Element;
14
+ export {};
@@ -0,0 +1,229 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useEffect, useCallback, useRef } from "react";
3
+ import { View, Text, TextInput, TouchableOpacity, Animated, TouchableWithoutFeedback, Keyboard, } from "react-native";
4
+ import { useProject } from "@replyke/core";
5
+ import { ScrollView } from "react-native-gesture-handler";
6
+ import { MagnifyingGlassIcon } from "../icons";
7
+ import { getImageComponent } from "../helpers/getImageComponent";
8
+ const MAX_ITEMS = 60; // Define the maximum number of items to load
9
+ const FETCH_LIMIT = 30;
10
+ export default function GiphyContainer({ onClickBack, onSelectGif, visible, }) {
11
+ const { project } = useProject();
12
+ const giphyApiKey = project?.integrations.giphy?.apiKey;
13
+ // Dynamically get the correct Image component and whether it is expo-image.
14
+ const { ImageComponent, isExpo } = getImageComponent();
15
+ const [gifs, setGifs] = useState([]);
16
+ const [loading, setLoading] = useState(false);
17
+ const [loadingMore, setLoadingMore] = useState(false);
18
+ const [currentOffset, setCurrentOffset] = useState(0);
19
+ const [totalCount, setTotalCount] = useState(0);
20
+ const [flatListWidth, setFlatListWidth] = useState(0); // Track the width of the FlatList
21
+ // Search states & debouncing
22
+ const [query, setQuery] = useState("");
23
+ const [debouncedQuery, setDebouncedQuery] = useState("");
24
+ // Refs to track fetching state and gifs length
25
+ const isFetchingRef = useRef(false);
26
+ const gifsLengthRef = useRef(0);
27
+ // Debounce effect (like in the web version)
28
+ useEffect(() => {
29
+ const handler = setTimeout(() => {
30
+ setDebouncedQuery(query);
31
+ }, 500); // 500ms debounce
32
+ return () => clearTimeout(handler);
33
+ }, [query]);
34
+ // Update gifsLengthRef when gifs change
35
+ useEffect(() => {
36
+ gifsLengthRef.current = gifs.length;
37
+ }, [gifs]);
38
+ // Fetch function that decides between trending or search
39
+ const fetchGifs = useCallback(async (offset = 0) => {
40
+ // Prevent multiple fetches
41
+ if (isFetchingRef.current) {
42
+ return;
43
+ }
44
+ // Check if we've reached the maximum limit
45
+ if (Math.max(gifsLengthRef.current, offset) >= MAX_ITEMS) {
46
+ return;
47
+ }
48
+ isFetchingRef.current = true;
49
+ if (offset === 0) {
50
+ setLoading(true);
51
+ setLoadingMore(false);
52
+ }
53
+ else {
54
+ setLoadingMore(true);
55
+ }
56
+ let url = "";
57
+ const trimmed = debouncedQuery.trim();
58
+ if (trimmed.length === 0) {
59
+ // Fetch trending if no query
60
+ url = `https://api.giphy.com/v1/gifs/trending?api_key=${giphyApiKey}&limit=${FETCH_LIMIT}&offset=${offset}`;
61
+ }
62
+ else {
63
+ // Fetch search results
64
+ url = `https://api.giphy.com/v1/gifs/search?api_key=${giphyApiKey}&q=${encodeURIComponent(trimmed)}&limit=${FETCH_LIMIT}&offset=${offset}`;
65
+ }
66
+ try {
67
+ const res = await fetch(url);
68
+ const json = (await res.json());
69
+ if (json.meta.status !== 200) {
70
+ console.error("API Error:", json.meta.msg);
71
+ return;
72
+ }
73
+ setTotalCount(json.pagination.total_count);
74
+ setCurrentOffset(json.pagination.offset + json.pagination.count);
75
+ // Calculate how many items we can still fetch
76
+ const remainingItems = MAX_ITEMS - gifsLengthRef.current;
77
+ const fetchedItems = json.data.slice(0, remainingItems);
78
+ if (offset === 0) {
79
+ setGifs(fetchedItems);
80
+ }
81
+ else {
82
+ setGifs((prevGifs) => [...prevGifs, ...fetchedItems]);
83
+ }
84
+ }
85
+ catch (err) {
86
+ console.error("Fetch Error:", err);
87
+ }
88
+ finally {
89
+ if (offset === 0) {
90
+ setLoading(false);
91
+ }
92
+ else {
93
+ setLoadingMore(false);
94
+ }
95
+ isFetchingRef.current = false;
96
+ }
97
+ }, [debouncedQuery, giphyApiKey]);
98
+ // Fetch more GIFs when reaching the end
99
+ const fetchMoreGifs = useCallback(() => {
100
+ if (loading ||
101
+ loadingMore ||
102
+ gifsLengthRef.current >= totalCount ||
103
+ gifsLengthRef.current >= MAX_ITEMS ||
104
+ isFetchingRef.current) {
105
+ return;
106
+ }
107
+ fetchGifs(currentOffset);
108
+ }, [loading, loadingMore, totalCount, currentOffset, fetchGifs]);
109
+ // Reset search and pagination when visibility or query changes
110
+ useEffect(() => {
111
+ if (!visible) {
112
+ // Reset all states when not visible
113
+ setQuery("");
114
+ setDebouncedQuery("");
115
+ setGifs([]);
116
+ setCurrentOffset(0);
117
+ setTotalCount(0);
118
+ setLoading(false);
119
+ setLoadingMore(false);
120
+ isFetchingRef.current = false;
121
+ }
122
+ else {
123
+ // When visibility changes to true, reset offset and fetch initial gifs
124
+ setCurrentOffset(0);
125
+ setTotalCount(0);
126
+ setGifs([]);
127
+ fetchGifs(0);
128
+ }
129
+ }, [visible, debouncedQuery, fetchGifs]);
130
+ // Handle ScrollView layout to dynamically calculate column width
131
+ const handleLayout = (event) => {
132
+ const { width } = event.nativeEvent.layout;
133
+ setFlatListWidth(width);
134
+ };
135
+ const renderMasonryColumns = () => {
136
+ if (!flatListWidth)
137
+ return null;
138
+ const padding = 16; // Total horizontal padding
139
+ const columnSpacing = 8; // Spacing between columns
140
+ const columnWidth = (flatListWidth - padding - columnSpacing) / 2; // Two columns
141
+ // Split data into two columns
142
+ const columns = [[], []];
143
+ gifs.forEach((gif, index) => {
144
+ columns[index % 2].push(gif); // Alternately add to each column
145
+ });
146
+ return (_jsx(View, { style: {
147
+ flexDirection: "row",
148
+ justifyContent: "space-between",
149
+ paddingHorizontal: 4,
150
+ }, children: columns.map((column, colIndex) => (_jsx(View, { style: { flex: 1, marginHorizontal: 4 }, children: column.map((item) => {
151
+ const aspectRatio = parseInt(item.images.fixed_width.height) /
152
+ parseInt(item.images.fixed_width.width);
153
+ const imageStyle = {
154
+ width: columnWidth,
155
+ height: columnWidth * aspectRatio,
156
+ borderRadius: 4,
157
+ };
158
+ // Build the props based on which Image component is being used.
159
+ // For expo-image, we assume it accepts a string for its "source"
160
+ // and additional props like "contentFit" and "transition".
161
+ // For React Native's Image, we wrap the URL in an object with "uri".
162
+ const imageProps = isExpo
163
+ ? {
164
+ source: item.images.fixed_width.webp, // expo-image accepts a string
165
+ style: imageStyle,
166
+ contentFit: "cover",
167
+ transition: 500,
168
+ }
169
+ : {
170
+ source: { uri: item.images.fixed_width.webp }, // React Native expects an object with a "uri" property
171
+ style: imageStyle,
172
+ };
173
+ return (_jsx(TouchableOpacity, { style: { marginBottom: 8 }, onPress: () => {
174
+ Keyboard.dismiss(); // Dismiss the keyboard
175
+ onSelectGif({
176
+ id: item.id,
177
+ url: item.url,
178
+ aspectRatio,
179
+ gifUrl: item.images.fixed_width.webp,
180
+ gifPreviewUrl: item.images.preview_gif.webp,
181
+ altText: item.title,
182
+ });
183
+ }, children: _jsx(ImageComponent, { ...imageProps }) }, item.id));
184
+ }) }, colIndex))) }));
185
+ };
186
+ return (_jsx(TouchableWithoutFeedback, { onPress: Keyboard.dismiss, accessible: false, children: _jsxs(Animated.View, { style: {
187
+ position: "absolute",
188
+ top: 0,
189
+ left: 0,
190
+ right: 0,
191
+ bottom: 0,
192
+ backgroundColor: "white",
193
+ zIndex: 999,
194
+ opacity: visible ? 1 : 0,
195
+ pointerEvents: visible ? "auto" : "none",
196
+ }, children: [_jsxs(View, { style: {
197
+ flexDirection: "row",
198
+ padding: 8,
199
+ alignItems: "stretch",
200
+ gap: 8,
201
+ }, children: [_jsx(TouchableOpacity, { style: {
202
+ backgroundColor: "#e5e7eb",
203
+ aspectRatio: 1, // Ensures width equals height
204
+ alignItems: "center",
205
+ justifyContent: "center",
206
+ borderRadius: 8, // Keeps it rounded
207
+ }, onPress: onClickBack, children: _jsx(Text, { style: { color: "#888", fontSize: 22, lineHeight: 22 }, children: "\u2190" }) }), _jsxs(View, { style: {
208
+ flex: 1,
209
+ flexDirection: "row",
210
+ backgroundColor: "#e5e7eb",
211
+ borderRadius: 8,
212
+ paddingHorizontal: 16,
213
+ alignItems: "center",
214
+ gap: 12,
215
+ }, children: [_jsx(MagnifyingGlassIcon, { width: 16, color: "#888" }), _jsx(TextInput, { style: {
216
+ flex: 1,
217
+ paddingVertical: 12,
218
+ fontSize: 15,
219
+ }, placeholder: "Search GIPHY", onChangeText: (value) => setQuery(value), value: query })] })] }), loading && gifs.length === 0 ? (_jsx(Text, { style: { textAlign: "center", marginTop: 16 }, children: "Loading..." })) : (_jsxs(ScrollView, { onLayout: handleLayout, onScroll: ({ nativeEvent }) => {
220
+ const { layoutMeasurement, contentOffset, contentSize } = nativeEvent;
221
+ const currentScroll = contentOffset.y + layoutMeasurement.height;
222
+ const threshold = contentSize.height * 0.8; // 80% scroll
223
+ if (currentScroll >= threshold) {
224
+ fetchMoreGifs();
225
+ }
226
+ }, keyboardShouldPersistTaps: "handled" // Important to allow tapping through the keyboard
227
+ , scrollEventThrottle: 16, children: [renderMasonryColumns(), loadingMore && (_jsx(Text, { style: { textAlign: "center", marginVertical: 16 }, children: "Loading more..." }))] }))] }) }));
228
+ }
229
+ //# sourceMappingURL=GiphyContainer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GiphyContainer.js","sourceRoot":"","sources":["../../../src/components/GiphyContainer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAEjE,OAAO,EACL,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,gBAAgB,EAChB,QAAQ,EAER,wBAAwB,EACxB,QAAQ,GACT,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAuCjE,MAAM,SAAS,GAAG,EAAE,CAAC,CAAC,6CAA6C;AACnE,MAAM,WAAW,GAAG,EAAE,CAAC;AAIvB,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,WAAW,EACX,WAAW,EACX,OAAO,GACa;IACpB,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,CAAC;IACjC,MAAM,WAAW,GAAG,OAAO,EAAE,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC;IAExD,4EAA4E;IAC5E,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,iBAAiB,EAAE,CAAC;IAEvD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAY,EAAE,CAAC,CAAC;IAChD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEhD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,kCAAkC;IAEzF,6BAA6B;IAC7B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEzD,+CAA+C;IAC/C,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAEhC,4CAA4C;IAC5C,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,iBAAiB;QAC1B,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,wCAAwC;IACxC,SAAS,CAAC,GAAG,EAAE;QACb,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;IACtC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,yDAAyD;IACzD,MAAM,SAAS,GAAG,WAAW,CAC3B,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,EAAE;QACnB,2BAA2B;QAC3B,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,2CAA2C;QAC3C,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;YACzD,OAAO;QACT,CAAC;QAED,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;QAE7B,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;YACjB,UAAU,CAAC,IAAI,CAAC,CAAC;YACjB,cAAc,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,cAAc,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;QAED,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC;QAEtC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,6BAA6B;YAC7B,GAAG,GAAG,kDAAkD,WAAW,UAAU,WAAW,WAAW,MAAM,EAAE,CAAC;QAC9G,CAAC;aAAM,CAAC;YACN,uBAAuB;YACvB,GAAG,GAAG,gDAAgD,WAAW,MAAM,kBAAkB,CACvF,OAAO,CACR,UAAU,WAAW,WAAW,MAAM,EAAE,CAAC;QAC5C,CAAC;QAED,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7B,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAkB,CAAC;YAEjD,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC7B,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC3C,OAAO;YACT,CAAC;YAED,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAC3C,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAEjE,8CAA8C;YAC9C,MAAM,cAAc,GAAG,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC;YACzD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;YAExD,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjB,OAAO,CAAC,YAAY,CAAC,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QACrC,CAAC;gBAAS,CAAC;YACT,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjB,UAAU,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,cAAc,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC;YACD,aAAa,CAAC,OAAO,GAAG,KAAK,CAAC;QAChC,CAAC;IACH,CAAC,EACD,CAAC,cAAc,EAAE,WAAW,CAAC,CAC9B,CAAC;IAEF,wCAAwC;IACxC,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE;QACrC,IACE,OAAO;YACP,WAAW;YACX,aAAa,CAAC,OAAO,IAAI,UAAU;YACnC,aAAa,CAAC,OAAO,IAAI,SAAS;YAClC,aAAa,CAAC,OAAO,EACrB,CAAC;YACD,OAAO;QACT,CAAC;QACD,SAAS,CAAC,aAAa,CAAC,CAAC;IAC3B,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC;IAEjE,+DAA+D;IAC/D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,oCAAoC;YACpC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACb,iBAAiB,CAAC,EAAE,CAAC,CAAC;YACtB,OAAO,CAAC,EAAE,CAAC,CAAC;YACZ,gBAAgB,CAAC,CAAC,CAAC,CAAC;YACpB,aAAa,CAAC,CAAC,CAAC,CAAC;YACjB,UAAU,CAAC,KAAK,CAAC,CAAC;YAClB,cAAc,CAAC,KAAK,CAAC,CAAC;YACtB,aAAa,CAAC,OAAO,GAAG,KAAK,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,uEAAuE;YACvE,gBAAgB,CAAC,CAAC,CAAC,CAAC;YACpB,aAAa,CAAC,CAAC,CAAC,CAAC;YACjB,OAAO,CAAC,EAAE,CAAC,CAAC;YACZ,SAAS,CAAC,CAAC,CAAC,CAAC;QACf,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC;IAEzC,iEAAiE;IACjE,MAAM,YAAY,GAAG,CAAC,KAAwB,EAAE,EAAE;QAChD,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC;QAC3C,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,MAAM,oBAAoB,GAAG,GAAG,EAAE;QAChC,IAAI,CAAC,aAAa;YAAE,OAAO,IAAI,CAAC;QAEhC,MAAM,OAAO,GAAG,EAAE,CAAC,CAAC,2BAA2B;QAC/C,MAAM,aAAa,GAAG,CAAC,CAAC,CAAC,0BAA0B;QACnD,MAAM,WAAW,GAAG,CAAC,aAAa,GAAG,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc;QAEjF,8BAA8B;QAC9B,MAAM,OAAO,GAAG,CAAC,EAAE,EAAE,EAAE,CAA2B,CAAC;QACnD,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAC1B,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,iCAAiC;QACjE,CAAC,CAAC,CAAC;QAEH,OAAO,CACL,KAAC,IAAI,IACH,KAAK,EAAE;gBACL,aAAa,EAAE,KAAK;gBACpB,cAAc,EAAE,eAAe;gBAC/B,iBAAiB,EAAE,CAAC;aACrB,YAEA,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CACjC,KAAC,IAAI,IAAgB,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,YACzD,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oBACnB,MAAM,WAAW,GACf,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;wBACxC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;oBAE1C,MAAM,UAAU,GAAG;wBACjB,KAAK,EAAE,WAAW;wBAClB,MAAM,EAAE,WAAW,GAAG,WAAW;wBACjC,YAAY,EAAE,CAAC;qBAChB,CAAC;oBAEF,gEAAgE;oBAChE,iEAAiE;oBACjE,2DAA2D;oBAC3D,qEAAqE;oBACrE,MAAM,UAAU,GAAG,MAAM;wBACvB,CAAC,CAAC;4BACE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,8BAA8B;4BACpE,KAAK,EAAE,UAAU;4BACjB,UAAU,EAAE,OAAO;4BACnB,UAAU,EAAE,GAAG;yBAChB;wBACH,CAAC,CAAC;4BACE,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,uDAAuD;4BACtG,KAAK,EAAE,UAAU;yBAClB,CAAC;oBAEN,OAAO,CACL,KAAC,gBAAgB,IAEf,KAAK,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,EAC1B,OAAO,EAAE,GAAG,EAAE;4BACZ,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,uBAAuB;4BAC3C,WAAW,CAAC;gCACV,EAAE,EAAE,IAAI,CAAC,EAAE;gCACX,GAAG,EAAE,IAAI,CAAC,GAAG;gCACb,WAAW;gCACX,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI;gCACpC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI;gCAC3C,OAAO,EAAE,IAAI,CAAC,KAAK;6BACpB,CAAC,CAAC;wBACL,CAAC,YAED,KAAC,cAAc,OAAK,UAAU,GAAI,IAd7B,IAAI,CAAC,EAAE,CAeK,CACpB,CAAC;gBACJ,CAAC,CAAC,IA/CO,QAAQ,CAgDZ,CACR,CAAC,GACG,CACR,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,wBAAwB,IAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,YACpE,MAAC,QAAQ,CAAC,IAAI,IACZ,KAAK,EAAE;gBACL,QAAQ,EAAE,UAAU;gBACpB,GAAG,EAAE,CAAC;gBACN,IAAI,EAAE,CAAC;gBACP,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,CAAC;gBACT,eAAe,EAAE,OAAO;gBACxB,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxB,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;aACzC,aAGD,MAAC,IAAI,IACH,KAAK,EAAE;wBACL,aAAa,EAAE,KAAK;wBACpB,OAAO,EAAE,CAAC;wBACV,UAAU,EAAE,SAAS;wBACrB,GAAG,EAAE,CAAC;qBACP,aAED,KAAC,gBAAgB,IACf,KAAK,EAAE;gCACL,eAAe,EAAE,SAAS;gCAC1B,WAAW,EAAE,CAAC,EAAE,8BAA8B;gCAC9C,UAAU,EAAE,QAAQ;gCACpB,cAAc,EAAE,QAAQ;gCACxB,YAAY,EAAE,CAAC,EAAE,mBAAmB;6BACrC,EACD,OAAO,EAAE,WAAW,YAEpB,KAAC,IAAI,IAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,uBAErD,GACU,EACnB,MAAC,IAAI,IACH,KAAK,EAAE;gCACL,IAAI,EAAE,CAAC;gCACP,aAAa,EAAE,KAAK;gCACpB,eAAe,EAAE,SAAS;gCAC1B,YAAY,EAAE,CAAC;gCACf,iBAAiB,EAAE,EAAE;gCACrB,UAAU,EAAE,QAAQ;gCACpB,GAAG,EAAE,EAAE;6BACR,aAED,KAAC,mBAAmB,IAAC,KAAK,EAAE,EAAE,EAAE,KAAK,EAAC,MAAM,GAAG,EAC/C,KAAC,SAAS,IACR,KAAK,EAAE;wCACL,IAAI,EAAE,CAAC;wCACP,eAAe,EAAE,EAAE;wCACnB,QAAQ,EAAE,EAAE;qCACb,EACD,WAAW,EAAC,cAAc,EAC1B,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EACxC,KAAK,EAAE,KAAK,GACZ,IACG,IACF,EAGN,OAAO,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAC9B,KAAC,IAAI,IAAC,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,2BAAmB,CACvE,CAAC,CAAC,CAAC,CACF,MAAC,UAAU,IACT,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE;wBAC5B,MAAM,EAAE,iBAAiB,EAAE,aAAa,EAAE,WAAW,EAAE,GACrD,WAAW,CAAC;wBACd,MAAM,aAAa,GAAG,aAAa,CAAC,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC;wBACjE,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,aAAa;wBAEzD,IAAI,aAAa,IAAI,SAAS,EAAE,CAAC;4BAC/B,aAAa,EAAE,CAAC;wBAClB,CAAC;oBACH,CAAC,EACD,yBAAyB,EAAC,SAAS,CAAC,kDAAkD;sBACtF,mBAAmB,EAAE,EAAE,aAEtB,oBAAoB,EAAE,EACtB,WAAW,IAAI,CACd,KAAC,IAAI,IAAC,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,EAAE,gCAEjD,CACR,IAOU,CACd,IACa,GACS,CAC5B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ declare function Skeleton({ style }: {
2
+ style?: any;
3
+ }): import("react/jsx-runtime").JSX.Element;
4
+ declare function CommentSkeleton(): import("react/jsx-runtime").JSX.Element;
5
+ declare function UserMentionSkeleton(): import("react/jsx-runtime").JSX.Element;
6
+ export { CommentSkeleton, UserMentionSkeleton, Skeleton };
@@ -0,0 +1,52 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { View, StyleSheet, Animated } from "react-native";
3
+ function Skeleton({ style }) {
4
+ return (_jsx(Animated.View, { style: [styles.skeleton, style, { opacity: new Animated.Value(0.6) }] }));
5
+ }
6
+ function CommentSkeleton() {
7
+ return (_jsxs(View, { style: styles.commentContainer, children: [_jsx(Skeleton, { style: styles.avatarSkeleton }), _jsxs(View, { style: styles.textSkeletonContainer, children: [_jsx(Skeleton, { style: { ...styles.textSkeleton, width: "30%" } }), _jsx(Skeleton, { style: styles.textSkeleton }), _jsx(Skeleton, { style: { ...styles.textSkeleton, width: "15%" } })] })] }));
8
+ }
9
+ function UserMentionSkeleton() {
10
+ return (_jsxs(View, { style: styles.mentionContainer, children: [_jsx(Skeleton, { style: styles.mentionAvatarSkeleton }), _jsx(View, { style: { flex: 1 }, children: _jsx(Skeleton, { style: styles.textSkeleton }) })] }));
11
+ }
12
+ const styles = StyleSheet.create({
13
+ skeleton: {
14
+ backgroundColor: "#efefef",
15
+ borderRadius: 8,
16
+ width: "100%",
17
+ height: 16,
18
+ },
19
+ commentContainer: {
20
+ flexDirection: "row",
21
+ alignItems: "flex-start",
22
+ gap: 8,
23
+ width: "100%",
24
+ },
25
+ avatarSkeleton: {
26
+ height: 50,
27
+ width: 50,
28
+ borderRadius: 25,
29
+ },
30
+ textSkeletonContainer: {
31
+ flex: 1,
32
+ gap: 8,
33
+ },
34
+ textSkeleton: {
35
+ width: "100%",
36
+ height: 16,
37
+ borderRadius: 8,
38
+ },
39
+ mentionContainer: {
40
+ flexDirection: "row",
41
+ gap: 8,
42
+ width: "100%",
43
+ alignItems: "center",
44
+ },
45
+ mentionAvatarSkeleton: {
46
+ height: 35,
47
+ width: 35,
48
+ borderRadius: 17.5,
49
+ },
50
+ });
51
+ export { CommentSkeleton, UserMentionSkeleton, Skeleton };
52
+ //# sourceMappingURL=Skeleton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Skeleton.js","sourceRoot":"","sources":["../../../src/components/Skeleton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE1D,SAAS,QAAQ,CAAC,EAAE,KAAK,EAAmB;IAC1C,OAAO,CACL,KAAC,QAAQ,CAAC,IAAI,IACZ,KAAK,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GACrE,CACH,CAAC;AACJ,CAAC;AAED,SAAS,eAAe;IACtB,OAAO,CACL,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,gBAAgB,aAClC,KAAC,QAAQ,IAAC,KAAK,EAAE,MAAM,CAAC,cAAc,GAAI,EAC1C,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,qBAAqB,aACvC,KAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,GAAG,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,GAAI,EAC7D,KAAC,QAAQ,IAAC,KAAK,EAAE,MAAM,CAAC,YAAY,GAAI,EACxC,KAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,GAAG,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,GAAI,IACxD,IACF,CACR,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB;IAC1B,OAAO,CACL,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,gBAAgB,aAClC,KAAC,QAAQ,IAAC,KAAK,EAAE,MAAM,CAAC,qBAAqB,GAAI,EACjD,KAAC,IAAI,IAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,YACtB,KAAC,QAAQ,IAAC,KAAK,EAAE,MAAM,CAAC,YAAY,GAAI,GACnC,IACF,CACR,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,QAAQ,EAAE;QACR,eAAe,EAAE,SAAS;QAC1B,YAAY,EAAE,CAAC;QACf,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,EAAE;KACX;IACD,gBAAgB,EAAE;QAChB,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,YAAY;QACxB,GAAG,EAAE,CAAC;QACN,KAAK,EAAE,MAAM;KACd;IACD,cAAc,EAAE;QACd,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,EAAE;QACT,YAAY,EAAE,EAAE;KACjB;IACD,qBAAqB,EAAE;QACrB,IAAI,EAAE,CAAC;QACP,GAAG,EAAE,CAAC;KACP;IACD,YAAY,EAAE;QACZ,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,EAAE;QACV,YAAY,EAAE,CAAC;KAChB;IACD,gBAAgB,EAAE;QAChB,aAAa,EAAE,KAAK;QACpB,GAAG,EAAE,CAAC;QACN,KAAK,EAAE,MAAM;QACb,UAAU,EAAE,QAAQ;KACrB;IACD,qBAAqB,EAAE;QACrB,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,EAAE;QACT,YAAY,EAAE,IAAI;KACnB;CACF,CAAC,CAAC;AAEH,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,12 @@
1
+ interface UserProps {
2
+ id?: string;
3
+ avatar?: string | null | undefined;
4
+ name?: string | null | undefined;
5
+ username?: string | null | undefined;
6
+ }
7
+ declare const UserAvatar: ({ user, size, borderRadius, }: {
8
+ user: UserProps | null | undefined;
9
+ size?: number | undefined;
10
+ borderRadius?: number | undefined;
11
+ }) => import("react/jsx-runtime").JSX.Element | null;
12
+ export default UserAvatar;
@@ -0,0 +1,39 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { View, Image, StyleSheet } from "react-native";
3
+ const UserAvatar = ({ user, size = 32, borderRadius, }) => {
4
+ if (!user)
5
+ return null;
6
+ const userImg = user.avatar
7
+ ? user.avatar
8
+ : `https://api.dicebear.com/9.x/thumbs/png?seed=${user.id}`;
9
+ return (_jsx(View, { style: [
10
+ styles.avatarContainer,
11
+ {
12
+ width: size,
13
+ height: size,
14
+ borderRadius: borderRadius || size / 2,
15
+ },
16
+ ], children: _jsx(Image, { source: {
17
+ uri: userImg,
18
+ }, style: [
19
+ styles.image,
20
+ {
21
+ borderRadius: borderRadius || size / 2,
22
+ },
23
+ ] }) }));
24
+ };
25
+ const styles = StyleSheet.create({
26
+ avatarContainer: {
27
+ overflow: "hidden",
28
+ borderWidth: 1,
29
+ borderColor: "#E6E6E6",
30
+ flexShrink: 0,
31
+ },
32
+ image: {
33
+ width: "100%",
34
+ height: "100%",
35
+ resizeMode: "cover",
36
+ },
37
+ });
38
+ export default UserAvatar;
39
+ //# sourceMappingURL=UserAvatar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserAvatar.js","sourceRoot":"","sources":["../../../src/components/UserAvatar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAQvD,MAAM,UAAU,GAAG,CAAC,EAClB,IAAI,EACJ,IAAI,GAAG,EAAE,EACT,YAAY,GAKb,EAAE,EAAE;IACH,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM;QACzB,CAAC,CAAC,IAAI,CAAC,MAAM;QACb,CAAC,CAAC,gDAAgD,IAAI,CAAC,EAAE,EAAE,CAAC;IAE9D,OAAO,CACL,KAAC,IAAI,IACH,KAAK,EAAE;YACL,MAAM,CAAC,eAAe;YACtB;gBACE,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,IAAI;gBACZ,YAAY,EAAE,YAAY,IAAI,IAAI,GAAG,CAAC;aACvC;SACF,YAED,KAAC,KAAK,IACJ,MAAM,EAAE;gBACN,GAAG,EAAE,OAAO;aACb,EACD,KAAK,EAAE;gBACL,MAAM,CAAC,KAAK;gBACZ;oBACE,YAAY,EAAE,YAAY,IAAI,IAAI,GAAG,CAAC;iBACvC;aACF,GACD,GACG,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,eAAe,EAAE;QACf,QAAQ,EAAE,QAAQ;QAClB,WAAW,EAAE,CAAC;QACd,WAAW,EAAE,SAAS;QACtB,UAAU,EAAE,CAAC;KACd;IACD,KAAK,EAAE;QACL,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,OAAO;KACpB;CACF,CAAC,CAAC;AAEH,eAAe,UAAU,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { default as CustomButton } from "./CustomButton";
2
+ export { default as EmojiSuggestions } from "./EmojiSuggestions";
3
+ export { default as FromNow } from "./FromNow";
4
+ export { default as GiphyContainer } from "./GiphyContainer";
5
+ export { CommentSkeleton, UserMentionSkeleton, Skeleton } from "./Skeleton";
6
+ export { default as UserAvatar } from "./UserAvatar";
@@ -0,0 +1,7 @@
1
+ export { default as CustomButton } from "./CustomButton";
2
+ export { default as EmojiSuggestions } from "./EmojiSuggestions";
3
+ export { default as FromNow } from "./FromNow";
4
+ export { default as GiphyContainer } from "./GiphyContainer";
5
+ export { CommentSkeleton, UserMentionSkeleton, Skeleton } from "./Skeleton";
6
+ export { default as UserAvatar } from "./UserAvatar";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE7D,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1 @@
1
+ export * from "./reset-styles";
@@ -0,0 +1,2 @@
1
+ export * from "./reset-styles";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { ImageStyle, TextStyle, ViewStyle } from "react-native";
2
+ export declare const resetView: ViewStyle;
3
+ export declare const resetButton: ViewStyle;
4
+ export declare const resetUl: React.CSSProperties;
5
+ export declare const resetIl: React.CSSProperties;
6
+ export declare const resetText: TextStyle;
7
+ export declare const resetTextInput: TextStyle;
8
+ export declare const resetImg: ImageStyle;
9
+ export declare const resetIcon: ViewStyle;
@@ -0,0 +1,37 @@
1
+ export const resetView = {
2
+ padding: 0,
3
+ margin: 0,
4
+ };
5
+ export const resetButton = {
6
+ margin: 0,
7
+ padding: 0,
8
+ borderStyle: undefined,
9
+ borderWidth: 0,
10
+ backgroundColor: "transparent",
11
+ };
12
+ export const resetUl = {
13
+ listStyleType: "none",
14
+ padding: 0,
15
+ margin: 0,
16
+ };
17
+ export const resetIl = {
18
+ padding: 0,
19
+ margin: 0,
20
+ };
21
+ export const resetText = {
22
+ padding: 0,
23
+ margin: 0,
24
+ };
25
+ export const resetTextInput = {
26
+ padding: 0,
27
+ margin: 0,
28
+ };
29
+ export const resetImg = {
30
+ padding: 0,
31
+ margin: 0,
32
+ };
33
+ export const resetIcon = {
34
+ padding: 0,
35
+ margin: 0,
36
+ };
37
+ //# sourceMappingURL=reset-styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reset-styles.js","sourceRoot":"","sources":["../../../src/constants/reset-styles.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,SAAS,GAAc;IAClC,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;CACV,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAc;IACpC,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;IACV,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE,CAAC;IACd,eAAe,EAAE,aAAa;CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAwB;IAC1C,aAAa,EAAE,MAAM;IACrB,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;CACV,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAwB;IAC1C,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;CACV,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAc;IAClC,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;CACV,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAc;IACvC,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;CACV,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAe;IAClC,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;CACV,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAc;IAClC,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;CACV,CAAC"}