@kesha-antonov/react-native-chat 4.2.0 → 4.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +253 -47
- package/lib/Actions.d.ts +5 -5
- package/lib/Actions.d.ts.map +1 -1
- package/lib/Actions.js +28 -39
- package/lib/Actions.js.map +1 -1
- package/lib/Avatar.d.ts.map +1 -1
- package/lib/Avatar.js +34 -32
- package/lib/Avatar.js.map +1 -1
- package/lib/Bubble/index.d.ts.map +1 -1
- package/lib/Bubble/index.js +98 -28
- package/lib/Bubble/index.js.map +1 -1
- package/lib/Bubble/styles.d.ts +28 -11
- package/lib/Bubble/styles.d.ts.map +1 -1
- package/lib/Bubble/styles.js +108 -80
- package/lib/Bubble/styles.js.map +1 -1
- package/lib/Bubble/types.d.ts +12 -7
- package/lib/Bubble/types.d.ts.map +1 -1
- package/lib/Chat/ChatKeyboardAvoidingView.d.ts +8 -3
- package/lib/Chat/ChatKeyboardAvoidingView.d.ts.map +1 -1
- package/lib/Chat/ChatKeyboardAvoidingView.js +3 -5
- package/lib/Chat/ChatKeyboardAvoidingView.js.map +1 -1
- package/lib/Chat/index.d.ts +1 -0
- package/lib/Chat/index.d.ts.map +1 -1
- package/lib/Chat/index.js +94 -28
- package/lib/Chat/index.js.map +1 -1
- package/lib/Chat/types.d.ts +66 -24
- package/lib/Chat/types.d.ts.map +1 -1
- package/lib/ChatAvatar.d.ts.map +1 -1
- package/lib/ChatAvatar.js +11 -17
- package/lib/ChatAvatar.js.map +1 -1
- package/lib/ChatContext.d.ts +31 -1
- package/lib/ChatContext.d.ts.map +1 -1
- package/lib/ChatContext.js +4 -0
- package/lib/ChatContext.js.map +1 -1
- package/lib/Color.d.ts.map +1 -1
- package/lib/Color.js +6 -2
- package/lib/Color.js.map +1 -1
- package/lib/Composer.d.ts +14 -1
- package/lib/Composer.d.ts.map +1 -1
- package/lib/Composer.js +68 -50
- package/lib/Composer.js.map +1 -1
- package/lib/Constant.d.ts +1 -0
- package/lib/Constant.d.ts.map +1 -1
- package/lib/Constant.js +1 -0
- package/lib/Constant.js.map +1 -1
- package/lib/Day/index.d.ts.map +1 -1
- package/lib/Day/index.js +7 -3
- package/lib/Day/index.js.map +1 -1
- package/lib/Day/styles.d.ts +6 -7
- package/lib/Day/styles.d.ts.map +1 -1
- package/lib/Day/styles.js +11 -13
- package/lib/Day/styles.js.map +1 -1
- package/lib/Icons.d.ts +24 -0
- package/lib/Icons.d.ts.map +1 -0
- package/lib/Icons.js +2 -0
- package/lib/Icons.js.map +1 -0
- package/lib/InputToolbar.d.ts +18 -5
- package/lib/InputToolbar.d.ts.map +1 -1
- package/lib/InputToolbar.js +246 -19
- package/lib/InputToolbar.js.map +1 -1
- package/lib/LoadEarlierMessages.d.ts.map +1 -1
- package/lib/LoadEarlierMessages.js +12 -7
- package/lib/LoadEarlierMessages.js.map +1 -1
- package/lib/Message/index.d.ts.map +1 -1
- package/lib/Message/index.js +21 -12
- package/lib/Message/index.js.map +1 -1
- package/lib/Message/styles.js +2 -2
- package/lib/Message/styles.js.map +1 -1
- package/lib/MessageAudio.d.ts +2 -1
- package/lib/MessageAudio.d.ts.map +1 -1
- package/lib/MessageAudio.js +121 -19
- package/lib/MessageAudio.js.map +1 -1
- package/lib/MessageLocation.d.ts +9 -0
- package/lib/MessageLocation.d.ts.map +1 -0
- package/lib/MessageLocation.js +85 -0
- package/lib/MessageLocation.js.map +1 -0
- package/lib/MessageText.d.ts +12 -1
- package/lib/MessageText.d.ts.map +1 -1
- package/lib/MessageText.js +38 -11
- package/lib/MessageText.js.map +1 -1
- package/lib/MessageVideo.d.ts +2 -1
- package/lib/MessageVideo.d.ts.map +1 -1
- package/lib/MessageVideo.js +156 -18
- package/lib/MessageVideo.js.map +1 -1
- package/lib/MessagesContainer/components/Item/index.d.ts +2 -1
- package/lib/MessagesContainer/components/Item/index.d.ts.map +1 -1
- package/lib/MessagesContainer/components/Item/index.js +23 -1
- package/lib/MessagesContainer/components/Item/index.js.map +1 -1
- package/lib/MessagesContainer/index.d.ts.map +1 -1
- package/lib/MessagesContainer/index.js +24 -11
- package/lib/MessagesContainer/index.js.map +1 -1
- package/lib/MessagesContainer/styles.d.ts +23 -3
- package/lib/MessagesContainer/styles.d.ts.map +1 -1
- package/lib/MessagesContainer/styles.js +25 -5
- package/lib/MessagesContainer/styles.js.map +1 -1
- package/lib/Models.d.ts +72 -0
- package/lib/Models.d.ts.map +1 -1
- package/lib/QuickReplies.d.ts +1 -1
- package/lib/QuickReplies.d.ts.map +1 -1
- package/lib/QuickReplies.js +13 -7
- package/lib/QuickReplies.js.map +1 -1
- package/lib/Reactions/MessageReactions.d.ts.map +1 -1
- package/lib/Reactions/MessageReactions.js +11 -10
- package/lib/Reactions/MessageReactions.js.map +1 -1
- package/lib/Reactions/ReactionPicker.d.ts.map +1 -1
- package/lib/Reactions/ReactionPicker.js +5 -3
- package/lib/Reactions/ReactionPicker.js.map +1 -1
- package/lib/Send.d.ts +2 -2
- package/lib/Send.d.ts.map +1 -1
- package/lib/Send.js +37 -37
- package/lib/Send.js.map +1 -1
- package/lib/SystemMessage.d.ts.map +1 -1
- package/lib/SystemMessage.js +8 -5
- package/lib/SystemMessage.js.map +1 -1
- package/lib/Theme.d.ts +159 -0
- package/lib/Theme.d.ts.map +1 -0
- package/lib/Theme.js +147 -0
- package/lib/Theme.js.map +1 -0
- package/lib/Time.d.ts.map +1 -1
- package/lib/Time.js +7 -5
- package/lib/Time.js.map +1 -1
- package/lib/TypingIndicator/index.d.ts.map +1 -1
- package/lib/TypingIndicator/index.js +4 -1
- package/lib/TypingIndicator/index.js.map +1 -1
- package/lib/TypingIndicator/styles.d.ts +2 -2
- package/lib/TypingIndicator/styles.d.ts.map +1 -1
- package/lib/TypingIndicator/styles.js +4 -5
- package/lib/TypingIndicator/styles.js.map +1 -1
- package/lib/components/AttachmentSheet.d.ts +28 -0
- package/lib/components/AttachmentSheet.d.ts.map +1 -0
- package/lib/components/AttachmentSheet.js +177 -0
- package/lib/components/AttachmentSheet.js.map +1 -0
- package/lib/components/BasicMarkdown.d.ts +12 -0
- package/lib/components/BasicMarkdown.d.ts.map +1 -0
- package/lib/components/BasicMarkdown.js +220 -0
- package/lib/components/BasicMarkdown.js.map +1 -0
- package/lib/components/ContextMenu.d.ts +25 -0
- package/lib/components/ContextMenu.d.ts.map +1 -0
- package/lib/components/ContextMenu.js +122 -0
- package/lib/components/ContextMenu.js.map +1 -0
- package/lib/components/Icon.d.ts +17 -0
- package/lib/components/Icon.d.ts.map +1 -0
- package/lib/components/Icon.js +19 -0
- package/lib/components/Icon.js.map +1 -0
- package/lib/components/LucideIcon.d.ts +10 -0
- package/lib/components/LucideIcon.d.ts.map +1 -0
- package/lib/components/LucideIcon.js +118 -0
- package/lib/components/LucideIcon.js.map +1 -0
- package/lib/components/MarkdownMessageText.d.ts +19 -0
- package/lib/components/MarkdownMessageText.d.ts.map +1 -0
- package/lib/components/MarkdownMessageText.js +35 -0
- package/lib/components/MarkdownMessageText.js.map +1 -0
- package/lib/components/MediaCard.d.ts +19 -0
- package/lib/components/MediaCard.d.ts.map +1 -0
- package/lib/components/MediaCard.js +102 -0
- package/lib/components/MediaCard.js.map +1 -0
- package/lib/components/MediaControls.d.ts +41 -0
- package/lib/components/MediaControls.d.ts.map +1 -0
- package/lib/components/MediaControls.js +524 -0
- package/lib/components/MediaControls.js.map +1 -0
- package/lib/components/MessageReply.d.ts.map +1 -1
- package/lib/components/MessageReply.js +11 -9
- package/lib/components/MessageReply.js.map +1 -1
- package/lib/components/ReplyPreview.d.ts +3 -1
- package/lib/components/ReplyPreview.d.ts.map +1 -1
- package/lib/components/ReplyPreview.js +37 -36
- package/lib/components/ReplyPreview.js.map +1 -1
- package/lib/components/SendIcon.d.ts +13 -0
- package/lib/components/SendIcon.d.ts.map +1 -0
- package/lib/components/SendIcon.js +37 -0
- package/lib/components/SendIcon.js.map +1 -0
- package/lib/components/Ticks.d.ts +25 -0
- package/lib/components/Ticks.d.ts.map +1 -0
- package/lib/components/Ticks.js +102 -0
- package/lib/components/Ticks.js.map +1 -0
- package/lib/components/VideoNoteOverlay.d.ts +25 -0
- package/lib/components/VideoNoteOverlay.d.ts.map +1 -0
- package/lib/components/VideoNoteOverlay.js +151 -0
- package/lib/components/VideoNoteOverlay.js.map +1 -0
- package/lib/components/VideoNoteRecorder.d.ts +19 -0
- package/lib/components/VideoNoteRecorder.d.ts.map +1 -0
- package/lib/components/VideoNoteRecorder.js +634 -0
- package/lib/components/VideoNoteRecorder.js.map +1 -0
- package/lib/components/VideoRecordButton.d.ts +29 -0
- package/lib/components/VideoRecordButton.d.ts.map +1 -0
- package/lib/components/VideoRecordButton.js +117 -0
- package/lib/components/VideoRecordButton.js.map +1 -0
- package/lib/components/VoiceMessageInput.d.ts +33 -0
- package/lib/components/VoiceMessageInput.d.ts.map +1 -0
- package/lib/components/VoiceMessageInput.js +403 -0
- package/lib/components/VoiceMessageInput.js.map +1 -0
- package/lib/components/WaveformPlayer.d.ts +19 -0
- package/lib/components/WaveformPlayer.d.ts.map +1 -0
- package/lib/components/WaveformPlayer.js +367 -0
- package/lib/components/WaveformPlayer.js.map +1 -0
- package/lib/components/mediaPalette.d.ts +23 -0
- package/lib/components/mediaPalette.d.ts.map +1 -0
- package/lib/components/mediaPalette.js +16 -0
- package/lib/components/mediaPalette.js.map +1 -0
- package/lib/components/mediaPlayback.d.ts +22 -0
- package/lib/components/mediaPlayback.d.ts.map +1 -0
- package/lib/components/mediaPlayback.js +34 -0
- package/lib/components/mediaPlayback.js.map +1 -0
- package/lib/dayjsLocales.d.ts +18 -0
- package/lib/dayjsLocales.d.ts.map +1 -0
- package/lib/dayjsLocales.js +36 -0
- package/lib/dayjsLocales.js.map +1 -0
- package/lib/hooks/useColorScheme.d.ts +9 -2
- package/lib/hooks/useColorScheme.d.ts.map +1 -1
- package/lib/hooks/useColorScheme.js +9 -3
- package/lib/hooks/useColorScheme.js.map +1 -1
- package/lib/hooks/useIcons.d.ts +4 -0
- package/lib/hooks/useIcons.d.ts.map +1 -0
- package/lib/hooks/useIcons.js +8 -0
- package/lib/hooks/useIcons.js.map +1 -0
- package/lib/hooks/useIsRTL.d.ts +3 -0
- package/lib/hooks/useIsRTL.d.ts.map +1 -0
- package/lib/hooks/useIsRTL.js +7 -0
- package/lib/hooks/useIsRTL.js.map +1 -0
- package/lib/hooks/useKeyboardVerticalOffset.d.ts +29 -8
- package/lib/hooks/useKeyboardVerticalOffset.d.ts.map +1 -1
- package/lib/hooks/useKeyboardVerticalOffset.js +41 -8
- package/lib/hooks/useKeyboardVerticalOffset.js.map +1 -1
- package/lib/hooks/useLabels.d.ts +4 -0
- package/lib/hooks/useLabels.d.ts.map +1 -0
- package/lib/hooks/useLabels.js +8 -0
- package/lib/hooks/useLabels.js.map +1 -0
- package/lib/hooks/useTheme.d.ts +21 -0
- package/lib/hooks/useTheme.d.ts.map +1 -0
- package/lib/hooks/useTheme.js +32 -0
- package/lib/hooks/useTheme.js.map +1 -0
- package/lib/i18n.d.ts +66 -0
- package/lib/i18n.d.ts.map +1 -0
- package/lib/i18n.js +53 -0
- package/lib/i18n.js.map +1 -0
- package/lib/index.d.ts +19 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +19 -0
- package/lib/index.js.map +1 -1
- package/lib/locales/ar.d.ts +3 -0
- package/lib/locales/ar.d.ts.map +1 -0
- package/lib/locales/ar.js +22 -0
- package/lib/locales/ar.js.map +1 -0
- package/lib/locales/de.d.ts +3 -0
- package/lib/locales/de.d.ts.map +1 -0
- package/lib/locales/de.js +22 -0
- package/lib/locales/de.js.map +1 -0
- package/lib/locales/es.d.ts +3 -0
- package/lib/locales/es.d.ts.map +1 -0
- package/lib/locales/es.js +22 -0
- package/lib/locales/es.js.map +1 -0
- package/lib/locales/fr.d.ts +3 -0
- package/lib/locales/fr.d.ts.map +1 -0
- package/lib/locales/fr.js +22 -0
- package/lib/locales/fr.js.map +1 -0
- package/lib/locales/hi.d.ts +3 -0
- package/lib/locales/hi.d.ts.map +1 -0
- package/lib/locales/hi.js +22 -0
- package/lib/locales/hi.js.map +1 -0
- package/lib/locales/id.d.ts +3 -0
- package/lib/locales/id.d.ts.map +1 -0
- package/lib/locales/id.js +22 -0
- package/lib/locales/id.js.map +1 -0
- package/lib/locales/index.d.ts +19 -0
- package/lib/locales/index.d.ts.map +1 -0
- package/lib/locales/index.js +39 -0
- package/lib/locales/index.js.map +1 -0
- package/lib/locales/it.d.ts +3 -0
- package/lib/locales/it.d.ts.map +1 -0
- package/lib/locales/it.js +22 -0
- package/lib/locales/it.js.map +1 -0
- package/lib/locales/ja.d.ts +3 -0
- package/lib/locales/ja.d.ts.map +1 -0
- package/lib/locales/ja.js +22 -0
- package/lib/locales/ja.js.map +1 -0
- package/lib/locales/ko.d.ts +3 -0
- package/lib/locales/ko.d.ts.map +1 -0
- package/lib/locales/ko.js +22 -0
- package/lib/locales/ko.js.map +1 -0
- package/lib/locales/nl.d.ts +3 -0
- package/lib/locales/nl.d.ts.map +1 -0
- package/lib/locales/nl.js +22 -0
- package/lib/locales/nl.js.map +1 -0
- package/lib/locales/pl.d.ts +3 -0
- package/lib/locales/pl.d.ts.map +1 -0
- package/lib/locales/pl.js +22 -0
- package/lib/locales/pl.js.map +1 -0
- package/lib/locales/pt.d.ts +3 -0
- package/lib/locales/pt.d.ts.map +1 -0
- package/lib/locales/pt.js +22 -0
- package/lib/locales/pt.js.map +1 -0
- package/lib/locales/ru.d.ts +3 -0
- package/lib/locales/ru.d.ts.map +1 -0
- package/lib/locales/ru.js +22 -0
- package/lib/locales/ru.js.map +1 -0
- package/lib/locales/tr.d.ts +3 -0
- package/lib/locales/tr.d.ts.map +1 -0
- package/lib/locales/tr.js +22 -0
- package/lib/locales/tr.js.map +1 -0
- package/lib/locales/zh.d.ts +3 -0
- package/lib/locales/zh.d.ts.map +1 -0
- package/lib/locales/zh.js +22 -0
- package/lib/locales/zh.js.map +1 -0
- package/lib/rtl.d.ts +18 -0
- package/lib/rtl.d.ts.map +1 -0
- package/lib/rtl.js +31 -0
- package/lib/rtl.js.map +1 -0
- package/lib/types.d.ts +2 -1
- package/lib/types.d.ts.map +1 -1
- package/package.json +99 -44
- package/lib/MessageReply.d.ts +0 -15
- package/lib/MessageReply.d.ts.map +0 -1
- package/lib/MessageReply.js +0 -102
- package/lib/MessageReply.js.map +0 -1
- package/lib/ReplyPreview.d.ts +0 -14
- package/lib/ReplyPreview.d.ts.map +0 -1
- package/lib/ReplyPreview.js +0 -94
- package/lib/ReplyPreview.js.map +0 -1
|
@@ -1,8 +1,15 @@
|
|
|
1
|
+
import { ColorSchemeName } from 'react-native';
|
|
2
|
+
/**
|
|
3
|
+
* React Native 0.86 widened `ColorSchemeName` with `'unspecified'`, which means
|
|
4
|
+
* "no preference expressed" rather than a real scheme. Everything downstream
|
|
5
|
+
* only understands light/dark, so collapse it (and `undefined`) to `null`.
|
|
6
|
+
*/
|
|
7
|
+
export declare const normalizeColorScheme: (scheme: ColorSchemeName | "light" | "dark" | null | undefined) => "light" | "dark" | null;
|
|
1
8
|
/**
|
|
2
9
|
* Custom hook that returns the color scheme from Chat context if provided,
|
|
3
10
|
* otherwise falls back to the system color scheme from React Native.
|
|
4
11
|
*
|
|
5
|
-
* @returns The current color scheme ('light', 'dark',
|
|
12
|
+
* @returns The current color scheme ('light', 'dark', or null)
|
|
6
13
|
*/
|
|
7
|
-
export declare function useColorScheme():
|
|
14
|
+
export declare function useColorScheme(): "light" | "dark" | null;
|
|
8
15
|
//# sourceMappingURL=useColorScheme.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useColorScheme.d.ts","sourceRoot":"","sources":["../../src/hooks/useColorScheme.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useColorScheme.d.ts","sourceRoot":"","sources":["../../src/hooks/useColorScheme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAsC,MAAM,cAAc,CAAA;AAGlF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,eAAe,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,KAC5D,OAAO,GAAG,MAAM,GAAG,IACmC,CAAA;AAEzD;;;;;GAKG;AACH,wBAAgB,cAAc,4BAU7B"}
|
|
@@ -1,17 +1,23 @@
|
|
|
1
1
|
import { useColorScheme as useRNColorScheme } from 'react-native';
|
|
2
2
|
import { useChatContext } from '../ChatContext';
|
|
3
|
+
/**
|
|
4
|
+
* React Native 0.86 widened `ColorSchemeName` with `'unspecified'`, which means
|
|
5
|
+
* "no preference expressed" rather than a real scheme. Everything downstream
|
|
6
|
+
* only understands light/dark, so collapse it (and `undefined`) to `null`.
|
|
7
|
+
*/
|
|
8
|
+
export const normalizeColorScheme = (scheme) => scheme === 'light' || scheme === 'dark' ? scheme : null;
|
|
3
9
|
/**
|
|
4
10
|
* Custom hook that returns the color scheme from Chat context if provided,
|
|
5
11
|
* otherwise falls back to the system color scheme from React Native.
|
|
6
12
|
*
|
|
7
|
-
* @returns The current color scheme ('light', 'dark',
|
|
13
|
+
* @returns The current color scheme ('light', 'dark', or null)
|
|
8
14
|
*/
|
|
9
15
|
export function useColorScheme() {
|
|
10
16
|
const { getColorScheme } = useChatContext();
|
|
11
17
|
const contextColorScheme = getColorScheme();
|
|
12
18
|
const systemColorScheme = useRNColorScheme();
|
|
13
|
-
return contextColorScheme !== undefined && contextColorScheme !== null
|
|
19
|
+
return normalizeColorScheme(contextColorScheme !== undefined && contextColorScheme !== null
|
|
14
20
|
? contextColorScheme
|
|
15
|
-
: systemColorScheme;
|
|
21
|
+
: systemColorScheme);
|
|
16
22
|
}
|
|
17
23
|
//# sourceMappingURL=useColorScheme.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useColorScheme.js","sourceRoot":"","sources":["../../src/hooks/useColorScheme.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"useColorScheme.js","sourceRoot":"","sources":["../../src/hooks/useColorScheme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,cAAc,IAAI,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE/C;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,MAA6D,EACpC,EAAE,CAC3B,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA;AAEzD;;;;;GAKG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,EAAE,cAAc,EAAE,GAAG,cAAc,EAAE,CAAA;IAC3C,MAAM,kBAAkB,GAAG,cAAc,EAAE,CAAA;IAC3C,MAAM,iBAAiB,GAAG,gBAAgB,EAAE,CAAA;IAE5C,OAAO,oBAAoB,CACzB,kBAAkB,KAAK,SAAS,IAAI,kBAAkB,KAAK,IAAI;QAC7D,CAAC,CAAC,kBAAkB;QACpB,CAAC,CAAC,iBAAiB,CACtB,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useIcons.d.ts","sourceRoot":"","sources":["../../src/hooks/useIcons.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAIpC,+EAA+E;AAC/E,wBAAgB,QAAQ,IAAK,SAAS,CAGrC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { useChatContext } from '../ChatContext';
|
|
2
|
+
const EMPTY = {};
|
|
3
|
+
/** Returns the icon override registry from context (empty outside of Chat). */
|
|
4
|
+
export function useIcons() {
|
|
5
|
+
const { getIcons } = useChatContext();
|
|
6
|
+
return getIcons?.() ?? EMPTY;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=useIcons.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useIcons.js","sourceRoot":"","sources":["../../src/hooks/useIcons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAG/C,MAAM,KAAK,GAAc,EAAE,CAAA;AAE3B,+EAA+E;AAC/E,MAAM,UAAU,QAAQ;IACtB,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,EAAE,CAAA;IACrC,OAAO,QAAQ,EAAE,EAAE,IAAI,KAAK,CAAA;AAC9B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useIsRTL.d.ts","sourceRoot":"","sources":["../../src/hooks/useIsRTL.ts"],"names":[],"mappings":"AAEA,uFAAuF;AACvF,wBAAgB,QAAQ,IAAK,OAAO,CAGnC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { useChatContext } from '../ChatContext';
|
|
2
|
+
/** Whether the chat is laying out right-to-left (`false` when used outside `Chat`). */
|
|
3
|
+
export function useIsRTL() {
|
|
4
|
+
const { getIsRTL } = useChatContext();
|
|
5
|
+
return getIsRTL?.() ?? false;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=useIsRTL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useIsRTL.js","sourceRoot":"","sources":["../../src/hooks/useIsRTL.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE/C,uFAAuF;AACvF,MAAM,UAAU,QAAQ;IACtB,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,EAAE,CAAA;IACrC,OAAO,QAAQ,EAAE,EAAE,IAAI,KAAK,CAAA;AAC9B,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { View } from 'react-native';
|
|
1
2
|
/**
|
|
2
3
|
* How far down the window the chat container starts - the value
|
|
3
4
|
* `KeyboardAvoidingView` needs to keep the input toolbar on top of the keyboard.
|
|
@@ -7,13 +8,33 @@
|
|
|
7
8
|
* roughly a header-height too low, i.e. behind the keyboard.
|
|
8
9
|
* See https://github.com/kesha-antonov/react-native-chat/issues/11
|
|
9
10
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
11
|
+
* It cannot come from `useSafeAreaFrame()` alone either. That reads the nearest
|
|
12
|
+
* `SafeAreaProvider`, and react-native-safe-area-context (v5) seeds a nested
|
|
13
|
+
* provider from its *parent's* metrics - so when the host app already mounts one
|
|
14
|
+
* at the root (the documented setup, and what expo-router does), the provider
|
|
15
|
+
* `ChatWrapper` mounts reports the root frame and `y` stays 0 no matter where the
|
|
16
|
+
* chat actually sits. A chat under a navigation header then got offset 0 and its
|
|
17
|
+
* toolbar landed a header-height too low: back behind the keyboard.
|
|
18
|
+
*
|
|
19
|
+
* So the offset is measured from the chat container itself, in window
|
|
20
|
+
* coordinates, and the safe-area frame is kept only as the pre-measurement
|
|
21
|
+
* seed. Attach `onLayout`/`ref` to the view that wraps the chat.
|
|
22
|
+
*
|
|
23
|
+
* `isMeasured` reports whether that real measurement has landed yet, as opposed
|
|
24
|
+
* to `keyboardVerticalOffset` still being the seed. It exists because the seed
|
|
25
|
+
* can be wrong, not just imprecise: Chat mounts its own `SafeAreaProvider`
|
|
26
|
+
* seeded with the *window's* frame (`y = 0`), so a chat nested below a header
|
|
27
|
+
* briefly reports offset 0 - correct for a full-screen chat, wrong for this one -
|
|
28
|
+
* until `measureInWindow`'s native round trip resolves. Reveal the toolbar only
|
|
29
|
+
* once `isMeasured` is true so it never paints at that wrong offset, which
|
|
30
|
+
* otherwise showed as the toolbar sitting under the keyboard for a frame when
|
|
31
|
+
* the keyboard was already up as the chat mounted.
|
|
32
|
+
* See https://github.com/kesha-antonov/react-native-chat/issues/12
|
|
17
33
|
*/
|
|
18
|
-
export declare function useKeyboardVerticalOffset():
|
|
34
|
+
export declare function useKeyboardVerticalOffset(): {
|
|
35
|
+
ref: import("react").RefObject<View | null>;
|
|
36
|
+
onLayout: () => void;
|
|
37
|
+
keyboardVerticalOffset: number;
|
|
38
|
+
isMeasured: boolean;
|
|
39
|
+
};
|
|
19
40
|
//# sourceMappingURL=useKeyboardVerticalOffset.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useKeyboardVerticalOffset.d.ts","sourceRoot":"","sources":["../../src/hooks/useKeyboardVerticalOffset.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useKeyboardVerticalOffset.d.ts","sourceRoot":"","sources":["../../src/hooks/useKeyboardVerticalOffset.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAGnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,yBAAyB;;;;;EAqBxC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { useCallback, useRef, useState } from 'react';
|
|
1
2
|
import { useSafeAreaFrame } from 'react-native-safe-area-context';
|
|
2
3
|
/**
|
|
3
4
|
* How far down the window the chat container starts - the value
|
|
@@ -8,15 +9,47 @@ import { useSafeAreaFrame } from 'react-native-safe-area-context';
|
|
|
8
9
|
* roughly a header-height too low, i.e. behind the keyboard.
|
|
9
10
|
* See https://github.com/kesha-antonov/react-native-chat/issues/11
|
|
10
11
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
12
|
+
* It cannot come from `useSafeAreaFrame()` alone either. That reads the nearest
|
|
13
|
+
* `SafeAreaProvider`, and react-native-safe-area-context (v5) seeds a nested
|
|
14
|
+
* provider from its *parent's* metrics - so when the host app already mounts one
|
|
15
|
+
* at the root (the documented setup, and what expo-router does), the provider
|
|
16
|
+
* `ChatWrapper` mounts reports the root frame and `y` stays 0 no matter where the
|
|
17
|
+
* chat actually sits. A chat under a navigation header then got offset 0 and its
|
|
18
|
+
* toolbar landed a header-height too low: back behind the keyboard.
|
|
19
|
+
*
|
|
20
|
+
* So the offset is measured from the chat container itself, in window
|
|
21
|
+
* coordinates, and the safe-area frame is kept only as the pre-measurement
|
|
22
|
+
* seed. Attach `onLayout`/`ref` to the view that wraps the chat.
|
|
23
|
+
*
|
|
24
|
+
* `isMeasured` reports whether that real measurement has landed yet, as opposed
|
|
25
|
+
* to `keyboardVerticalOffset` still being the seed. It exists because the seed
|
|
26
|
+
* can be wrong, not just imprecise: Chat mounts its own `SafeAreaProvider`
|
|
27
|
+
* seeded with the *window's* frame (`y = 0`), so a chat nested below a header
|
|
28
|
+
* briefly reports offset 0 - correct for a full-screen chat, wrong for this one -
|
|
29
|
+
* until `measureInWindow`'s native round trip resolves. Reveal the toolbar only
|
|
30
|
+
* once `isMeasured` is true so it never paints at that wrong offset, which
|
|
31
|
+
* otherwise showed as the toolbar sitting under the keyboard for a frame when
|
|
32
|
+
* the keyboard was already up as the chat mounted.
|
|
33
|
+
* See https://github.com/kesha-antonov/react-native-chat/issues/12
|
|
18
34
|
*/
|
|
19
35
|
export function useKeyboardVerticalOffset() {
|
|
20
|
-
|
|
36
|
+
const frameY = useSafeAreaFrame().y;
|
|
37
|
+
const ref = useRef(null);
|
|
38
|
+
const [measured, setMeasured] = useState(null);
|
|
39
|
+
const onLayout = useCallback(() => {
|
|
40
|
+
// measureInWindow, not the layout event: the event reports the position
|
|
41
|
+
// within the parent, which is 0 for a fill view and tells us nothing about
|
|
42
|
+
// where the chat sits on screen.
|
|
43
|
+
ref.current?.measureInWindow((_x, y) => {
|
|
44
|
+
if (Number.isFinite(y))
|
|
45
|
+
setMeasured(previous => (previous === y ? previous : y));
|
|
46
|
+
});
|
|
47
|
+
}, []);
|
|
48
|
+
return {
|
|
49
|
+
ref,
|
|
50
|
+
onLayout,
|
|
51
|
+
keyboardVerticalOffset: measured ?? frameY,
|
|
52
|
+
isMeasured: measured !== null,
|
|
53
|
+
};
|
|
21
54
|
}
|
|
22
55
|
//# sourceMappingURL=useKeyboardVerticalOffset.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useKeyboardVerticalOffset.js","sourceRoot":"","sources":["../../src/hooks/useKeyboardVerticalOffset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAEjE
|
|
1
|
+
{"version":3,"file":"useKeyboardVerticalOffset.js","sourceRoot":"","sources":["../../src/hooks/useKeyboardVerticalOffset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,UAAU,yBAAyB;IACvC,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC,CAAC,CAAA;IACnC,MAAM,GAAG,GAAG,MAAM,CAAO,IAAI,CAAC,CAAA;IAC9B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAA;IAE7D,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;QAChC,wEAAwE;QACxE,2EAA2E;QAC3E,iCAAiC;QACjC,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;YACrC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACpB,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5D,CAAC,CAAC,CAAA;IACJ,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO;QACL,GAAG;QACH,QAAQ;QACR,sBAAsB,EAAE,QAAQ,IAAI,MAAM;QAC1C,UAAU,EAAE,QAAQ,KAAK,IAAI;KAC9B,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useLabels.d.ts","sourceRoot":"","sources":["../../src/hooks/useLabels.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAiB,MAAM,SAAS,CAAA;AAEnD,gFAAgF;AAChF,wBAAgB,SAAS,IAAK,UAAU,CAGvC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { useChatContext } from '../ChatContext';
|
|
2
|
+
import { defaultLabels } from '../i18n';
|
|
3
|
+
/** Returns the resolved UI labels (English defaults when used outside Chat). */
|
|
4
|
+
export function useLabels() {
|
|
5
|
+
const { getLabels } = useChatContext();
|
|
6
|
+
return getLabels?.() ?? defaultLabels;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=useLabels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useLabels.js","sourceRoot":"","sources":["../../src/hooks/useLabels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAc,aAAa,EAAE,MAAM,SAAS,CAAA;AAEnD,gFAAgF;AAChF,MAAM,UAAU,SAAS;IACvB,MAAM,EAAE,SAAS,EAAE,GAAG,cAAc,EAAE,CAAA;IACtC,OAAO,SAAS,EAAE,EAAE,IAAI,aAAa,CAAA;AACvC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ChatTheme } from '../Theme';
|
|
2
|
+
/**
|
|
3
|
+
* Returns the active {@link ChatTheme}. Inside `Chat` this is the resolved theme
|
|
4
|
+
* shared through context (defaults merged with `theme` / `darkTheme` overrides),
|
|
5
|
+
* so switching the theme prop or the system color scheme at runtime updates
|
|
6
|
+
* every consumer. Used standalone (outside `Chat`), it falls back to the
|
|
7
|
+
* built-in defaults for the current system color scheme.
|
|
8
|
+
*/
|
|
9
|
+
export declare function useTheme(): ChatTheme;
|
|
10
|
+
/**
|
|
11
|
+
* DRY helper for theme-aware StyleSheets. Pass a module-level factory that maps
|
|
12
|
+
* a theme to a `StyleSheet.create(...)` result; the styles are memoized on the
|
|
13
|
+
* theme, so they are rebuilt only when the theme actually changes.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* const createStyles = (theme: ChatTheme) => StyleSheet.create({ ... })
|
|
17
|
+
* // inside a component:
|
|
18
|
+
* const styles = useThemedStyles(createStyles)
|
|
19
|
+
*/
|
|
20
|
+
export declare function useThemedStyles<T>(factory: (theme: ChatTheme) => T): T;
|
|
21
|
+
//# sourceMappingURL=useTheme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTheme.d.ts","sourceRoot":"","sources":["../../src/hooks/useTheme.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAuC,MAAM,UAAU,CAAA;AAGzE;;;;;;GAMG;AACH,wBAAgB,QAAQ,IAAK,SAAS,CASrC;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAG,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,CAAC,GAAG,CAAC,CAGvE"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { useMemo } from 'react';
|
|
2
|
+
import { useChatContext } from '../ChatContext';
|
|
3
|
+
import { defaultDarkTheme, defaultLightTheme } from '../Theme';
|
|
4
|
+
import { useColorScheme } from './useColorScheme';
|
|
5
|
+
/**
|
|
6
|
+
* Returns the active {@link ChatTheme}. Inside `Chat` this is the resolved theme
|
|
7
|
+
* shared through context (defaults merged with `theme` / `darkTheme` overrides),
|
|
8
|
+
* so switching the theme prop or the system color scheme at runtime updates
|
|
9
|
+
* every consumer. Used standalone (outside `Chat`), it falls back to the
|
|
10
|
+
* built-in defaults for the current system color scheme.
|
|
11
|
+
*/
|
|
12
|
+
export function useTheme() {
|
|
13
|
+
const colorScheme = useColorScheme();
|
|
14
|
+
const { getTheme } = useChatContext();
|
|
15
|
+
const contextTheme = getTheme?.();
|
|
16
|
+
return useMemo(() => contextTheme ?? (colorScheme === 'dark' ? defaultDarkTheme : defaultLightTheme), [contextTheme, colorScheme]);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* DRY helper for theme-aware StyleSheets. Pass a module-level factory that maps
|
|
20
|
+
* a theme to a `StyleSheet.create(...)` result; the styles are memoized on the
|
|
21
|
+
* theme, so they are rebuilt only when the theme actually changes.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* const createStyles = (theme: ChatTheme) => StyleSheet.create({ ... })
|
|
25
|
+
* // inside a component:
|
|
26
|
+
* const styles = useThemedStyles(createStyles)
|
|
27
|
+
*/
|
|
28
|
+
export function useThemedStyles(factory) {
|
|
29
|
+
const theme = useTheme();
|
|
30
|
+
return useMemo(() => factory(theme), [factory, theme]);
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=useTheme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTheme.js","sourceRoot":"","sources":["../../src/hooks/useTheme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAa,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ;IACtB,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IACpC,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,EAAE,CAAA;IACrC,MAAM,YAAY,GAAG,QAAQ,EAAE,EAAE,CAAA;IAEjC,OAAO,OAAO,CACZ,GAAG,EAAE,CAAC,YAAY,IAAI,CAAC,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,iBAAiB,CAAC,EACrF,CAAC,YAAY,EAAE,WAAW,CAAC,CAC5B,CAAA;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAAK,OAAgC;IAClE,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;IACxB,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;AACxD,CAAC"}
|
package/lib/i18n.d.ts
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UI string localization for the chat. Date/time localization (month/day names, calendar
|
|
3
|
+
* formats) is handled separately by Day.js via the `locale` prop - dayjsLocales.ts bundles the
|
|
4
|
+
* matching dayjs locale for every language translated here, kept in sync via the
|
|
5
|
+
* `SupportedLocale` type in ./locales (compile time) and dayjsLocales.test.ts (runtime). This
|
|
6
|
+
* file covers the static UI labels (composer placeholder, buttons, recording hint, media/
|
|
7
|
+
* location labels, etc.); the actual per-language strings live one-per-file under `src/locales/`.
|
|
8
|
+
*
|
|
9
|
+
* Provide overrides through the `labels` prop on `Chat`, or rely on the built-in
|
|
10
|
+
* translations selected by the `locale` prop. Labels resolve as:
|
|
11
|
+
* labels (prop) > translations[locale] > defaultLabels (English)
|
|
12
|
+
*/
|
|
13
|
+
import { translations } from './locales';
|
|
14
|
+
export interface ChatLabels {
|
|
15
|
+
/** Composer placeholder. */
|
|
16
|
+
placeholder: string;
|
|
17
|
+
/** Send button / quick-reply send label. */
|
|
18
|
+
send: string;
|
|
19
|
+
/** Cancel row in the attachment sheet. */
|
|
20
|
+
cancel: string;
|
|
21
|
+
/** "Load earlier messages" button. */
|
|
22
|
+
loadEarlier: string;
|
|
23
|
+
/** Day separator label for today's date. */
|
|
24
|
+
today: string;
|
|
25
|
+
/** Video message fallback label. */
|
|
26
|
+
video: string;
|
|
27
|
+
/** Voice/audio message fallback label. */
|
|
28
|
+
voiceMessage: string;
|
|
29
|
+
videoMessage: string;
|
|
30
|
+
/** Location message title. */
|
|
31
|
+
location: string;
|
|
32
|
+
/** Accessibility label for the location card. */
|
|
33
|
+
openLocationAccessibility: string;
|
|
34
|
+
/** Voice recording slide-to-cancel hint. */
|
|
35
|
+
slideToCancel: string;
|
|
36
|
+
/** Reply banner title; `{name}` is replaced with the author's name. */
|
|
37
|
+
replyingTo: string;
|
|
38
|
+
/** Edit banner title. */
|
|
39
|
+
editing: string;
|
|
40
|
+
/** Shown in the video recorder when camera permission is missing. */
|
|
41
|
+
cameraPermission: string;
|
|
42
|
+
/** Shown in the video recorder when no camera device is found. */
|
|
43
|
+
noCamera: string;
|
|
44
|
+
/** Hint under the video recorder's shutter while a take is running. */
|
|
45
|
+
stopAndSend: string;
|
|
46
|
+
/** Hint under the video recorder's shutter before recording starts. */
|
|
47
|
+
tapToRecord: string;
|
|
48
|
+
/** Hint while holding the video shutter. */
|
|
49
|
+
releaseToSend: string;
|
|
50
|
+
/** Idle hint for the hold-to-record video shutter. */
|
|
51
|
+
holdToRecord: string;
|
|
52
|
+
}
|
|
53
|
+
export declare const defaultLabels: ChatLabels;
|
|
54
|
+
/**
|
|
55
|
+
* Built-in translations (a starter set), one language per file under `src/locales/`. Re-exported
|
|
56
|
+
* here so `import { translations } from 'react-native-chat'` keeps working.
|
|
57
|
+
*/
|
|
58
|
+
export { translations };
|
|
59
|
+
/**
|
|
60
|
+
* Resolve the active labels: the `labels` override on top of the built-in
|
|
61
|
+
* translation for `locale` (if any) on top of English defaults.
|
|
62
|
+
*/
|
|
63
|
+
export declare function resolveLabels(locale?: string, labels?: Partial<ChatLabels>): ChatLabels;
|
|
64
|
+
/** Interpolate `{name}`-style placeholders in a label. */
|
|
65
|
+
export declare function formatLabel(label: string, values: Record<string, string | number>): string;
|
|
66
|
+
//# sourceMappingURL=i18n.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAwB,YAAY,EAAE,MAAM,WAAW,CAAA;AAE9D,MAAM,WAAW,UAAU;IACzB,4BAA4B;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAA;IACZ,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAA;IACd,sCAAsC;IACtC,WAAW,EAAE,MAAM,CAAA;IACnB,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAA;IACb,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAA;IACb,0CAA0C;IAC1C,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,iDAAiD;IACjD,yBAAyB,EAAE,MAAM,CAAA;IACjC,4CAA4C;IAC5C,aAAa,EAAE,MAAM,CAAA;IACrB,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAA;IAClB,yBAAyB;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,qEAAqE;IACrE,gBAAgB,EAAE,MAAM,CAAA;IACxB,kEAAkE;IAClE,QAAQ,EAAE,MAAM,CAAA;IAChB,uEAAuE;IACvE,WAAW,EAAE,MAAM,CAAA;IACnB,uEAAuE;IACvE,WAAW,EAAE,MAAM,CAAA;IACnB,4CAA4C;IAC5C,aAAa,EAAE,MAAM,CAAA;IACrB,sDAAsD;IACtD,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,eAAO,MAAM,aAAa,EAAE,UAoB3B,CAAA;AAED;;;GAGG;AACH,OAAO,EAAE,YAAY,EAAE,CAAA;AAEvB;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAC3B,UAAU,CAIZ;AAED,0DAA0D;AAC1D,wBAAgB,WAAW,CAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,MAAM,CAE3F"}
|
package/lib/i18n.js
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UI string localization for the chat. Date/time localization (month/day names, calendar
|
|
3
|
+
* formats) is handled separately by Day.js via the `locale` prop - dayjsLocales.ts bundles the
|
|
4
|
+
* matching dayjs locale for every language translated here, kept in sync via the
|
|
5
|
+
* `SupportedLocale` type in ./locales (compile time) and dayjsLocales.test.ts (runtime). This
|
|
6
|
+
* file covers the static UI labels (composer placeholder, buttons, recording hint, media/
|
|
7
|
+
* location labels, etc.); the actual per-language strings live one-per-file under `src/locales/`.
|
|
8
|
+
*
|
|
9
|
+
* Provide overrides through the `labels` prop on `Chat`, or rely on the built-in
|
|
10
|
+
* translations selected by the `locale` prop. Labels resolve as:
|
|
11
|
+
* labels (prop) > translations[locale] > defaultLabels (English)
|
|
12
|
+
*/
|
|
13
|
+
import { matchSupportedLocale, translations } from './locales';
|
|
14
|
+
export const defaultLabels = {
|
|
15
|
+
placeholder: 'Type a message...',
|
|
16
|
+
send: 'Send',
|
|
17
|
+
cancel: 'Cancel',
|
|
18
|
+
loadEarlier: 'Load earlier messages',
|
|
19
|
+
today: 'Today',
|
|
20
|
+
video: 'Video',
|
|
21
|
+
voiceMessage: 'Voice message',
|
|
22
|
+
videoMessage: 'Video message',
|
|
23
|
+
location: 'Location',
|
|
24
|
+
openLocationAccessibility: 'Open location in maps',
|
|
25
|
+
slideToCancel: 'Slide left to cancel...',
|
|
26
|
+
replyingTo: 'Replying to {name}',
|
|
27
|
+
editing: 'Editing',
|
|
28
|
+
cameraPermission: 'Camera permission needed',
|
|
29
|
+
noCamera: 'No camera available',
|
|
30
|
+
stopAndSend: 'Tap to stop and send',
|
|
31
|
+
tapToRecord: 'Tap to record',
|
|
32
|
+
releaseToSend: 'Release to send, slide up to lock',
|
|
33
|
+
holdToRecord: 'Hold to record',
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Built-in translations (a starter set), one language per file under `src/locales/`. Re-exported
|
|
37
|
+
* here so `import { translations } from 'react-native-chat'` keeps working.
|
|
38
|
+
*/
|
|
39
|
+
export { translations };
|
|
40
|
+
/**
|
|
41
|
+
* Resolve the active labels: the `labels` override on top of the built-in
|
|
42
|
+
* translation for `locale` (if any) on top of English defaults.
|
|
43
|
+
*/
|
|
44
|
+
export function resolveLabels(locale, labels) {
|
|
45
|
+
const matched = matchSupportedLocale(locale);
|
|
46
|
+
const translated = matched ? translations[matched] : undefined;
|
|
47
|
+
return { ...defaultLabels, ...translated, ...labels };
|
|
48
|
+
}
|
|
49
|
+
/** Interpolate `{name}`-style placeholders in a label. */
|
|
50
|
+
export function formatLabel(label, values) {
|
|
51
|
+
return label.replace(/\{(\w+)\}/g, (_match, key) => String(values[key] ?? ''));
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=i18n.js.map
|
package/lib/i18n.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AA0C9D,MAAM,CAAC,MAAM,aAAa,GAAe;IACvC,WAAW,EAAE,mBAAmB;IAChC,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,uBAAuB;IACpC,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,YAAY,EAAE,eAAe;IAC7B,YAAY,EAAE,eAAe;IAC7B,QAAQ,EAAE,UAAU;IACpB,yBAAyB,EAAE,uBAAuB;IAClD,aAAa,EAAE,yBAAyB;IACxC,UAAU,EAAE,oBAAoB;IAChC,OAAO,EAAE,SAAS;IAClB,gBAAgB,EAAE,0BAA0B;IAC5C,QAAQ,EAAE,qBAAqB;IAC/B,WAAW,EAAE,sBAAsB;IACnC,WAAW,EAAE,eAAe;IAC5B,aAAa,EAAE,mCAAmC;IAClD,YAAY,EAAE,gBAAgB;CAC/B,CAAA;AAED;;;GAGG;AACH,OAAO,EAAE,YAAY,EAAE,CAAA;AAEvB;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC3B,MAAe,EACf,MAA4B;IAE5B,MAAM,OAAO,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAA;IAC5C,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC9D,OAAO,EAAE,GAAG,aAAa,EAAE,GAAG,UAAU,EAAE,GAAG,MAAM,EAAE,CAAA;AACvD,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,WAAW,CAAE,KAAa,EAAE,MAAuC;IACjF,OAAO,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;AAChF,CAAC"}
|
package/lib/index.d.ts
CHANGED
|
@@ -8,6 +8,10 @@ export * from './linkParser';
|
|
|
8
8
|
export * from './Reply';
|
|
9
9
|
export * from './Reactions';
|
|
10
10
|
export * from './styles';
|
|
11
|
+
export * from './Theme';
|
|
12
|
+
export * from './Icons';
|
|
13
|
+
export * from './i18n';
|
|
14
|
+
export { isRTLLocale, mirrorPosition } from './rtl';
|
|
11
15
|
export { Color } from './Color';
|
|
12
16
|
export { Actions } from './Actions';
|
|
13
17
|
export { Avatar } from './Avatar';
|
|
@@ -15,6 +19,16 @@ export { Bubble } from './Bubble';
|
|
|
15
19
|
export { SystemMessage } from './SystemMessage';
|
|
16
20
|
export { MessageImage } from './MessageImage';
|
|
17
21
|
export { MessageText } from './MessageText';
|
|
22
|
+
export { MessageLocation } from './MessageLocation';
|
|
23
|
+
export { MediaCard } from './components/MediaCard';
|
|
24
|
+
export { AttachmentSheet } from './components/AttachmentSheet';
|
|
25
|
+
export { ContextMenu } from './components/ContextMenu';
|
|
26
|
+
export { MarkdownMessageText, isMarkdownAvailable } from './components/MarkdownMessageText';
|
|
27
|
+
export { BasicMarkdown } from './components/BasicMarkdown';
|
|
28
|
+
export { WaveformPlayer, isWaveformAvailable } from './components/WaveformPlayer';
|
|
29
|
+
export { VoiceMessageInput, isVoiceRecordingAvailable } from './components/VoiceMessageInput';
|
|
30
|
+
export { VideoRecordButton, isVideoRecordingAvailable } from './components/VideoRecordButton';
|
|
31
|
+
export { VideoNoteRecorder, isVisionCameraAvailable } from './components/VideoNoteRecorder';
|
|
18
32
|
export { Composer } from './Composer';
|
|
19
33
|
export { Day } from './Day';
|
|
20
34
|
export { InputToolbar } from './InputToolbar';
|
|
@@ -30,6 +44,11 @@ export { MessageReply } from './components/MessageReply';
|
|
|
30
44
|
export { ReplyPreview } from './components/ReplyPreview';
|
|
31
45
|
export { StreamingCursor } from './components/StreamingCursor';
|
|
32
46
|
export { useColorScheme } from './hooks/useColorScheme';
|
|
47
|
+
export { useTheme, useThemedStyles } from './hooks/useTheme';
|
|
48
|
+
export { useIcons } from './hooks/useIcons';
|
|
49
|
+
export { useLabels } from './hooks/useLabels';
|
|
50
|
+
export { useIsRTL } from './hooks/useIsRTL';
|
|
51
|
+
export { Icon } from './components/Icon';
|
|
33
52
|
export { useStreamingMessages } from './hooks/useStreamingMessages';
|
|
34
53
|
export type { UseStreamingMessagesOptions, UseStreamingMessagesResult, StreamHandle } from './hooks/useStreamingMessages';
|
|
35
54
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAA;AAEhC,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,KAAK,EAAE,CAAA;AAChB,cAAc,eAAe,CAAA;AAC7B,cAAc,SAAS,CAAA;AACvB,cAAc,cAAc,CAAA;AAC5B,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AACnE,YAAY,EACV,2BAA2B,EAC3B,0BAA0B,EAC1B,YAAY,EACb,MAAM,8BAA8B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/index.js
CHANGED
|
@@ -8,6 +8,10 @@ export * from './linkParser';
|
|
|
8
8
|
export * from './Reply';
|
|
9
9
|
export * from './Reactions';
|
|
10
10
|
export * from './styles';
|
|
11
|
+
export * from './Theme';
|
|
12
|
+
export * from './Icons';
|
|
13
|
+
export * from './i18n';
|
|
14
|
+
export { isRTLLocale, mirrorPosition } from './rtl';
|
|
11
15
|
export { Color } from './Color';
|
|
12
16
|
export { Actions } from './Actions';
|
|
13
17
|
export { Avatar } from './Avatar';
|
|
@@ -15,6 +19,16 @@ export { Bubble } from './Bubble';
|
|
|
15
19
|
export { SystemMessage } from './SystemMessage';
|
|
16
20
|
export { MessageImage } from './MessageImage';
|
|
17
21
|
export { MessageText } from './MessageText';
|
|
22
|
+
export { MessageLocation } from './MessageLocation';
|
|
23
|
+
export { MediaCard } from './components/MediaCard';
|
|
24
|
+
export { AttachmentSheet } from './components/AttachmentSheet';
|
|
25
|
+
export { ContextMenu } from './components/ContextMenu';
|
|
26
|
+
export { MarkdownMessageText, isMarkdownAvailable } from './components/MarkdownMessageText';
|
|
27
|
+
export { BasicMarkdown } from './components/BasicMarkdown';
|
|
28
|
+
export { WaveformPlayer, isWaveformAvailable } from './components/WaveformPlayer';
|
|
29
|
+
export { VoiceMessageInput, isVoiceRecordingAvailable } from './components/VoiceMessageInput';
|
|
30
|
+
export { VideoRecordButton, isVideoRecordingAvailable } from './components/VideoRecordButton';
|
|
31
|
+
export { VideoNoteRecorder, isVisionCameraAvailable } from './components/VideoNoteRecorder';
|
|
18
32
|
export { Composer } from './Composer';
|
|
19
33
|
export { Day } from './Day';
|
|
20
34
|
export { InputToolbar } from './InputToolbar';
|
|
@@ -30,5 +44,10 @@ export { MessageReply } from './components/MessageReply';
|
|
|
30
44
|
export { ReplyPreview } from './components/ReplyPreview';
|
|
31
45
|
export { StreamingCursor } from './components/StreamingCursor';
|
|
32
46
|
export { useColorScheme } from './hooks/useColorScheme';
|
|
47
|
+
export { useTheme, useThemedStyles } from './hooks/useTheme';
|
|
48
|
+
export { useIcons } from './hooks/useIcons';
|
|
49
|
+
export { useLabels } from './hooks/useLabels';
|
|
50
|
+
export { useIsRTL } from './hooks/useIsRTL';
|
|
51
|
+
export { Icon } from './components/Icon';
|
|
33
52
|
export { useStreamingMessages } from './hooks/useStreamingMessages';
|
|
34
53
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAA;AAEhC,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,KAAK,EAAE,CAAA;AAChB,cAAc,eAAe,CAAA;AAC7B,cAAc,SAAS,CAAA;AACvB,cAAc,cAAc,CAAA;AAC5B,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ar.d.ts","sourceRoot":"","sources":["../../src/locales/ar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC,eAAO,MAAM,EAAE,EAAE,OAAO,CAAC,UAAU,CAoBlC,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export const ar = {
|
|
2
|
+
placeholder: 'اكتب رسالة...',
|
|
3
|
+
send: 'إرسال',
|
|
4
|
+
cancel: 'إلغاء',
|
|
5
|
+
loadEarlier: 'تحميل الرسائل السابقة',
|
|
6
|
+
today: 'اليوم',
|
|
7
|
+
video: 'فيديو',
|
|
8
|
+
voiceMessage: 'رسالة صوتية',
|
|
9
|
+
videoMessage: 'رسالة فيديو',
|
|
10
|
+
location: 'الموقع',
|
|
11
|
+
openLocationAccessibility: 'فتح الموقع في الخرائط',
|
|
12
|
+
slideToCancel: 'اسحب لليمين للإلغاء...',
|
|
13
|
+
replyingTo: 'الرد على {name}',
|
|
14
|
+
editing: 'تعديل',
|
|
15
|
+
cameraPermission: 'مطلوب إذن الكاميرا',
|
|
16
|
+
noCamera: 'لا توجد كاميرا متاحة',
|
|
17
|
+
stopAndSend: 'اضغط للإيقاف والإرسال',
|
|
18
|
+
tapToRecord: 'اضغط للتسجيل',
|
|
19
|
+
releaseToSend: 'اترك للإرسال، اسحب للأعلى للقفل',
|
|
20
|
+
holdToRecord: 'اضغط مطولاً للتسجيل',
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=ar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ar.js","sourceRoot":"","sources":["../../src/locales/ar.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,EAAE,GAAwB;IACrC,WAAW,EAAE,eAAe;IAC5B,IAAI,EAAE,OAAO;IACb,MAAM,EAAE,OAAO;IACf,WAAW,EAAE,uBAAuB;IACpC,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,YAAY,EAAE,aAAa;IAC3B,YAAY,EAAE,aAAa;IAC3B,QAAQ,EAAE,QAAQ;IAClB,yBAAyB,EAAE,uBAAuB;IAClD,aAAa,EAAE,wBAAwB;IACvC,UAAU,EAAE,iBAAiB;IAC7B,OAAO,EAAE,OAAO;IAChB,gBAAgB,EAAE,oBAAoB;IACtC,QAAQ,EAAE,sBAAsB;IAChC,WAAW,EAAE,uBAAuB;IACpC,WAAW,EAAE,cAAc;IAC3B,aAAa,EAAE,iCAAiC;IAChD,YAAY,EAAE,qBAAqB;CACpC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"de.d.ts","sourceRoot":"","sources":["../../src/locales/de.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC,eAAO,MAAM,EAAE,EAAE,OAAO,CAAC,UAAU,CAoBlC,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export const de = {
|
|
2
|
+
placeholder: 'Nachricht schreiben...',
|
|
3
|
+
send: 'Senden',
|
|
4
|
+
cancel: 'Abbrechen',
|
|
5
|
+
loadEarlier: 'Fruhere Nachrichten laden',
|
|
6
|
+
today: 'Heute',
|
|
7
|
+
video: 'Video',
|
|
8
|
+
voiceMessage: 'Sprachnachricht',
|
|
9
|
+
videoMessage: 'Videonachricht',
|
|
10
|
+
location: 'Standort',
|
|
11
|
+
openLocationAccessibility: 'Standort in Karten offnen',
|
|
12
|
+
slideToCancel: 'zum Abbrechen wischen',
|
|
13
|
+
replyingTo: 'Antwort an {name}',
|
|
14
|
+
editing: 'Bearbeiten',
|
|
15
|
+
cameraPermission: 'Kameraberechtigung erforderlich',
|
|
16
|
+
noCamera: 'Keine Kamera verfugbar',
|
|
17
|
+
stopAndSend: 'Tippen zum Beenden und Senden',
|
|
18
|
+
tapToRecord: 'Zum Aufnehmen tippen',
|
|
19
|
+
releaseToSend: 'Loslassen zum Senden, nach oben wischen zum Sperren',
|
|
20
|
+
holdToRecord: 'Zum Aufnehmen gedruckt halten',
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=de.js.map
|