diff options
author | Ivan Chen <ivan@tagg.id> | 2021-06-18 13:54:08 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-18 13:54:08 -0400 |
commit | 53461e8412b1f3b95124f9d9a6f50580d26930f5 (patch) | |
tree | 44647b93c36ef4e99c5243f38e0b98427cb27de4 /src/components/comments/MentionInputControlled.tsx | |
parent | 78f32c1400eff46d4c768b78fbaf672826c74285 (diff) | |
parent | 6fcd7b41cd763e95733187c6c4d48ddb6e9bd01a (diff) |
Merge pull request #467 from brian-tagg/tma869-adjust-mentions
[TMA-869] adjust mentions
Diffstat (limited to 'src/components/comments/MentionInputControlled.tsx')
-rw-r--r-- | src/components/comments/MentionInputControlled.tsx | 70 |
1 files changed, 65 insertions, 5 deletions
diff --git a/src/components/comments/MentionInputControlled.tsx b/src/components/comments/MentionInputControlled.tsx index 2fd2b41d..0965e318 100644 --- a/src/components/comments/MentionInputControlled.tsx +++ b/src/components/comments/MentionInputControlled.tsx @@ -1,13 +1,23 @@ -import React, {FC, MutableRefObject, useMemo, useRef, useState} from 'react'; +import React, { + FC, + MutableRefObject, + Ref, + useMemo, + useRef, + useState, +} from 'react'; import { NativeSyntheticEvent, + StyleProp, Text, TextInput, + TextInputProps, TextInputSelectionChangeEventData, View, + ViewStyle, } from 'react-native'; import { - MentionInputProps, + PatternPartType, MentionPartType, Suggestion, } from 'react-native-controlled-mentions/dist/types'; @@ -20,7 +30,30 @@ import { parseValue, } from 'react-native-controlled-mentions/dist/utils'; -const MentionInputControlled: FC<MentionInputProps> = ({ +type PartType = MentionPartType | PatternPartType; + +type MentionInputControlledProps = Omit<TextInputProps, 'onChange'> & { + value: string; + onChange: (value: string) => any; + + partTypes?: PartType[]; + + inputRef?: Ref<TextInput>; + + containerStyle?: StyleProp<ViewStyle>; + + addComment?: () => any | null; + + NewText?: FC<any>; + + theme?: 'dark' | 'white'; + + keyboardVisible?: boolean; + + comment?: string; +}; + +const MentionInputControlled: FC<MentionInputControlledProps> = ({ value, onChange, @@ -32,6 +65,16 @@ const MentionInputControlled: FC<MentionInputProps> = ({ onSelectionChange, + addComment, + + NewText, + + theme = 'white', + + keyboardVisible = true, + + comment = '', + ...textInputProps }) => { const textInput = useRef<TextInput | null>(null); @@ -147,7 +190,24 @@ const MentionInputControlled: FC<MentionInputProps> = ({ return validRegex().test(testString); }; - return ( + return NewText ? ( + <NewText + {...textInputProps} + containerStyle={containerStyle} + validateInput={validateInput} + keyboardText={keyboardText} + partTypes={partTypes} + renderMentionSuggestions={renderMentionSuggestions} + handleTextInputRef={handleTextInputRef} + onChangeInput={onChangeInput} + handleSelectionChange={handleSelectionChange} + parts={parts} + addComment={addComment} + theme={theme} + keyboardVisible={keyboardVisible} + comment={comment} + /> + ) : ( <View style={containerStyle}> {validateInput(keyboardText) ? ( @@ -195,4 +255,4 @@ const MentionInputControlled: FC<MentionInputProps> = ({ ); }; -export {MentionInputControlled}; +export default MentionInputControlled; |