@kesha-antonov/react-native-chat 6.0.1 → 6.1.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/README.md +36 -4
- package/lib/Actions.d.ts.map +1 -1
- package/lib/Actions.js +33 -27
- package/lib/Actions.js.map +1 -1
- package/lib/Chat/Chat.d.ts.map +1 -1
- package/lib/Chat/Chat.js +253 -203
- package/lib/Chat/Chat.js.map +1 -1
- package/lib/Chat/ChatMessageList.d.ts.map +1 -1
- package/lib/Chat/ChatMessageList.js +4 -0
- package/lib/Chat/ChatMessageList.js.map +1 -1
- package/lib/Chat/index.d.ts +9 -1
- package/lib/Chat/index.d.ts.map +1 -1
- package/lib/Chat/index.js +14 -1
- package/lib/Chat/index.js.map +1 -1
- package/lib/Chat/types.d.ts +29 -0
- package/lib/Chat/types.d.ts.map +1 -1
- package/lib/Chat/types.js.map +1 -1
- package/lib/Chat/useMessageActions.d.ts +1 -0
- package/lib/Chat/useMessageActions.d.ts.map +1 -1
- package/lib/Chat/useMessageActions.js +97 -89
- package/lib/Chat/useMessageActions.js.map +1 -1
- package/lib/ChatHeader.d.ts +50 -0
- package/lib/ChatHeader.d.ts.map +1 -0
- package/lib/ChatHeader.js +356 -0
- package/lib/ChatHeader.js.map +1 -0
- package/lib/ChatList/ChatListCell.d.ts +1 -1
- package/lib/ChatList/ChatListCell.d.ts.map +1 -1
- package/lib/ChatList/ChatListCell.js +42 -11
- package/lib/ChatList/ChatListCell.js.map +1 -1
- package/lib/ChatList/index.js +332 -323
- package/lib/ChatList/index.js.map +1 -1
- package/lib/ChatList/types.d.ts +17 -1
- package/lib/ChatList/types.d.ts.map +1 -1
- package/lib/ChatList/types.js.map +1 -1
- package/lib/ChatList/utils.d.ts +4 -1
- package/lib/ChatList/utils.d.ts.map +1 -1
- package/lib/ChatList/utils.js +3 -2
- package/lib/ChatList/utils.js.map +1 -1
- package/lib/Composer.js +5 -1
- package/lib/Composer.js.map +1 -1
- package/lib/InputToolbar/fragments.d.ts +1 -1
- package/lib/InputToolbar/fragments.d.ts.map +1 -1
- package/lib/InputToolbar/fragments.js +9 -7
- package/lib/InputToolbar/fragments.js.map +1 -1
- package/lib/InputToolbar/index.d.ts.map +1 -1
- package/lib/InputToolbar/index.js +3 -2
- package/lib/InputToolbar/index.js.map +1 -1
- package/lib/InputToolbar/types.d.ts +6 -0
- package/lib/InputToolbar/types.d.ts.map +1 -1
- package/lib/InputToolbar/types.js.map +1 -1
- package/lib/InputToolbar/useActionsFragment.d.ts.map +1 -1
- package/lib/InputToolbar/useActionsFragment.js +83 -59
- package/lib/InputToolbar/useActionsFragment.js.map +1 -1
- package/lib/InputToolbar/useKeyboardInset.d.ts +1 -1
- package/lib/InputToolbar/useKeyboardInset.d.ts.map +1 -1
- package/lib/InputToolbar/useKeyboardInset.js +2 -2
- package/lib/InputToolbar/useKeyboardInset.js.map +1 -1
- package/lib/MessageText.d.ts.map +1 -1
- package/lib/MessageText.js +39 -33
- package/lib/MessageText.js.map +1 -1
- package/lib/MessagesContainer/index.d.ts.map +1 -1
- package/lib/MessagesContainer/index.js +113 -94
- package/lib/MessagesContainer/index.js.map +1 -1
- package/lib/MessagesContainer/types.d.ts +5 -2
- package/lib/MessagesContainer/types.d.ts.map +1 -1
- package/lib/MessagesContainer/types.js.map +1 -1
- package/lib/MessagesContainer/useChained.d.ts +6 -0
- package/lib/MessagesContainer/useChained.d.ts.map +1 -0
- package/lib/MessagesContainer/useChained.js +38 -0
- package/lib/MessagesContainer/useChained.js.map +1 -0
- package/lib/MessagesContainer/useListChrome.d.ts.map +1 -1
- package/lib/MessagesContainer/useListChrome.js +1 -1
- package/lib/MessagesContainer/useListChrome.js.map +1 -1
- package/lib/Models.d.ts +2 -1
- package/lib/Models.d.ts.map +1 -1
- package/lib/Models.js.map +1 -1
- package/lib/Send.d.ts.map +1 -1
- package/lib/Send.js +18 -13
- package/lib/Send.js.map +1 -1
- package/lib/Theme.d.ts +11 -0
- package/lib/Theme.d.ts.map +1 -1
- package/lib/Theme.js +17 -1
- package/lib/Theme.js.map +1 -1
- package/lib/attachments/AttachmentButton.js +17 -15
- package/lib/attachments/AttachmentButton.js.map +1 -1
- package/lib/attachments/AttachmentMenu/GalleryGrid.d.ts +3 -1
- package/lib/attachments/AttachmentMenu/GalleryGrid.d.ts.map +1 -1
- package/lib/attachments/AttachmentMenu/GalleryGrid.js +69 -68
- package/lib/attachments/AttachmentMenu/GalleryGrid.js.map +1 -1
- package/lib/attachments/AttachmentMenu/TabPanel.d.ts +3 -1
- package/lib/attachments/AttachmentMenu/TabPanel.d.ts.map +1 -1
- package/lib/attachments/AttachmentMenu/TabPanel.js +23 -21
- package/lib/attachments/AttachmentMenu/TabPanel.js.map +1 -1
- package/lib/attachments/AttachmentMenu/index.d.ts +6 -2
- package/lib/attachments/AttachmentMenu/index.d.ts.map +1 -1
- package/lib/attachments/AttachmentMenu/index.js +259 -247
- package/lib/attachments/AttachmentMenu/index.js.map +1 -1
- package/lib/attachments/buildMessages.d.ts +4 -4
- package/lib/attachments/buildMessages.d.ts.map +1 -1
- package/lib/attachments/buildMessages.js +9 -8
- package/lib/attachments/buildMessages.js.map +1 -1
- package/lib/attachments/types.d.ts +19 -0
- package/lib/attachments/types.d.ts.map +1 -1
- package/lib/attachments/types.js.map +1 -1
- package/lib/components/TouchableOpacity.d.ts +5 -0
- package/lib/components/TouchableOpacity.d.ts.map +1 -1
- package/lib/components/TouchableOpacity.js +59 -54
- package/lib/components/TouchableOpacity.js.map +1 -1
- package/lib/components/defaultMessageActions.d.ts +3 -1
- package/lib/components/defaultMessageActions.d.ts.map +1 -1
- package/lib/components/defaultMessageActions.js +9 -1
- package/lib/components/defaultMessageActions.js.map +1 -1
- package/lib/components/textHighlight.d.ts +14 -0
- package/lib/components/textHighlight.d.ts.map +1 -0
- package/lib/components/textHighlight.js +39 -0
- package/lib/components/textHighlight.js.map +1 -0
- package/lib/hooks/useKeyboardVerticalOffset.d.ts +6 -0
- package/lib/hooks/useKeyboardVerticalOffset.d.ts.map +1 -1
- package/lib/hooks/useKeyboardVerticalOffset.js +35 -13
- package/lib/hooks/useKeyboardVerticalOffset.js.map +1 -1
- package/lib/i18n.d.ts +2 -0
- package/lib/i18n.d.ts.map +1 -1
- package/lib/i18n.js +1 -0
- package/lib/i18n.js.map +1 -1
- package/lib/index.d.ts +3 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/linkParser.d.ts +4 -1
- package/lib/linkParser.d.ts.map +1 -1
- package/lib/linkParser.js +115 -78
- package/lib/linkParser.js.map +1 -1
- package/lib/locales/ar.d.ts.map +1 -1
- package/lib/locales/ar.js +1 -0
- package/lib/locales/ar.js.map +1 -1
- package/lib/locales/de.d.ts.map +1 -1
- package/lib/locales/de.js +1 -0
- package/lib/locales/de.js.map +1 -1
- package/lib/locales/es.d.ts.map +1 -1
- package/lib/locales/es.js +1 -0
- package/lib/locales/es.js.map +1 -1
- package/lib/locales/fr.d.ts.map +1 -1
- package/lib/locales/fr.js +1 -0
- package/lib/locales/fr.js.map +1 -1
- package/lib/locales/hi.d.ts.map +1 -1
- package/lib/locales/hi.js +1 -0
- package/lib/locales/hi.js.map +1 -1
- package/lib/locales/id.d.ts.map +1 -1
- package/lib/locales/id.js +1 -0
- package/lib/locales/id.js.map +1 -1
- package/lib/locales/it.d.ts.map +1 -1
- package/lib/locales/it.js +1 -0
- package/lib/locales/it.js.map +1 -1
- package/lib/locales/ja.d.ts.map +1 -1
- package/lib/locales/ja.js +1 -0
- package/lib/locales/ja.js.map +1 -1
- package/lib/locales/ko.d.ts.map +1 -1
- package/lib/locales/ko.js +1 -0
- package/lib/locales/ko.js.map +1 -1
- package/lib/locales/nl.d.ts.map +1 -1
- package/lib/locales/nl.js +1 -0
- package/lib/locales/nl.js.map +1 -1
- package/lib/locales/pl.d.ts.map +1 -1
- package/lib/locales/pl.js +1 -0
- package/lib/locales/pl.js.map +1 -1
- package/lib/locales/pt.d.ts.map +1 -1
- package/lib/locales/pt.js +1 -0
- package/lib/locales/pt.js.map +1 -1
- package/lib/locales/ru.d.ts.map +1 -1
- package/lib/locales/ru.js +1 -0
- package/lib/locales/ru.js.map +1 -1
- package/lib/locales/tr.d.ts.map +1 -1
- package/lib/locales/tr.js +1 -0
- package/lib/locales/tr.js.map +1 -1
- package/lib/locales/zh.d.ts.map +1 -1
- package/lib/locales/zh.js +1 -0
- package/lib/locales/zh.js.map +1 -1
- package/llms.txt +1 -1
- package/package.json +1 -1
package/lib/Composer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Composer.js","names":["React","useCallback","StyleSheet","View","TextInput","useColorScheme","useIsRTL","useLabels","useTheme","useThemedStyles","DEFAULT_LINE_HEIGHT","Composer","t0","$","_c","text","t1","textInputProps","isMultiline","t2","isTextOptional","t3","onSend","undefined","colorScheme","theme","labels","styles","createStyles","isDark","isRTL","maxHeight","composer","placeholder","ONE_LINE","minHeight","t4","trimmedText","trim","length","handleSubmitEditing","t5","placeholderTextColor","colors","t6","t7","returnKeyType","onSubmitEditing","submitBehavior","t8","t9","writingDirection","textAlign","t10","style","t11","textInput","stylesWeb","t12","inputCursor","t13","field","lineHeight","typography","paddingVertical","Math","max","create","flex","justifyContent","fontSize","fontWeight","paddingTop","paddingBottom","paddingHorizontal","color","inputText","outlineStyle"],"sources":["../src/Composer.tsx"],"sourcesContent":["import React, { useCallback } from 'react'\nimport {\n StyleSheet,\n TextInputProps,\n View,\n} from 'react-native'\nimport { TextInput } from 'react-native-gesture-handler'\nimport { useColorScheme } from './hooks/useColorScheme'\nimport { useIsRTL } from './hooks/useIsRTL'\nimport { useLabels } from './hooks/useLabels'\nimport { useTheme, useThemedStyles } from './hooks/useTheme'\nimport { IMessage } from './Models'\nimport { ChatTheme } from './Theme'\n\nexport interface ComposerProps {\n composerHeight?: number\n text?: string\n textInputProps?: Partial<TextInputProps>\n /**\n * Whether the field accepts multiple lines.\n *\n * `true` (default) keeps the return key inserting a newline - send with the\n * send button. `false` turns the return key into Send, which is what a\n * single-line composer should do. Previously the field was always multiline\n * with no submit handler, so the return key could never send at all.\n */\n isMultiline?: boolean\n /** Allow sending an empty message (media-only sends). */\n isTextOptional?: boolean\n onSend?(\n messages: Partial<IMessage> | Partial<IMessage>[],\n shouldResetInputToolbar: boolean,\n ): void\n}\n\n// The input text is 18, from `theme.typography.composer`. The vertical\n// padding is derived from the island height (see createStyles) so a single line of text is\n// vertically centered in it.\nconst DEFAULT_LINE_HEIGHT = 21\n\nexport function Composer ({\n text = '',\n textInputProps,\n isMultiline = true,\n isTextOptional = false,\n onSend,\n}: ComposerProps): React.ReactElement {\n const colorScheme = useColorScheme()\n const theme = useTheme()\n const labels = useLabels()\n const styles = useThemedStyles(createStyles)\n const isDark = colorScheme === 'dark'\n const isRTL = useIsRTL()\n\n const maxHeight = theme.composer.maxHeight\n const placeholder = textInputProps?.placeholder ?? labels.placeholder\n\n // A single line fills the bar height so its text sits centered (symmetric\n // padding); it grows from there up to maxHeight.\n const ONE_LINE = theme.composer.minHeight\n\n // Single-line mode: the return key sends, mirroring the send button exactly.\n const handleSubmitEditing = useCallback(() => {\n const trimmedText = text.trim()\n\n if (onSend && (trimmedText.length || isTextOptional))\n onSend({ text: trimmedText } as Partial<IMessage>, true)\n }, [text, onSend, isTextOptional])\n\n return (\n <View style={styles.field}>\n <TextInput\n testID={placeholder}\n accessible\n accessibilityLabel={placeholder}\n placeholderTextColor={textInputProps?.placeholderTextColor ?? theme.colors.placeholder}\n selectionColor={theme.colors.inputCursor}\n cursorColor={theme.colors.inputCursor}\n value={text}\n enablesReturnKeyAutomatically\n underlineColorAndroid='transparent'\n keyboardAppearance={isDark ? 'dark' : 'default'}\n multiline={isMultiline}\n placeholder={placeholder}\n {...(isMultiline\n ? null\n : {\n returnKeyType: 'send' as const,\n onSubmitEditing: handleSubmitEditing,\n // Keep the keyboard up after sending, the way a chat should behave.\n submitBehavior: 'submit' as const,\n })}\n {...textInputProps}\n style={[\n styles.textInput,\n stylesWeb.textInput,\n { minHeight: ONE_LINE, maxHeight },\n // Otherwise an empty RTL-locale field has nothing to auto-detect\n // direction from: the caret and placeholder would default to LTR.\n isRTL && { writingDirection: 'rtl', textAlign: 'right' },\n textInputProps?.style,\n ]}\n />\n </View>\n )\n}\n\nconst createStyles = (theme: ChatTheme) => {\n // Center a single line vertically: split the leftover space (bar height minus\n // one line of text) into equal top/bottom padding.\n const lineHeight = theme.typography.composer.lineHeight ?? DEFAULT_LINE_HEIGHT\n const paddingVertical = Math.max(4, (theme.composer.minHeight - lineHeight) / 2)\n\n return StyleSheet.create({\n // Transparent slot: the rounded pill is provided by the InputToolbar field\n // group so the inset emoji/attachment buttons share the pill surface.\n field: {\n flex: 1,\n justifyContent: 'center',\n minHeight: theme.composer.minHeight,\n },\n textInput: {\n fontSize: theme.typography.composer.fontSize,\n lineHeight,\n fontWeight: theme.typography.composer.fontWeight,\n paddingTop: paddingVertical,\n paddingBottom: paddingVertical,\n paddingHorizontal: 0,\n color: theme.colors.inputText,\n },\n })\n}\n\nconst stylesWeb = StyleSheet.create({\n textInput: {\n /* @ts-expect-error - web-specific styles */\n outlineStyle: 'none',\n },\n})\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Composer.js","names":["React","useCallback","StyleSheet","View","TextInput","useColorScheme","useIsRTL","useLabels","useTheme","useThemedStyles","DEFAULT_LINE_HEIGHT","Composer","t0","$","_c","text","t1","textInputProps","isMultiline","t2","isTextOptional","t3","onSend","undefined","colorScheme","theme","labels","styles","createStyles","isDark","isRTL","maxHeight","composer","placeholder","ONE_LINE","minHeight","t4","trimmedText","trim","length","handleSubmitEditing","t5","placeholderTextColor","colors","t6","t7","returnKeyType","onSubmitEditing","submitBehavior","t8","t9","writingDirection","textAlign","t10","style","t11","textInput","stylesWeb","t12","inputCursor","t13","field","lineHeight","typography","paddingVertical","Math","max","create","flex","justifyContent","fontSize","fontWeight","paddingTop","paddingBottom","paddingHorizontal","color","inputText","includeFontPadding","textAlignVertical","outlineStyle"],"sources":["../src/Composer.tsx"],"sourcesContent":["import React, { useCallback } from 'react'\nimport {\n StyleSheet,\n TextInputProps,\n View,\n} from 'react-native'\nimport { TextInput } from 'react-native-gesture-handler'\nimport { useColorScheme } from './hooks/useColorScheme'\nimport { useIsRTL } from './hooks/useIsRTL'\nimport { useLabels } from './hooks/useLabels'\nimport { useTheme, useThemedStyles } from './hooks/useTheme'\nimport { IMessage } from './Models'\nimport { ChatTheme } from './Theme'\n\nexport interface ComposerProps {\n composerHeight?: number\n text?: string\n textInputProps?: Partial<TextInputProps>\n /**\n * Whether the field accepts multiple lines.\n *\n * `true` (default) keeps the return key inserting a newline - send with the\n * send button. `false` turns the return key into Send, which is what a\n * single-line composer should do. Previously the field was always multiline\n * with no submit handler, so the return key could never send at all.\n */\n isMultiline?: boolean\n /** Allow sending an empty message (media-only sends). */\n isTextOptional?: boolean\n onSend?(\n messages: Partial<IMessage> | Partial<IMessage>[],\n shouldResetInputToolbar: boolean,\n ): void\n}\n\n// The input text is 18, from `theme.typography.composer`. The vertical\n// padding is derived from the island height (see createStyles) so a single line of text is\n// vertically centered in it.\nconst DEFAULT_LINE_HEIGHT = 21\n\nexport function Composer ({\n text = '',\n textInputProps,\n isMultiline = true,\n isTextOptional = false,\n onSend,\n}: ComposerProps): React.ReactElement {\n const colorScheme = useColorScheme()\n const theme = useTheme()\n const labels = useLabels()\n const styles = useThemedStyles(createStyles)\n const isDark = colorScheme === 'dark'\n const isRTL = useIsRTL()\n\n const maxHeight = theme.composer.maxHeight\n const placeholder = textInputProps?.placeholder ?? labels.placeholder\n\n // A single line fills the bar height so its text sits centered (symmetric\n // padding); it grows from there up to maxHeight.\n const ONE_LINE = theme.composer.minHeight\n\n // Single-line mode: the return key sends, mirroring the send button exactly.\n const handleSubmitEditing = useCallback(() => {\n const trimmedText = text.trim()\n\n if (onSend && (trimmedText.length || isTextOptional))\n onSend({ text: trimmedText } as Partial<IMessage>, true)\n }, [text, onSend, isTextOptional])\n\n return (\n <View style={styles.field}>\n <TextInput\n testID={placeholder}\n accessible\n accessibilityLabel={placeholder}\n placeholderTextColor={textInputProps?.placeholderTextColor ?? theme.colors.placeholder}\n selectionColor={theme.colors.inputCursor}\n cursorColor={theme.colors.inputCursor}\n value={text}\n enablesReturnKeyAutomatically\n underlineColorAndroid='transparent'\n keyboardAppearance={isDark ? 'dark' : 'default'}\n multiline={isMultiline}\n placeholder={placeholder}\n {...(isMultiline\n ? null\n : {\n returnKeyType: 'send' as const,\n onSubmitEditing: handleSubmitEditing,\n // Keep the keyboard up after sending, the way a chat should behave.\n submitBehavior: 'submit' as const,\n })}\n {...textInputProps}\n style={[\n styles.textInput,\n stylesWeb.textInput,\n { minHeight: ONE_LINE, maxHeight },\n // Otherwise an empty RTL-locale field has nothing to auto-detect\n // direction from: the caret and placeholder would default to LTR.\n isRTL && { writingDirection: 'rtl', textAlign: 'right' },\n textInputProps?.style,\n ]}\n />\n </View>\n )\n}\n\nconst createStyles = (theme: ChatTheme) => {\n // Center a single line vertically: split the leftover space (bar height minus\n // one line of text) into equal top/bottom padding.\n const lineHeight = theme.typography.composer.lineHeight ?? DEFAULT_LINE_HEIGHT\n const paddingVertical = Math.max(4, (theme.composer.minHeight - lineHeight) / 2)\n\n return StyleSheet.create({\n // Transparent slot: the rounded pill is provided by the InputToolbar field\n // group so the inset emoji/attachment buttons share the pill surface.\n field: {\n flex: 1,\n justifyContent: 'center',\n minHeight: theme.composer.minHeight,\n },\n textInput: {\n fontSize: theme.typography.composer.fontSize,\n lineHeight,\n fontWeight: theme.typography.composer.fontWeight,\n paddingTop: paddingVertical,\n paddingBottom: paddingVertical,\n paddingHorizontal: 0,\n color: theme.colors.inputText,\n // Android adds font padding above the text and re-measures on the first glyph, so the text\n // dropped a little once you started typing; without it the placeholder and the text share a line.\n includeFontPadding: false,\n textAlignVertical: 'center',\n },\n })\n}\n\nconst stylesWeb = StyleSheet.create({\n textInput: {\n /* @ts-expect-error - web-specific styles */\n outlineStyle: 'none',\n },\n})\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,7 +5,7 @@ import { InputToolbarProps } from './types';
|
|
|
5
5
|
/** The text field, built-in or `renderComposer`. */
|
|
6
6
|
export declare function useComposerFragment<TMessage extends IMessage>(props: InputToolbarProps<TMessage>, onComposerFocus: () => void, rememberSelection: (selection: TextSelection) => void): string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | React.JSX.Element | null | undefined;
|
|
7
7
|
/** The send button, built-in or `renderSend`. */
|
|
8
|
-
export declare function useSendFragment<TMessage extends IMessage>(props: InputToolbarProps<TMessage
|
|
8
|
+
export declare function useSendFragment<TMessage extends IMessage>(props: InputToolbarProps<TMessage>, isSendButtonAlwaysVisible?: boolean): string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | React.JSX.Element | null | undefined;
|
|
9
9
|
/** Whatever `renderAccessory` draws under the island. */
|
|
10
10
|
export declare function useAccessoryFragment<TMessage extends IMessage>(props: InputToolbarProps<TMessage>): React.ReactNode;
|
|
11
11
|
/** The reply or editing banner on top of the island. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fragments.d.ts","sourceRoot":"","sources":["../../src/InputToolbar/fragments.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+B,MAAM,OAAO,CAAA;AAInD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAGpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAI3C,oDAAoD;AACpD,wBAAgB,mBAAmB,CAAC,QAAQ,SAAS,QAAQ,EAC3D,KAAK,EAAE,iBAAiB,CAAC,QAAQ,CAAC,EAClC,eAAe,EAAE,MAAM,IAAI,EAC3B,iBAAiB,EAAE,CAAC,SAAS,EAAE,aAAa,KAAK,IAAI,mSA2BtD;AAED,iDAAiD;AACjD,wBAAgB,eAAe,CAAC,QAAQ,SAAS,QAAQ,EAAG,KAAK,EAAE,iBAAiB,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"fragments.d.ts","sourceRoot":"","sources":["../../src/InputToolbar/fragments.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+B,MAAM,OAAO,CAAA;AAInD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAGpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAI3C,oDAAoD;AACpD,wBAAgB,mBAAmB,CAAC,QAAQ,SAAS,QAAQ,EAC3D,KAAK,EAAE,iBAAiB,CAAC,QAAQ,CAAC,EAClC,eAAe,EAAE,MAAM,IAAI,EAC3B,iBAAiB,EAAE,CAAC,SAAS,EAAE,aAAa,KAAK,IAAI,mSA2BtD;AAED,iDAAiD;AACjD,wBAAgB,eAAe,CAAC,QAAQ,SAAS,QAAQ,EAAG,KAAK,EAAE,iBAAiB,CAAC,QAAQ,CAAC,EAAE,yBAAyB,CAAC,EAAE,OAAO,mSAQlI;AAED,yDAAyD;AACzD,wBAAgB,oBAAoB,CAAC,QAAQ,SAAS,QAAQ,EAAG,KAAK,EAAE,iBAAiB,CAAC,QAAQ,CAAC,mBAQlG;AAED,wDAAwD;AACxD,wBAAgB,uBAAuB,CAAC,QAAQ,SAAS,QAAQ,EAAG,KAAK,EAAE,iBAAiB,CAAC,QAAQ,CAAC,mSA+CrG"}
|
|
@@ -70,8 +70,8 @@ export function useComposerFragment(props, onComposerFocus, rememberSelection) {
|
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
/** The send button, built-in or `renderSend`. */
|
|
73
|
-
export function useSendFragment(props) {
|
|
74
|
-
const $ = _c(
|
|
73
|
+
export function useSendFragment(props, isSendButtonAlwaysVisible) {
|
|
74
|
+
const $ = _c(6);
|
|
75
75
|
const renderSend = props.renderSend;
|
|
76
76
|
let t0;
|
|
77
77
|
bb0: {
|
|
@@ -88,15 +88,17 @@ export function useSendFragment(props) {
|
|
|
88
88
|
t0 = t1;
|
|
89
89
|
break bb0;
|
|
90
90
|
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
91
|
+
const t1 = isSendButtonAlwaysVisible ?? props.isSendButtonAlwaysVisible;
|
|
92
|
+
let t2;
|
|
93
|
+
if ($[3] !== props || $[4] !== t1) {
|
|
94
|
+
t2 = <Send {...props} isSendButtonAlwaysVisible={t1} />;
|
|
94
95
|
$[3] = props;
|
|
95
96
|
$[4] = t1;
|
|
97
|
+
$[5] = t2;
|
|
96
98
|
} else {
|
|
97
|
-
|
|
99
|
+
t2 = $[5];
|
|
98
100
|
}
|
|
99
|
-
t0 =
|
|
101
|
+
t0 = t2;
|
|
100
102
|
}
|
|
101
103
|
return t0;
|
|
102
104
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fragments.js","names":["React","useCallback","useMemo","ReplyPreview","Composer","Send","renderComponentOrElement","useComposerFragment","props","onComposerFocus","rememberSelection","$","_c","renderComposer","t0","bb0","textInputProps","t1","event","onFocus","t2","event_0","nativeEvent","selection","onSelectionChange","composerProps","t3","useSendFragment","renderSend","useAccessoryFragment","renderAccessory","useReplyPreviewFragment","replyMessage","onClearReply","editMessage","onCancelEdit","renderReplyPreview","renderReplyPreviewProp","replyPreviewContainerStyle","replyPreviewTextStyle","handleClearReply","handleCancelEdit","isEditing","previewMessage","replyPreviewProps","mode","containerStyle","textStyle","t4"],"sources":["../../src/InputToolbar/fragments.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react'\n\nimport { ReplyPreview, ReplyPreviewProps } from '../components/ReplyPreview'\nimport { Composer, ComposerProps } from '../Composer'\nimport { TextSelection } from '../emoji/textEditing'\nimport { IMessage } from '../Models'\nimport { Send } from '../Send'\nimport { renderComponentOrElement } from '../utils'\nimport { InputToolbarProps } from './types'\n\ntype TextInputProps = NonNullable<ComposerProps['textInputProps']>\n\n/** The text field, built-in or `renderComposer`. */\nexport function useComposerFragment<TMessage extends IMessage> (\n props: InputToolbarProps<TMessage>,\n onComposerFocus: () => void,\n rememberSelection: (selection: TextSelection) => void\n) {\n const renderComposer = props.renderComposer\n return useMemo(() => {\n const textInputProps = props.textInputProps\n // The composer reports its caret, so an emoji lands where it is, and its focus, which\n // brings the system keyboard back in the emoji panel's place.\n const composerProps = {\n ...props,\n textInputProps: {\n ...textInputProps,\n onFocus: (event: Parameters<NonNullable<TextInputProps['onFocus']>>[0]) => {\n onComposerFocus()\n textInputProps?.onFocus?.(event)\n },\n onSelectionChange: (event: Parameters<NonNullable<TextInputProps['onSelectionChange']>>[0]) => {\n rememberSelection(event.nativeEvent.selection)\n textInputProps?.onSelectionChange?.(event)\n },\n },\n } as ComposerProps\n\n if (renderComposer)\n return renderComponentOrElement(renderComposer, composerProps)\n\n return <Composer {...composerProps} />\n }, [renderComposer, props, onComposerFocus, rememberSelection])\n}\n\n/** The send button, built-in or `renderSend`. */\nexport function useSendFragment<TMessage extends IMessage> (props: InputToolbarProps<TMessage
|
|
1
|
+
{"version":3,"file":"fragments.js","names":["React","useCallback","useMemo","ReplyPreview","Composer","Send","renderComponentOrElement","useComposerFragment","props","onComposerFocus","rememberSelection","$","_c","renderComposer","t0","bb0","textInputProps","t1","event","onFocus","t2","event_0","nativeEvent","selection","onSelectionChange","composerProps","t3","useSendFragment","isSendButtonAlwaysVisible","renderSend","useAccessoryFragment","renderAccessory","useReplyPreviewFragment","replyMessage","onClearReply","editMessage","onCancelEdit","renderReplyPreview","renderReplyPreviewProp","replyPreviewContainerStyle","replyPreviewTextStyle","handleClearReply","handleCancelEdit","isEditing","previewMessage","replyPreviewProps","mode","containerStyle","textStyle","t4"],"sources":["../../src/InputToolbar/fragments.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react'\n\nimport { ReplyPreview, ReplyPreviewProps } from '../components/ReplyPreview'\nimport { Composer, ComposerProps } from '../Composer'\nimport { TextSelection } from '../emoji/textEditing'\nimport { IMessage } from '../Models'\nimport { Send } from '../Send'\nimport { renderComponentOrElement } from '../utils'\nimport { InputToolbarProps } from './types'\n\ntype TextInputProps = NonNullable<ComposerProps['textInputProps']>\n\n/** The text field, built-in or `renderComposer`. */\nexport function useComposerFragment<TMessage extends IMessage> (\n props: InputToolbarProps<TMessage>,\n onComposerFocus: () => void,\n rememberSelection: (selection: TextSelection) => void\n) {\n const renderComposer = props.renderComposer\n return useMemo(() => {\n const textInputProps = props.textInputProps\n // The composer reports its caret, so an emoji lands where it is, and its focus, which\n // brings the system keyboard back in the emoji panel's place.\n const composerProps = {\n ...props,\n textInputProps: {\n ...textInputProps,\n onFocus: (event: Parameters<NonNullable<TextInputProps['onFocus']>>[0]) => {\n onComposerFocus()\n textInputProps?.onFocus?.(event)\n },\n onSelectionChange: (event: Parameters<NonNullable<TextInputProps['onSelectionChange']>>[0]) => {\n rememberSelection(event.nativeEvent.selection)\n textInputProps?.onSelectionChange?.(event)\n },\n },\n } as ComposerProps\n\n if (renderComposer)\n return renderComponentOrElement(renderComposer, composerProps)\n\n return <Composer {...composerProps} />\n }, [renderComposer, props, onComposerFocus, rememberSelection])\n}\n\n/** The send button, built-in or `renderSend`. */\nexport function useSendFragment<TMessage extends IMessage> (props: InputToolbarProps<TMessage>, isSendButtonAlwaysVisible?: boolean) {\n const renderSend = props.renderSend\n return useMemo(() => {\n if (renderSend)\n return renderComponentOrElement(renderSend, props)\n\n return <Send {...props} isSendButtonAlwaysVisible={isSendButtonAlwaysVisible ?? props.isSendButtonAlwaysVisible} />\n }, [renderSend, props, isSendButtonAlwaysVisible])\n}\n\n/** Whatever `renderAccessory` draws under the island. */\nexport function useAccessoryFragment<TMessage extends IMessage> (props: InputToolbarProps<TMessage>) {\n const renderAccessory = props.renderAccessory\n return useMemo(() => {\n if (!renderAccessory)\n return null\n\n return renderComponentOrElement(renderAccessory, props)\n }, [renderAccessory, props])\n}\n\n/** The reply or editing banner on top of the island. */\nexport function useReplyPreviewFragment<TMessage extends IMessage> (props: InputToolbarProps<TMessage>) {\n const {\n replyMessage,\n onClearReply,\n editMessage,\n onCancelEdit,\n renderReplyPreview: renderReplyPreviewProp,\n replyPreviewContainerStyle,\n replyPreviewTextStyle,\n } = props\n\n const handleClearReply = useCallback(() => {\n onClearReply?.()\n }, [onClearReply])\n\n const handleCancelEdit = useCallback(() => {\n onCancelEdit?.()\n }, [onCancelEdit])\n\n return useMemo(() => {\n const isEditing = !!editMessage\n const previewMessage = editMessage ?? replyMessage\n if (!previewMessage)\n return null\n\n const replyPreviewProps: ReplyPreviewProps = {\n replyMessage: previewMessage,\n onClearReply: isEditing ? handleCancelEdit : handleClearReply,\n mode: isEditing ? 'edit' : 'reply',\n containerStyle: replyPreviewContainerStyle,\n textStyle: replyPreviewTextStyle,\n }\n\n if (renderReplyPreviewProp)\n return renderComponentOrElement(renderReplyPreviewProp, replyPreviewProps)\n\n // Keyed by mode, so switching between replying and editing plays the banner in again.\n return <ReplyPreview key={isEditing ? 'edit' : 'reply'} {...replyPreviewProps} />\n }, [\n replyMessage,\n editMessage,\n handleClearReply,\n handleCancelEdit,\n renderReplyPreviewProp,\n replyPreviewContainerStyle,\n replyPreviewTextStyle,\n ])\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/InputToolbar/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6B,MAAM,OAAO,CAAA;AAWjD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAOpC,OAAO,EAAE,iBAAiB,EAAU,MAAM,SAAS,CAAA;AAUnD,YAAY,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AACnE,YAAY,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAEhD,wBAAgB,YAAY,CAAC,QAAQ,SAAS,QAAQ,GAAG,QAAQ,EAC/D,KAAK,EAAE,iBAAiB,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/InputToolbar/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6B,MAAM,OAAO,CAAA;AAWjD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAOpC,OAAO,EAAE,iBAAiB,EAAU,MAAM,SAAS,CAAA;AAUnD,YAAY,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AACnE,YAAY,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAEhD,wBAAgB,YAAY,CAAC,QAAQ,SAAS,QAAQ,GAAG,QAAQ,EAC/D,KAAK,EAAE,iBAAiB,CAAC,QAAQ,CAAC,qBAkNnC"}
|
|
@@ -93,7 +93,7 @@ export function InputToolbar(props) {
|
|
|
93
93
|
insertEmoji,
|
|
94
94
|
deleteBackwardInComposer
|
|
95
95
|
} = useComposerEditing(props.text ?? "", props.textInputProps?.onChangeText);
|
|
96
|
-
const insetStyle = useKeyboardInset(emoji.open);
|
|
96
|
+
const insetStyle = useKeyboardInset(emoji.open, props.bottomInset);
|
|
97
97
|
let t6;
|
|
98
98
|
if ($[13] !== containerStyle || $[14] !== insetStyle || $[15] !== styles.container) {
|
|
99
99
|
t6 = [styles.container, insetStyle, containerStyle];
|
|
@@ -136,7 +136,6 @@ export function InputToolbar(props) {
|
|
|
136
136
|
}
|
|
137
137
|
const emojiFragment = useEmojiButton(t9);
|
|
138
138
|
const composerFragment = useComposerFragment(props, emoji.onComposerFocus, rememberSelection);
|
|
139
|
-
const sendFragment = useSendFragment(props);
|
|
140
139
|
const onSend = props.onSend;
|
|
141
140
|
let t10;
|
|
142
141
|
if ($[26] !== props.text) {
|
|
@@ -167,6 +166,8 @@ export function InputToolbar(props) {
|
|
|
167
166
|
isVideoHoldEnabled,
|
|
168
167
|
canToggleMode
|
|
169
168
|
} = t11;
|
|
169
|
+
const isSendAlwaysVisible = props.isSendButtonAlwaysVisible ?? (!isVoiceEnabled && !showVideo);
|
|
170
|
+
const sendFragment = useSendFragment(props, isSendAlwaysVisible);
|
|
170
171
|
let t12;
|
|
171
172
|
if ($[31] !== closeEmoji || $[32] !== onSend || $[33] !== videoConfig) {
|
|
172
173
|
t12 = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","useEffect","useMemo","View","Animated","LayoutAnimationConfig","useComposerPanels","GlassSurface","RecordingBar","VideoRecordButton","EmojiKeyboardPanel","resolveEmojiKeyboard","useEmojiKeyboard","useIsRTL","useTheme","useThemedStyles","swapIn","swapOut","FieldGroup","useAttachStyle","useAccessoryFragment","useComposerFragment","useReplyPreviewFragment","useSendFragment","resolveRecordingOptions","createStyles","TakePreviewBar","useActionsFragment","useComposerEditing","useEmojiButton","useKeyboardInset","useRecordMode","useRecordTake","useReturnAnimations","useRightControl","InputToolbar","props","$","_c","containerStyle","styles","theme","isRTL","t0","emojiKeyboard","onPressEmoji","emojiConfig","textInputRef","textInputProps","ref","t1","current","focus","focusComposer","t2","t3","defaultHeight","isEnabled","emoji","composerPanels","closeEmoji","close","t4","t5","setCloser","rememberSelection","insertEmoji","deleteBackwardInComposer","text","onChangeText","insetStyle","open","t6","container","containerStyles","t7","rowReverse","t8","primaryStyle","primary","primaryStyles","actionsFragment","t9","isOpen","toggle","isEmojiOpen","toggleEmoji","emojiFragment","composerFragment","onComposerFocus","sendFragment","onSend","t10","trim","hasText","attachStyle","t11","canRecord","audioConfig","videoConfig","isVoiceEnabled","showVoice","showVideo","isVideoHoldEnabled","canToggleMode","t12","take","meter","videoSession","setOverlay","videoOverlay","isVideoTake","recording","voicePreview","videoPreview","isPreviewing","isRecordingActive","isCancelLingering","hasHadTake","cancelRecording","t13","isTakeInProgress","mode","recordHint","toggleRecordMode","onVoiceQuickRelease","onVideoQuickRelease","t14","onRecordExit","slideProgress","updateVoiceState","voiceRef","rightControl","kind","rightControlKind","t15","bb0","t16","videoFragment","accessoryFragment","replyPreviewFragment","canTakeAway","isFieldShown","lastExit","returning","t17","detachedOverlay","t18","t19","islandRow","t20","islandSurface","colors","inputBackground","inputFieldBorder","t21","slideDistance","trimVoicePreview","elapsed","locked","isCapturing","t22","t23","island","t24","rightSlot","t25","t26","t27","t28"],"sources":["../../src/InputToolbar/index.tsx"],"sourcesContent":["import React, { useEffect, useMemo } from 'react'\nimport { View } from 'react-native'\nimport Animated, { LayoutAnimationConfig } from 'react-native-reanimated'\n\nimport { useComposerPanels } from '../components/composerPanels'\nimport { GlassSurface } from '../components/GlassSurface'\nimport { RecordingBar } from '../components/RecordingBar'\nimport { VideoRecordButton } from '../components/VideoRecordButton'\nimport { EmojiKeyboardPanel, resolveEmojiKeyboard, useEmojiKeyboard } from '../emoji/EmojiKeyboard'\nimport { useIsRTL } from '../hooks/useIsRTL'\nimport { useTheme, useThemedStyles } from '../hooks/useTheme'\nimport { IMessage } from '../Models'\nimport { swapIn, swapOut } from './animations'\nimport { FieldGroup, useAttachStyle } from './FieldGroup'\nimport { useAccessoryFragment, useComposerFragment, useReplyPreviewFragment, useSendFragment } from './fragments'\nimport { resolveRecordingOptions } from './recordingOptions'\nimport { createStyles } from './styles'\nimport { TakePreviewBar } from './TakePreviewBar'\nimport { InputToolbarProps, OnSend } from './types'\nimport { useActionsFragment } from './useActionsFragment'\nimport { useComposerEditing } from './useComposerEditing'\nimport { useEmojiButton } from './useEmojiButton'\nimport { useKeyboardInset } from './useKeyboardInset'\nimport { useRecordMode } from './useRecordMode'\nimport { useRecordTake } from './useRecordTake'\nimport { useReturnAnimations } from './useReturnAnimations'\nimport { useRightControl } from './useRightControl'\n\nexport type { ReplyPreviewProps } from '../components/ReplyPreview'\nexport type { InputToolbarProps } from './types'\n\nexport function InputToolbar<TMessage extends IMessage = IMessage> (\n props: InputToolbarProps<TMessage>\n) {\n const { containerStyle } = props\n\n const styles = useThemedStyles(createStyles)\n const theme = useTheme()\n const isRTL = useIsRTL()\n\n // The built-in emoji keyboard, unless the app handles the button itself.\n const emojiConfig = props.onPressEmoji ? null : resolveEmojiKeyboard(props.emojiKeyboard)\n const textInputRef = (props.textInputProps as { ref?: React.RefObject<{ focus?: () => void } | null> } | undefined)?.ref\n const focusComposer = () => {\n textInputRef?.current?.focus?.()\n }\n const emoji = useEmojiKeyboard({\n isEnabled: !!emojiConfig,\n focusComposer,\n defaultHeight: theme.emojiKeyboard.defaultHeight,\n })\n\n // The message list closes the panel on a tap.\n const composerPanels = useComposerPanels()\n const closeEmoji = emoji.close\n useEffect(() => {\n composerPanels?.setCloser(closeEmoji)\n return () => composerPanels?.setCloser(null)\n }, [composerPanels, closeEmoji])\n\n const { rememberSelection, insertEmoji, deleteBackwardInComposer } =\n useComposerEditing(props.text ?? '', props.textInputProps?.onChangeText)\n\n // The emoji panel covers the indicator just as the keyboard does.\n const insetStyle = useKeyboardInset(emoji.open)\n\n const containerStyles = useMemo(() => [\n styles.container,\n insetStyle,\n containerStyle,\n ], [styles, insetStyle, containerStyle])\n\n const primaryStyles = useMemo(() => [\n styles.primary,\n isRTL && styles.rowReverse,\n props.primaryStyle,\n ], [styles, isRTL, props.primaryStyle])\n\n const actionsFragment = useActionsFragment(props, closeEmoji)\n\n const emojiFragment = useEmojiButton({\n onPressEmoji: props.onPressEmoji,\n emojiConfig,\n isEmojiOpen: emoji.isOpen,\n toggleEmoji: emoji.toggle,\n })\n\n const composerFragment = useComposerFragment(props, emoji.onComposerFocus, rememberSelection)\n const sendFragment = useSendFragment(props)\n\n // onSend is forwarded from Chat at runtime; it isn't part of the public\n // InputToolbarProps surface, so read it through a typed cast.\n const onSend = (props as { onSend?: OnSend<TMessage> }).onSend\n\n // The record button when the composer is empty,\n // otherwise the send button.\n const hasText = !!props.text?.trim()\n const attachStyle = useAttachStyle(hasText)\n\n const {\n canRecord,\n audioConfig,\n videoConfig,\n isVoiceEnabled,\n showVoice,\n showVideo,\n isVideoHoldEnabled,\n canToggleMode,\n } = resolveRecordingOptions(props, hasText)\n\n const take = useRecordTake<TMessage>({ videoConfig, onSend, closeEmoji })\n const {\n meter,\n videoSession,\n setOverlay,\n videoOverlay,\n isVideoTake,\n recording,\n voicePreview,\n videoPreview,\n isPreviewing,\n isRecordingActive,\n isCancelLingering,\n hasHadTake,\n cancelRecording,\n } = take\n\n const { mode, recordHint, toggleRecordMode, onVoiceQuickRelease, onVideoQuickRelease } =\n useRecordMode({ canToggleMode, isVoiceEnabled, isTakeInProgress: take.isTakeInProgress })\n\n const { rightControl, kind: rightControlKind } = useRightControl<TMessage>({\n mode,\n canRecord,\n canToggleMode,\n showVoice,\n isVideoHoldEnabled,\n audioConfig,\n videoConfig,\n isVideoTake,\n videoSession,\n voiceRef: take.voiceRef,\n meter,\n updateVoiceState: take.updateVoiceState,\n slideProgress: take.slideProgress,\n onRecordExit: take.onRecordExit,\n recordHint,\n toggleRecordMode,\n onVoiceQuickRelease,\n onVideoQuickRelease,\n onSend,\n sendFragment,\n })\n\n // Inset camera button inside the field, for the system-camera fallback when\n // video is the only mode. With vision-camera the camera takes the record\n // button's slot instead.\n const videoFragment = useMemo(() => {\n if (!showVideo || canToggleMode || isVideoHoldEnabled)\n return null\n\n return <VideoRecordButton<TMessage> config={videoConfig} onSend={onSend} />\n }, [showVideo, canToggleMode, isVideoHoldEnabled, videoConfig, onSend])\n\n const accessoryFragment = useAccessoryFragment(props)\n const replyPreviewFragment = useReplyPreviewFragment(props)\n\n // Only a take ever takes the field away, so only then do its parts animate.\n const canTakeAway = showVoice || isVideoHoldEnabled\n const isFieldShown = !isPreviewing && !isRecordingActive && !isCancelLingering\n const returning = useReturnAnimations({ isFieldShown, lastExit: take.lastExit, hasHadTake, isRTL })\n\n return (\n <>\n <Animated.View style={containerStyles}>\n {!setOverlay && videoOverlay && (\n <View style={styles.detachedOverlay} pointerEvents='box-none'>\n {videoOverlay}\n </View>\n )}\n <View style={[styles.islandRow, isRTL && styles.rowReverse]}>\n <View style={styles.island}>\n <GlassSurface color={theme.colors.inputBackground} borderColor={theme.colors.inputFieldBorder} style={styles.islandSurface} />\n {replyPreviewFragment}\n <View style={primaryStyles}>\n {isPreviewing\n ? (\n <TakePreviewBar\n voicePreview={voicePreview}\n videoPreview={videoPreview}\n onDelete={cancelRecording}\n onTrimVoice={take.trimVoicePreview}\n />\n )\n : isRecordingActive || isCancelLingering\n ? (\n <RecordingBar\n elapsed={meter.elapsed}\n isLocked={isRecordingActive && recording.locked}\n isBlinking={!isVideoTake || videoSession.isCapturing}\n isCancelled={!isRecordingActive}\n slideProgress={take.slideProgress}\n slideDistance={take.slideDistance}\n onCancel={cancelRecording}\n />\n )\n : (\n <FieldGroup\n emojiFragment={emojiFragment}\n composerFragment={composerFragment}\n actionsFragment={actionsFragment}\n videoFragment={videoFragment}\n attachStyle={attachStyle}\n hasText={hasText}\n hasHadTake={hasHadTake}\n canTakeAway={canTakeAway}\n returning={returning}\n />\n )}\n </View>\n </View>\n <LayoutAnimationConfig skipEntering>\n <Animated.View key={rightControlKind} style={styles.rightSlot} entering={swapIn} exiting={swapOut}>\n {rightControl}\n </Animated.View>\n </LayoutAnimationConfig>\n </View>\n {accessoryFragment}\n </Animated.View>\n {emojiConfig && (\n <EmojiKeyboardPanel\n controller={emoji}\n config={emojiConfig}\n onSelect={insertEmoji}\n onBackspace={deleteBackwardInComposer}\n />\n )}\n </>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","useEffect","useMemo","View","Animated","LayoutAnimationConfig","useComposerPanels","GlassSurface","RecordingBar","VideoRecordButton","EmojiKeyboardPanel","resolveEmojiKeyboard","useEmojiKeyboard","useIsRTL","useTheme","useThemedStyles","swapIn","swapOut","FieldGroup","useAttachStyle","useAccessoryFragment","useComposerFragment","useReplyPreviewFragment","useSendFragment","resolveRecordingOptions","createStyles","TakePreviewBar","useActionsFragment","useComposerEditing","useEmojiButton","useKeyboardInset","useRecordMode","useRecordTake","useReturnAnimations","useRightControl","InputToolbar","props","$","_c","containerStyle","styles","theme","isRTL","t0","emojiKeyboard","onPressEmoji","emojiConfig","textInputRef","textInputProps","ref","t1","current","focus","focusComposer","t2","t3","defaultHeight","isEnabled","emoji","composerPanels","closeEmoji","close","t4","t5","setCloser","rememberSelection","insertEmoji","deleteBackwardInComposer","text","onChangeText","insetStyle","open","bottomInset","t6","container","containerStyles","t7","rowReverse","t8","primaryStyle","primary","primaryStyles","actionsFragment","t9","isOpen","toggle","isEmojiOpen","toggleEmoji","emojiFragment","composerFragment","onComposerFocus","onSend","t10","trim","hasText","attachStyle","t11","canRecord","audioConfig","videoConfig","isVoiceEnabled","showVoice","showVideo","isVideoHoldEnabled","canToggleMode","isSendAlwaysVisible","isSendButtonAlwaysVisible","sendFragment","t12","take","meter","videoSession","setOverlay","videoOverlay","isVideoTake","recording","voicePreview","videoPreview","isPreviewing","isRecordingActive","isCancelLingering","hasHadTake","cancelRecording","t13","isTakeInProgress","mode","recordHint","toggleRecordMode","onVoiceQuickRelease","onVideoQuickRelease","t14","onRecordExit","slideProgress","updateVoiceState","voiceRef","rightControl","kind","rightControlKind","t15","bb0","t16","videoFragment","accessoryFragment","replyPreviewFragment","canTakeAway","isFieldShown","lastExit","returning","t17","detachedOverlay","t18","t19","islandRow","t20","islandSurface","colors","inputBackground","inputFieldBorder","t21","slideDistance","trimVoicePreview","elapsed","locked","isCapturing","t22","t23","island","t24","rightSlot","t25","t26","t27","t28"],"sources":["../../src/InputToolbar/index.tsx"],"sourcesContent":["import React, { useEffect, useMemo } from 'react'\nimport { View } from 'react-native'\nimport Animated, { LayoutAnimationConfig } from 'react-native-reanimated'\n\nimport { useComposerPanels } from '../components/composerPanels'\nimport { GlassSurface } from '../components/GlassSurface'\nimport { RecordingBar } from '../components/RecordingBar'\nimport { VideoRecordButton } from '../components/VideoRecordButton'\nimport { EmojiKeyboardPanel, resolveEmojiKeyboard, useEmojiKeyboard } from '../emoji/EmojiKeyboard'\nimport { useIsRTL } from '../hooks/useIsRTL'\nimport { useTheme, useThemedStyles } from '../hooks/useTheme'\nimport { IMessage } from '../Models'\nimport { swapIn, swapOut } from './animations'\nimport { FieldGroup, useAttachStyle } from './FieldGroup'\nimport { useAccessoryFragment, useComposerFragment, useReplyPreviewFragment, useSendFragment } from './fragments'\nimport { resolveRecordingOptions } from './recordingOptions'\nimport { createStyles } from './styles'\nimport { TakePreviewBar } from './TakePreviewBar'\nimport { InputToolbarProps, OnSend } from './types'\nimport { useActionsFragment } from './useActionsFragment'\nimport { useComposerEditing } from './useComposerEditing'\nimport { useEmojiButton } from './useEmojiButton'\nimport { useKeyboardInset } from './useKeyboardInset'\nimport { useRecordMode } from './useRecordMode'\nimport { useRecordTake } from './useRecordTake'\nimport { useReturnAnimations } from './useReturnAnimations'\nimport { useRightControl } from './useRightControl'\n\nexport type { ReplyPreviewProps } from '../components/ReplyPreview'\nexport type { InputToolbarProps } from './types'\n\nexport function InputToolbar<TMessage extends IMessage = IMessage> (\n props: InputToolbarProps<TMessage>\n) {\n const { containerStyle } = props\n\n const styles = useThemedStyles(createStyles)\n const theme = useTheme()\n const isRTL = useIsRTL()\n\n // The built-in emoji keyboard, unless the app handles the button itself.\n const emojiConfig = props.onPressEmoji ? null : resolveEmojiKeyboard(props.emojiKeyboard)\n const textInputRef = (props.textInputProps as { ref?: React.RefObject<{ focus?: () => void } | null> } | undefined)?.ref\n const focusComposer = () => {\n textInputRef?.current?.focus?.()\n }\n const emoji = useEmojiKeyboard({\n isEnabled: !!emojiConfig,\n focusComposer,\n defaultHeight: theme.emojiKeyboard.defaultHeight,\n })\n\n // The message list closes the panel on a tap.\n const composerPanels = useComposerPanels()\n const closeEmoji = emoji.close\n useEffect(() => {\n composerPanels?.setCloser(closeEmoji)\n return () => composerPanels?.setCloser(null)\n }, [composerPanels, closeEmoji])\n\n const { rememberSelection, insertEmoji, deleteBackwardInComposer } =\n useComposerEditing(props.text ?? '', props.textInputProps?.onChangeText)\n\n // The emoji panel covers the indicator just as the keyboard does.\n const insetStyle = useKeyboardInset(emoji.open, props.bottomInset)\n\n const containerStyles = useMemo(() => [\n styles.container,\n insetStyle,\n containerStyle,\n ], [styles, insetStyle, containerStyle])\n\n const primaryStyles = useMemo(() => [\n styles.primary,\n isRTL && styles.rowReverse,\n props.primaryStyle,\n ], [styles, isRTL, props.primaryStyle])\n\n const actionsFragment = useActionsFragment(props, closeEmoji)\n\n const emojiFragment = useEmojiButton({\n onPressEmoji: props.onPressEmoji,\n emojiConfig,\n isEmojiOpen: emoji.isOpen,\n toggleEmoji: emoji.toggle,\n })\n\n const composerFragment = useComposerFragment(props, emoji.onComposerFocus, rememberSelection)\n\n // onSend is forwarded from Chat at runtime; it isn't part of the public\n // InputToolbarProps surface, so read it through a typed cast.\n const onSend = (props as { onSend?: OnSend<TMessage> }).onSend\n\n // The record button when the composer is empty,\n // otherwise the send button.\n const hasText = !!props.text?.trim()\n const attachStyle = useAttachStyle(hasText)\n\n const {\n canRecord,\n audioConfig,\n videoConfig,\n isVoiceEnabled,\n showVoice,\n showVideo,\n isVideoHoldEnabled,\n canToggleMode,\n } = resolveRecordingOptions(props, hasText)\n\n // With no voice or video note to record, an empty composer would leave the send button's slot\n // blank: the button stays instead, disabled until there is something to send.\n const isSendAlwaysVisible = props.isSendButtonAlwaysVisible ?? (!isVoiceEnabled && !showVideo)\n const sendFragment = useSendFragment(props, isSendAlwaysVisible)\n\n const take = useRecordTake<TMessage>({ videoConfig, onSend, closeEmoji })\n const {\n meter,\n videoSession,\n setOverlay,\n videoOverlay,\n isVideoTake,\n recording,\n voicePreview,\n videoPreview,\n isPreviewing,\n isRecordingActive,\n isCancelLingering,\n hasHadTake,\n cancelRecording,\n } = take\n\n const { mode, recordHint, toggleRecordMode, onVoiceQuickRelease, onVideoQuickRelease } =\n useRecordMode({ canToggleMode, isVoiceEnabled, isTakeInProgress: take.isTakeInProgress })\n\n const { rightControl, kind: rightControlKind } = useRightControl<TMessage>({\n mode,\n canRecord,\n canToggleMode,\n showVoice,\n isVideoHoldEnabled,\n audioConfig,\n videoConfig,\n isVideoTake,\n videoSession,\n voiceRef: take.voiceRef,\n meter,\n updateVoiceState: take.updateVoiceState,\n slideProgress: take.slideProgress,\n onRecordExit: take.onRecordExit,\n recordHint,\n toggleRecordMode,\n onVoiceQuickRelease,\n onVideoQuickRelease,\n onSend,\n sendFragment,\n })\n\n // Inset camera button inside the field, for the system-camera fallback when\n // video is the only mode. With vision-camera the camera takes the record\n // button's slot instead.\n const videoFragment = useMemo(() => {\n if (!showVideo || canToggleMode || isVideoHoldEnabled)\n return null\n\n return <VideoRecordButton<TMessage> config={videoConfig} onSend={onSend} />\n }, [showVideo, canToggleMode, isVideoHoldEnabled, videoConfig, onSend])\n\n const accessoryFragment = useAccessoryFragment(props)\n const replyPreviewFragment = useReplyPreviewFragment(props)\n\n // Only a take ever takes the field away, so only then do its parts animate.\n const canTakeAway = showVoice || isVideoHoldEnabled\n const isFieldShown = !isPreviewing && !isRecordingActive && !isCancelLingering\n const returning = useReturnAnimations({ isFieldShown, lastExit: take.lastExit, hasHadTake, isRTL })\n\n return (\n <>\n <Animated.View style={containerStyles}>\n {!setOverlay && videoOverlay && (\n <View style={styles.detachedOverlay} pointerEvents='box-none'>\n {videoOverlay}\n </View>\n )}\n <View style={[styles.islandRow, isRTL && styles.rowReverse]}>\n <View style={styles.island}>\n <GlassSurface color={theme.colors.inputBackground} borderColor={theme.colors.inputFieldBorder} style={styles.islandSurface} />\n {replyPreviewFragment}\n <View style={primaryStyles}>\n {isPreviewing\n ? (\n <TakePreviewBar\n voicePreview={voicePreview}\n videoPreview={videoPreview}\n onDelete={cancelRecording}\n onTrimVoice={take.trimVoicePreview}\n />\n )\n : isRecordingActive || isCancelLingering\n ? (\n <RecordingBar\n elapsed={meter.elapsed}\n isLocked={isRecordingActive && recording.locked}\n isBlinking={!isVideoTake || videoSession.isCapturing}\n isCancelled={!isRecordingActive}\n slideProgress={take.slideProgress}\n slideDistance={take.slideDistance}\n onCancel={cancelRecording}\n />\n )\n : (\n <FieldGroup\n emojiFragment={emojiFragment}\n composerFragment={composerFragment}\n actionsFragment={actionsFragment}\n videoFragment={videoFragment}\n attachStyle={attachStyle}\n hasText={hasText}\n hasHadTake={hasHadTake}\n canTakeAway={canTakeAway}\n returning={returning}\n />\n )}\n </View>\n </View>\n <LayoutAnimationConfig skipEntering>\n <Animated.View key={rightControlKind} style={styles.rightSlot} entering={swapIn} exiting={swapOut}>\n {rightControl}\n </Animated.View>\n </LayoutAnimationConfig>\n </View>\n {accessoryFragment}\n </Animated.View>\n {emojiConfig && (\n <EmojiKeyboardPanel\n controller={emoji}\n config={emojiConfig}\n onSelect={insertEmoji}\n onBackspace={deleteBackwardInComposer}\n />\n )}\n </>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -9,6 +9,12 @@ import { EmojiKeyboardProps } from '../emoji/EmojiKeyboard';
|
|
|
9
9
|
import { AudioRecordingProps, IMessage, ReplyMessage, VideoRecordingProps } from '../Models';
|
|
10
10
|
import { SendProps } from '../Send';
|
|
11
11
|
export interface InputToolbarProps<TMessage extends IMessage> {
|
|
12
|
+
/**
|
|
13
|
+
* The space the composer keeps below itself for the home indicator. Measured by default; pass it
|
|
14
|
+
* when the host already knows it, e.g. a chat inside a panel whose own inset arrives late. It is
|
|
15
|
+
* still given up as the keyboard or the emoji panel covers it.
|
|
16
|
+
*/
|
|
17
|
+
bottomInset?: number;
|
|
12
18
|
actions?: AttachmentAction[];
|
|
13
19
|
actionSheetOptionTintColor?: string;
|
|
14
20
|
containerStyle?: StyleProp<ViewStyle>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/InputToolbar/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/InputToolbar/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAE9D,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAC5F,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEnC,MAAM,WAAW,iBAAiB,CAAC,QAAQ,SAAS,QAAQ;IAC1D;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC5B,0BAA0B,CAAC,EAAE,MAAM,CAAA;IACnC,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IACrC,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IACnC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAC,SAAS,CAAA;IACzE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,KAAK,CAAC,SAAS,CAAA;IACxD,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAC,SAAS,CAAA;IAC5D,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,KAAK,CAAC,SAAS,CAAA;IAC1D,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAA;IAChC,IAAI,CAAC,EAAE,MAAM,KAAK,CAAC,SAAS,CAAA;IAC5B,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IACnC,uCAAuC;IACvC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;IAClC,8BAA8B;IAC9B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB,qFAAqF;IACrF,WAAW,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;IACjC,gDAAgD;IAChD,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB,sCAAsC;IACtC,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,KAAK,CAAC,SAAS,CAAA;IAClE,wCAAwC;IACxC,0BAA0B,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IACjD,mCAAmC;IACnC,qBAAqB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IAC5C;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,GAAG,mBAAmB,CAAA;IAC9C;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,GAAG,mBAAmB,CAAA;IAC9C,iEAAiE;IACjE,yBAAyB,CAAC,EAAE,OAAO,CAAA;IACnC,8EAA8E;IAC9E,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,mEAAmE;IACnE,cAAc,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAA;IAChD;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,GAAG,kBAAkB,CAAA;IAC5C;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAA;IAClD;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,MAAM,MAAM,MAAM,CAAC,QAAQ,SAAS,QAAQ,IAAI,CAC9C,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,EAChD,uBAAuB,EAAE,OAAO,KAC7B,IAAI,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../src/InputToolbar/types.ts"],"sourcesContent":["import React from 'react'\nimport { StyleProp, TextStyle, ViewStyle } from 'react-native'\n\nimport { ActionsProps } from '../Actions'\nimport { AttachmentsProps } from '../attachments/types'\nimport { AttachmentAction } from '../components/AttachmentSheet'\nimport { ReplyPreviewProps } from '../components/ReplyPreview'\nimport { ComposerProps } from '../Composer'\nimport { EmojiKeyboardProps } from '../emoji/EmojiKeyboard'\nimport { AudioRecordingProps, IMessage, ReplyMessage, VideoRecordingProps } from '../Models'\nimport { SendProps } from '../Send'\n\nexport interface InputToolbarProps<TMessage extends IMessage> {\n actions?: AttachmentAction[]\n actionSheetOptionTintColor?: string\n containerStyle?: StyleProp<ViewStyle>\n primaryStyle?: StyleProp<ViewStyle>\n renderAccessory?: (props: InputToolbarProps<TMessage>) => React.ReactNode\n renderActions?: (props: ActionsProps) => React.ReactNode\n renderSend?: (props: SendProps<TMessage>) => React.ReactNode\n renderComposer?: (props: ComposerProps) => React.ReactNode\n onPressActionButton?: () => void\n icon?: () => React.ReactNode\n wrapperStyle?: StyleProp<ViewStyle>\n /** Reply message to show in preview */\n replyMessage?: ReplyMessage | null\n /** Callback to clear reply */\n onClearReply?: () => void\n /** The message being edited; shows the \"Editing\" banner instead of the reply one. */\n editMessage?: ReplyMessage | null\n /** Called when the editing banner is closed. */\n onCancelEdit?: () => void\n /** Custom render for reply preview */\n renderReplyPreview?: (props: ReplyPreviewProps) => React.ReactNode\n /** Style for reply preview container */\n replyPreviewContainerStyle?: StyleProp<ViewStyle>\n /** Style for reply preview text */\n replyPreviewTextStyle?: StyleProp<TextStyle>\n /**\n * Hold-to-record voice notes. On by default when the optional `expo-audio` is\n * installed; `false` turns them off, an object configures them.\n */\n audioRecording?: boolean | AudioRecordingProps\n /**\n * Round video notes. On by default when `react-native-vision-camera` is installed; `false`\n * turns them off. `{ isEnabled: true }` also offers the system camera (`expo-image-picker`)\n * when vision-camera is missing.\n */\n videoRecording?: boolean | VideoRecordingProps\n /** Force-show the send button even when the composer is empty */\n isSendButtonAlwaysVisible?: boolean\n /** Current composer text (used to swap the send button for the mic button) */\n text?: string\n /** Props for the composer's `TextInput`, forwarded from `Chat`. */\n textInputProps?: ComposerProps['textInputProps']\n /**\n * Called when the emoji button is pressed, instead of opening the built-in emoji keyboard.\n * Passing it shows the button even with `emojiKeyboard={false}`.\n */\n onPressEmoji?: () => void\n /**\n * The built-in emoji keyboard the emoji button opens in the system keyboard's place. On by\n * default; `false` hides the button (unless `onPressEmoji` is set).\n */\n emojiKeyboard?: boolean | EmojiKeyboardProps\n /**\n * The built-in attachment menu behind the paperclip. On by default (each tab shows when its\n * optional peer is installed); `false` hides the paperclip. `actions`, `onPressActionButton`\n * and `renderActions` take precedence.\n */\n attachments?: boolean | AttachmentsProps<TMessage>\n /**\n * Whether the composer accepts multiple lines. `true` (default) keeps the\n * return key inserting a newline; `false` turns it into Send.\n */\n isMultiline?: boolean\n}\n\nexport type OnSend<TMessage extends IMessage> = (\n message: Partial<TMessage> | Partial<TMessage>[],\n shouldResetInputToolbar: boolean\n) => void\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../src/InputToolbar/types.ts"],"sourcesContent":["import React from 'react'\nimport { StyleProp, TextStyle, ViewStyle } from 'react-native'\n\nimport { ActionsProps } from '../Actions'\nimport { AttachmentsProps } from '../attachments/types'\nimport { AttachmentAction } from '../components/AttachmentSheet'\nimport { ReplyPreviewProps } from '../components/ReplyPreview'\nimport { ComposerProps } from '../Composer'\nimport { EmojiKeyboardProps } from '../emoji/EmojiKeyboard'\nimport { AudioRecordingProps, IMessage, ReplyMessage, VideoRecordingProps } from '../Models'\nimport { SendProps } from '../Send'\n\nexport interface InputToolbarProps<TMessage extends IMessage> {\n /**\n * The space the composer keeps below itself for the home indicator. Measured by default; pass it\n * when the host already knows it, e.g. a chat inside a panel whose own inset arrives late. It is\n * still given up as the keyboard or the emoji panel covers it.\n */\n bottomInset?: number\n actions?: AttachmentAction[]\n actionSheetOptionTintColor?: string\n containerStyle?: StyleProp<ViewStyle>\n primaryStyle?: StyleProp<ViewStyle>\n renderAccessory?: (props: InputToolbarProps<TMessage>) => React.ReactNode\n renderActions?: (props: ActionsProps) => React.ReactNode\n renderSend?: (props: SendProps<TMessage>) => React.ReactNode\n renderComposer?: (props: ComposerProps) => React.ReactNode\n onPressActionButton?: () => void\n icon?: () => React.ReactNode\n wrapperStyle?: StyleProp<ViewStyle>\n /** Reply message to show in preview */\n replyMessage?: ReplyMessage | null\n /** Callback to clear reply */\n onClearReply?: () => void\n /** The message being edited; shows the \"Editing\" banner instead of the reply one. */\n editMessage?: ReplyMessage | null\n /** Called when the editing banner is closed. */\n onCancelEdit?: () => void\n /** Custom render for reply preview */\n renderReplyPreview?: (props: ReplyPreviewProps) => React.ReactNode\n /** Style for reply preview container */\n replyPreviewContainerStyle?: StyleProp<ViewStyle>\n /** Style for reply preview text */\n replyPreviewTextStyle?: StyleProp<TextStyle>\n /**\n * Hold-to-record voice notes. On by default when the optional `expo-audio` is\n * installed; `false` turns them off, an object configures them.\n */\n audioRecording?: boolean | AudioRecordingProps\n /**\n * Round video notes. On by default when `react-native-vision-camera` is installed; `false`\n * turns them off. `{ isEnabled: true }` also offers the system camera (`expo-image-picker`)\n * when vision-camera is missing.\n */\n videoRecording?: boolean | VideoRecordingProps\n /** Force-show the send button even when the composer is empty */\n isSendButtonAlwaysVisible?: boolean\n /** Current composer text (used to swap the send button for the mic button) */\n text?: string\n /** Props for the composer's `TextInput`, forwarded from `Chat`. */\n textInputProps?: ComposerProps['textInputProps']\n /**\n * Called when the emoji button is pressed, instead of opening the built-in emoji keyboard.\n * Passing it shows the button even with `emojiKeyboard={false}`.\n */\n onPressEmoji?: () => void\n /**\n * The built-in emoji keyboard the emoji button opens in the system keyboard's place. On by\n * default; `false` hides the button (unless `onPressEmoji` is set).\n */\n emojiKeyboard?: boolean | EmojiKeyboardProps\n /**\n * The built-in attachment menu behind the paperclip. On by default (each tab shows when its\n * optional peer is installed); `false` hides the paperclip. `actions`, `onPressActionButton`\n * and `renderActions` take precedence.\n */\n attachments?: boolean | AttachmentsProps<TMessage>\n /**\n * Whether the composer accepts multiple lines. `true` (default) keeps the\n * return key inserting a newline; `false` turns it into Send.\n */\n isMultiline?: boolean\n}\n\nexport type OnSend<TMessage extends IMessage> = (\n message: Partial<TMessage> | Partial<TMessage>[],\n shouldResetInputToolbar: boolean\n) => void\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useActionsFragment.d.ts","sourceRoot":"","sources":["../../src/InputToolbar/useActionsFragment.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+B,MAAM,OAAO,CAAA;AAMnD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,OAAO,EAAE,iBAAiB,EAAU,MAAM,SAAS,CAAA;AAEnD,kGAAkG;AAClG,wBAAgB,kBAAkB,CAAC,QAAQ,SAAS,QAAQ,EAC1D,KAAK,EAAE,iBAAiB,CAAC,QAAQ,CAAC,EAClC,UAAU,EAAE,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"useActionsFragment.d.ts","sourceRoot":"","sources":["../../src/InputToolbar/useActionsFragment.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+B,MAAM,OAAO,CAAA;AAMnD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,OAAO,EAAE,iBAAiB,EAAU,MAAM,SAAS,CAAA;AAEnD,kGAAkG;AAClG,wBAAgB,kBAAkB,CAAC,QAAQ,SAAS,QAAQ,EAC1D,KAAK,EAAE,iBAAiB,CAAC,QAAQ,CAAC,EAClC,UAAU,EAAE,MAAM,IAAI,mSA8EvB"}
|
|
@@ -6,7 +6,7 @@ import { getAttachmentTabs } from '../attachments/buildMessages';
|
|
|
6
6
|
import { renderComponentOrElement } from '../utils';
|
|
7
7
|
/** The control behind the paperclip: custom actions, the legacy sheet, or the attachment menu. */
|
|
8
8
|
export function useActionsFragment(props, closeEmoji) {
|
|
9
|
-
const $ = _c(
|
|
9
|
+
const $ = _c(35);
|
|
10
10
|
const {
|
|
11
11
|
renderActions,
|
|
12
12
|
onPressActionButton,
|
|
@@ -37,44 +37,65 @@ export function useActionsFragment(props, closeEmoji) {
|
|
|
37
37
|
t1 = $[3];
|
|
38
38
|
}
|
|
39
39
|
const requestedTabsId = t1;
|
|
40
|
+
const pickers = attachmentsConfig?.pickers;
|
|
40
41
|
let t2;
|
|
42
|
+
if ($[4] === Symbol.for("react.memo_cache_sentinel")) {
|
|
43
|
+
t2 = ["gallery", "camera", "file"];
|
|
44
|
+
$[4] = t2;
|
|
45
|
+
} else {
|
|
46
|
+
t2 = $[4];
|
|
47
|
+
}
|
|
48
|
+
let t3;
|
|
49
|
+
if ($[5] !== pickers) {
|
|
50
|
+
t3 = t2.filter(tab => !!pickers?.[tab]);
|
|
51
|
+
$[5] = pickers;
|
|
52
|
+
$[6] = t3;
|
|
53
|
+
} else {
|
|
54
|
+
t3 = $[6];
|
|
55
|
+
}
|
|
56
|
+
const customPickersId = t3.join(",");
|
|
57
|
+
const isGalleryGridEnabled = attachmentsConfig?.isGalleryGridEnabled !== false;
|
|
58
|
+
let t4;
|
|
41
59
|
bb0: {
|
|
42
60
|
if (!hasAttachments) {
|
|
43
|
-
let
|
|
44
|
-
if ($[
|
|
45
|
-
|
|
46
|
-
$[
|
|
61
|
+
let t5;
|
|
62
|
+
if ($[7] === Symbol.for("react.memo_cache_sentinel")) {
|
|
63
|
+
t5 = [];
|
|
64
|
+
$[7] = t5;
|
|
47
65
|
} else {
|
|
48
|
-
|
|
66
|
+
t5 = $[7];
|
|
49
67
|
}
|
|
50
|
-
|
|
68
|
+
t4 = t5;
|
|
51
69
|
break bb0;
|
|
52
70
|
}
|
|
53
|
-
let
|
|
54
|
-
if ($[
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
$[
|
|
71
|
+
let t5;
|
|
72
|
+
if ($[8] !== customPickersId || $[9] !== isGalleryGridEnabled || $[10] !== requestedTabsId) {
|
|
73
|
+
const custom = Object.fromEntries(customPickersId.split(",").filter(Boolean).map(_temp));
|
|
74
|
+
t5 = getAttachmentTabs(requestedTabsId === undefined ? undefined : requestedTabsId.split(",").filter(Boolean), custom, isGalleryGridEnabled);
|
|
75
|
+
$[8] = customPickersId;
|
|
76
|
+
$[9] = isGalleryGridEnabled;
|
|
77
|
+
$[10] = requestedTabsId;
|
|
78
|
+
$[11] = t5;
|
|
58
79
|
} else {
|
|
59
|
-
|
|
80
|
+
t5 = $[11];
|
|
60
81
|
}
|
|
61
|
-
|
|
82
|
+
t4 = t5;
|
|
62
83
|
}
|
|
63
|
-
const attachmentTabs =
|
|
84
|
+
const attachmentTabs = t4;
|
|
64
85
|
const onSendProp = props.onSend;
|
|
65
|
-
let
|
|
66
|
-
if ($[
|
|
67
|
-
|
|
86
|
+
let t5;
|
|
87
|
+
if ($[12] !== onSendProp) {
|
|
88
|
+
t5 = (messages, shouldReset) => {
|
|
68
89
|
onSendProp?.(messages, shouldReset);
|
|
69
90
|
};
|
|
70
|
-
$[
|
|
71
|
-
$[
|
|
91
|
+
$[12] = onSendProp;
|
|
92
|
+
$[13] = t5;
|
|
72
93
|
} else {
|
|
73
|
-
|
|
94
|
+
t5 = $[13];
|
|
74
95
|
}
|
|
75
|
-
const onSendForAttachments =
|
|
76
|
-
let
|
|
77
|
-
if ($[
|
|
96
|
+
const onSendForAttachments = t5;
|
|
97
|
+
let t6;
|
|
98
|
+
if ($[14] !== actionSheetOptionTintColor || $[15] !== actions || $[16] !== attachmentTabs || $[17] !== attachmentsConfig || $[18] !== closeEmoji || $[19] !== containerStyle || $[20] !== icon || $[21] !== onPressActionButton || $[22] !== onSendForAttachments || $[23] !== renderActions || $[24] !== wrapperStyle) {
|
|
78
99
|
bb1: {
|
|
79
100
|
const actionsProps = {
|
|
80
101
|
onPressActionButton,
|
|
@@ -85,55 +106,58 @@ export function useActionsFragment(props, closeEmoji) {
|
|
|
85
106
|
containerStyle
|
|
86
107
|
};
|
|
87
108
|
if (renderActions) {
|
|
88
|
-
|
|
109
|
+
t6 = renderComponentOrElement(renderActions, actionsProps);
|
|
89
110
|
break bb1;
|
|
90
111
|
}
|
|
91
112
|
if (onPressActionButton || actions?.length) {
|
|
92
|
-
let
|
|
93
|
-
if ($[
|
|
94
|
-
|
|
95
|
-
$[
|
|
96
|
-
$[
|
|
113
|
+
let t7;
|
|
114
|
+
if ($[26] !== actionsProps) {
|
|
115
|
+
t7 = <Actions {...actionsProps} />;
|
|
116
|
+
$[26] = actionsProps;
|
|
117
|
+
$[27] = t7;
|
|
97
118
|
} else {
|
|
98
|
-
|
|
119
|
+
t7 = $[27];
|
|
99
120
|
}
|
|
100
|
-
|
|
121
|
+
t6 = t7;
|
|
101
122
|
break bb1;
|
|
102
123
|
}
|
|
103
124
|
if (attachmentsConfig && attachmentTabs.length > 0) {
|
|
104
|
-
let
|
|
105
|
-
if ($[
|
|
106
|
-
|
|
107
|
-
$[
|
|
108
|
-
$[
|
|
109
|
-
$[
|
|
110
|
-
$[
|
|
111
|
-
$[
|
|
112
|
-
$[
|
|
113
|
-
$[
|
|
125
|
+
let t7;
|
|
126
|
+
if ($[28] !== attachmentTabs || $[29] !== attachmentsConfig || $[30] !== closeEmoji || $[31] !== icon || $[32] !== onSendForAttachments || $[33] !== wrapperStyle) {
|
|
127
|
+
t7 = <AttachmentButton tabs={attachmentTabs} config={attachmentsConfig} onSend={onSendForAttachments} onOpen={closeEmoji} icon={icon} wrapperStyle={wrapperStyle} />;
|
|
128
|
+
$[28] = attachmentTabs;
|
|
129
|
+
$[29] = attachmentsConfig;
|
|
130
|
+
$[30] = closeEmoji;
|
|
131
|
+
$[31] = icon;
|
|
132
|
+
$[32] = onSendForAttachments;
|
|
133
|
+
$[33] = wrapperStyle;
|
|
134
|
+
$[34] = t7;
|
|
114
135
|
} else {
|
|
115
|
-
|
|
136
|
+
t7 = $[34];
|
|
116
137
|
}
|
|
117
|
-
|
|
138
|
+
t6 = t7;
|
|
118
139
|
break bb1;
|
|
119
140
|
}
|
|
120
|
-
|
|
141
|
+
t6 = null;
|
|
121
142
|
}
|
|
122
|
-
$[
|
|
123
|
-
$[
|
|
124
|
-
$[
|
|
125
|
-
$[
|
|
126
|
-
$[
|
|
127
|
-
$[
|
|
128
|
-
$[
|
|
129
|
-
$[
|
|
130
|
-
$[
|
|
131
|
-
$[
|
|
132
|
-
$[
|
|
133
|
-
$[
|
|
143
|
+
$[14] = actionSheetOptionTintColor;
|
|
144
|
+
$[15] = actions;
|
|
145
|
+
$[16] = attachmentTabs;
|
|
146
|
+
$[17] = attachmentsConfig;
|
|
147
|
+
$[18] = closeEmoji;
|
|
148
|
+
$[19] = containerStyle;
|
|
149
|
+
$[20] = icon;
|
|
150
|
+
$[21] = onPressActionButton;
|
|
151
|
+
$[22] = onSendForAttachments;
|
|
152
|
+
$[23] = renderActions;
|
|
153
|
+
$[24] = wrapperStyle;
|
|
154
|
+
$[25] = t6;
|
|
134
155
|
} else {
|
|
135
|
-
|
|
156
|
+
t6 = $[25];
|
|
136
157
|
}
|
|
137
|
-
return
|
|
158
|
+
return t6;
|
|
159
|
+
}
|
|
160
|
+
function _temp(tab_0) {
|
|
161
|
+
return [tab_0, true];
|
|
138
162
|
}
|
|
139
163
|
//# sourceMappingURL=useActionsFragment.js.map
|