@messenger-box/slack-ui-mobile 10.0.3-alpha.34 → 10.0.3-alpha.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/SlackSearchInput/index.js +1 -1
- package/lib/components/SlackSearchInput/index.js.map +1 -1
- package/lib/screens/Channels/Add/AddName.js +4 -4
- package/lib/screens/Channels/Add/AddName.js.map +1 -1
- package/lib/screens/Channels/AddChannel.js +1 -1
- package/lib/screens/Channels/AddChannel.js.map +1 -1
- package/lib/screens/Channels/Channels.js +1 -1
- package/lib/screens/Channels/Channels.js.map +1 -1
- package/lib/screens/Organization/CreateOrganization.js +1 -1
- package/lib/screens/Organization/CreateOrganization.js.map +1 -1
- package/lib/screens/Organization/InitializeOrganizationChannel.js +1 -1
- package/lib/screens/Organization/InitializeOrganizationChannel.js.map +1 -1
- package/lib/screens/Peoples/AddByEmail.js +1 -1
- package/lib/screens/Peoples/AddByEmail.js.map +1 -1
- package/lib/screens/Peoples/AddFromContacts.js +1 -1
- package/lib/screens/Peoples/AddFromContacts.js.map +1 -1
- package/lib/screens/Search/SearchAddChannel.js +2 -5
- package/lib/screens/Search/SearchAddChannel.js.map +1 -1
- package/lib/screens/Teams/AddTeam.js +1 -1
- package/lib/screens/Teams/AddTeam.js.map +1 -1
- package/lib/screens/Teams/Teams.js +1 -1
- package/lib/screens/Teams/Teams.js.map +1 -1
- package/package.json +3 -3
|
@@ -126,7 +126,7 @@ const SlackInput = ({
|
|
|
126
126
|
value: text,
|
|
127
127
|
onKeyPress,
|
|
128
128
|
ref: inputRef,
|
|
129
|
-
|
|
129
|
+
onChange: (event) => handleTextChange(event.nativeEvent.text),
|
|
130
130
|
style: [styles.input, inputStyle]
|
|
131
131
|
}, inputProps)
|
|
132
132
|
)), /* @__PURE__ */ React__default.createElement(Box, null, renderRightElement == null ? void 0 : renderRightElement())), /* @__PURE__ */ React__default.createElement(View, { style: flatListContainerStyle }, /* @__PURE__ */ React__default.createElement(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/SlackSearchInput/index.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport {\n //FlatList,\n FlatListProps,\n StyleSheet,\n TextInput,\n TextInputProps,\n TextStyle,\n View,\n ViewStyle,\n} from 'react-native';\nimport Suggestion from './Suggestion';\nimport Tag from './Tag';\nimport { HStack, Box, FlatList } from '@admin-layout/gluestack-ui-mobile';\n\nexport type Tag = any;\nexport type Suggestion = any;\n// export type inputProps = TextInputProps & IInputProps;\nexport type inputProps = TextInputProps;\n\nexport type SlackInputProps = {\n /** array of tags to render */\n tags: Tag[];\n\n /** array of all possible suggestions that the autocomplete pulls from */\n suggestions?: Suggestion[];\n\n /** function called when tags needs to be updated */\n onChangeTags: (newTags: Tag[]) => void;\n\n /** given a tag, returns the string that should be rendered in a Tag */\n labelExtractor: (tag: Tag) => string;\n\n /** called when a tag is pressed, instead of calling `onChangeTags` with the pressed tag removed */\n onTagPress?: (tag: Tag) => void;\n\n /** an array of characters that should trigger a new tag and clear the TextInput\n * @default [',', ' ', ';', '\\n'] */\n parseChars?: string[];\n\n /** called when the user types a character in parseChars and should therefore add a new tag\n * if undefined, will call `onChangeTags` with `[...tags, userInputText]`\n */\n onAddNewTag?: (userInput: string) => void;\n\n /** whether or not to allow the user to create a Tag that doesn't come from `suggestions`\n * @default true\n */\n allowCustomTags?: boolean;\n\n /** called when a suggestion is pressed\n * defaultly calls `onChangeTags` with `[...tags, pressedSuggestion]`\n */\n onSuggestionPress?: (suggestion: Suggestion) => void;\n\n /** given a Suggestion, returns a string that can be compared to the user's search */\n suggestionExtractor?: (suggestion: Suggestion) => string;\n\n /** a function for filtering suggestions based on the TextInput value */\n filterSuggestions?: (text: string) => Suggestion[];\n\n /** a function that returns a custom tag component */\n renderTag?: (tag: Tag, onPress: (tag: Tag) => void, index?: any) => JSX.Element;\n\n /** a function that returns a custom suggestion component */\n renderSuggestion?: (suggestion: Suggestion, onPress: (tag: Suggestion) => void, index?: any) => JSX.Element;\n\n /** any custom TextInputProps */\n inputProps?: Partial<inputProps>;\n\n /** any additional FlatListProps */\n flatListProps?: Partial<FlatListProps<any>>;\n\n flatListGluestackUiProps?: any;\n\n /** style for the outer-most View that houses both the tagContainer and suggestion list */\n containerStyle?: ViewStyle;\n\n /** styles for the container View that houses the tags and the input */\n tagContainerStyle?: ViewStyle;\n\n /** styles for the TextInput component */\n inputStyle?: TextStyle;\n\n /** styles for the FlatList that renders suggestions */\n flatListStyle?: ViewStyle;\n\n /** styles for the container View of FlatList that renders suggestions */\n flatListContainerStyle?: ViewStyle;\n\n renderLeftElement?: () => JSX.Element;\n\n renderRightElement?: () => JSX.Element;\n\n isSetInputFocusOut?: boolean;\n};\n\nexport const SlackInput = ({\n tags,\n suggestions,\n labelExtractor,\n suggestionExtractor,\n onChangeTags,\n onTagPress,\n parseChars,\n allowCustomTags,\n onAddNewTag,\n onSuggestionPress,\n filterSuggestions,\n renderTag,\n renderSuggestion,\n renderLeftElement,\n renderRightElement,\n containerStyle,\n tagContainerStyle,\n inputStyle,\n flatListStyle,\n flatListContainerStyle,\n inputProps,\n flatListProps,\n flatListGluestackUiProps,\n isSetInputFocusOut,\n}: SlackInputProps) => {\n const [text, setText] = useState('');\n const inputRef = useRef<TextInput | null>(null);\n const extractor = suggestionExtractor || labelExtractor;\n\n useEffect(() => {\n console.log('isSetInputFocusOut', isSetInputFocusOut);\n if (isSetInputFocusOut) inputRef.current?.blur();\n }, [isSetInputFocusOut]);\n\n const handleTagPress = useCallback((tag: Tag) => {\n if (onTagPress) {\n onTagPress(tag);\n } else {\n onChangeTags(tags.filter((t) => labelExtractor(t) !== labelExtractor(tag)));\n }\n }, []);\n\n // const handleTagPress = (tag: Tag) => {\n // if (onTagPress) {\n // onTagPress(tag);\n // } else {\n // onChangeTags(tags.filter((t) => labelExtractor(t) !== labelExtractor(tag)));\n // }\n // };\n\n const handleSuggestionPress = useCallback(\n (suggestion: Suggestion) => {\n setText('');\n if (onSuggestionPress) {\n onSuggestionPress(suggestion);\n } else {\n onChangeTags([...tags, suggestion]);\n }\n\n inputRef.current?.focus();\n },\n [tags, inputRef, isSetInputFocusOut],\n );\n\n // const handleSuggestionPress = (suggestion: Suggestion) => {\n // setText('');\n // if (onSuggestionPress) {\n // onSuggestionPress(suggestion);\n // } else {\n // onChangeTags([...tags, suggestion]);\n // }\n // inputRef.current?.focus();\n // };\n\n const handleTextChange = useCallback(\n (input: string) => {\n setText(input);\n\n const lastTyped = input.charAt(input.length - 1);\n if (parseChars && parseChars.indexOf(lastTyped) > -1) {\n setText('');\n if (allowCustomTags) {\n const label = input.slice(0, -1);\n if (onAddNewTag) {\n onAddNewTag(label);\n } else {\n onChangeTags([...tags, label]);\n }\n }\n }\n },\n [tags],\n );\n\n // const handleTextChange = (input: string) => {\n // setText(input);\n\n // const lastTyped = input.charAt(input.length - 1);\n // if (parseChars && parseChars.indexOf(lastTyped) > -1) {\n // setText('');\n // if (allowCustomTags) {\n // const label = input.slice(0, -1);\n // if (onAddNewTag) {\n // onAddNewTag(label);\n // } else {\n // onChangeTags([...tags, label]);\n // }\n // }\n // }\n // };\n\n const renderTagComponent = (tag: Tag, index: any) => {\n const onPress = () => handleTagPress(tag);\n if (renderTag) {\n return renderTag(tag, onPress, index);\n }\n return <Tag label={labelExtractor(tag)} key={`render-tag-key-${index}`} onPress={onPress} />;\n // return <Tag label={labelExtractor(tag)} key={labelExtractor(tag)} onPress={onPress} />;\n };\n\n const renderSuggestionComponent = ({ item, index }: { item: Suggestion; index: any }) => {\n const onPress = () => handleSuggestionPress(item);\n if (renderSuggestion) {\n return renderSuggestion(item, onPress, index);\n }\n return <Suggestion label={extractor(item)} onPress={onPress} />;\n };\n\n const onKeyPress = useCallback(\n ({ nativeEvent: { key } }: { nativeEvent: { key: string } }) => {\n if (text !== '' || key !== 'Backspace' || tags.length < 1) {\n return;\n }\n const updatedTags = [...tags];\n updatedTags.pop();\n onChangeTags(updatedTags);\n },\n [tags, text],\n );\n\n // const onKeyPress = ({ nativeEvent: { key } }: { nativeEvent: { key: string } }) => {\n // if (text !== '' || key !== 'Backspace' || tags.length < 1) {\n // return;\n // }\n // const updatedTags = [...tags];\n // updatedTags.pop();\n // onChangeTags(updatedTags);\n // };\n\n const getSuggestions = useCallback(() => {\n if (filterSuggestions) {\n return filterSuggestions(text);\n }\n if (!text || text === '') {\n return [];\n }\n const regex = new RegExp(`${text.trim()}`, 'i');\n return suggestions?.filter((item) => extractor(item).search(regex) >= 0);\n }, [text, suggestions]);\n\n // const getSuggestions = () => {\n // if (filterSuggestions) {\n // return filterSuggestions(text);\n // }\n // if (!text || text === '') {\n // return [];\n // }\n // const regex = new RegExp(`${text.trim()}`, 'i');\n // return suggestions?.filter((item) => extractor(item).search(regex) >= 0);\n // };\n\n return (\n <View style={[styles.container, containerStyle]}>\n <HStack style={[styles.tagContainer, tagContainerStyle]} className=\"items-center justify-between\">\n <Box>{renderLeftElement?.()}</Box>\n <HStack className={`flex-[${renderRightElement ? 1 : 1}] flex-wrap items-center`}>\n {tags?.map(renderTagComponent)}\n <TextInput\n // variant={'unstyled'}\n value={text}\n onKeyPress={onKeyPress}\n ref={inputRef}\n onChangeText={handleTextChange}\n style={[styles.input, inputStyle]}\n {...inputProps}\n />\n </HStack>\n <Box>{renderRightElement?.()}</Box>\n </HStack>\n <View style={flatListContainerStyle}>\n <FlatList\n data={getSuggestions()}\n //keyExtractor={extractor}\n keyExtractor={(item, index) => String(index)}\n renderItem={renderSuggestionComponent}\n keyboardShouldPersistTaps=\"handled\"\n style={[styles.list, flatListStyle]}\n {...flatListProps}\n {...flatListGluestackUiProps}\n />\n </View>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n zIndex: 2000,\n width: '100%',\n },\n tagContainer: {\n // flexDirection: 'row',\n flexWrap: 'wrap',\n // alignItems: 'center',\n },\n input: {\n flex: 1,\n minWidth: 100,\n },\n list: {\n maxHeight: 100,\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n },\n});\n\n// SlackInput.defaultProps = {\n// parseChars: [',', ' ', ';', '\\n'],\n// allowCustomTags: true,\n// suggestions: [],\n// };\n\nexport default React.memo(SlackInput);\n"],"names":["React"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/SlackSearchInput/index.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport {\n //FlatList,\n FlatListProps,\n StyleSheet,\n TextInput,\n TextInputProps,\n TextStyle,\n View,\n ViewStyle,\n} from 'react-native';\nimport Suggestion from './Suggestion';\nimport Tag from './Tag';\nimport { HStack, Box, FlatList } from '@admin-layout/gluestack-ui-mobile';\n\nexport type Tag = any;\nexport type Suggestion = any;\n// export type inputProps = TextInputProps & IInputProps;\nexport type inputProps = TextInputProps;\n\nexport type SlackInputProps = {\n /** array of tags to render */\n tags: Tag[];\n\n /** array of all possible suggestions that the autocomplete pulls from */\n suggestions?: Suggestion[];\n\n /** function called when tags needs to be updated */\n onChangeTags: (newTags: Tag[]) => void;\n\n /** given a tag, returns the string that should be rendered in a Tag */\n labelExtractor: (tag: Tag) => string;\n\n /** called when a tag is pressed, instead of calling `onChangeTags` with the pressed tag removed */\n onTagPress?: (tag: Tag) => void;\n\n /** an array of characters that should trigger a new tag and clear the TextInput\n * @default [',', ' ', ';', '\\n'] */\n parseChars?: string[];\n\n /** called when the user types a character in parseChars and should therefore add a new tag\n * if undefined, will call `onChangeTags` with `[...tags, userInputText]`\n */\n onAddNewTag?: (userInput: string) => void;\n\n /** whether or not to allow the user to create a Tag that doesn't come from `suggestions`\n * @default true\n */\n allowCustomTags?: boolean;\n\n /** called when a suggestion is pressed\n * defaultly calls `onChangeTags` with `[...tags, pressedSuggestion]`\n */\n onSuggestionPress?: (suggestion: Suggestion) => void;\n\n /** given a Suggestion, returns a string that can be compared to the user's search */\n suggestionExtractor?: (suggestion: Suggestion) => string;\n\n /** a function for filtering suggestions based on the TextInput value */\n filterSuggestions?: (text: string) => Suggestion[];\n\n /** a function that returns a custom tag component */\n renderTag?: (tag: Tag, onPress: (tag: Tag) => void, index?: any) => JSX.Element;\n\n /** a function that returns a custom suggestion component */\n renderSuggestion?: (suggestion: Suggestion, onPress: (tag: Suggestion) => void, index?: any) => JSX.Element;\n\n /** any custom TextInputProps */\n inputProps?: Partial<inputProps>;\n\n /** any additional FlatListProps */\n flatListProps?: Partial<FlatListProps<any>>;\n\n flatListGluestackUiProps?: any;\n\n /** style for the outer-most View that houses both the tagContainer and suggestion list */\n containerStyle?: ViewStyle;\n\n /** styles for the container View that houses the tags and the input */\n tagContainerStyle?: ViewStyle;\n\n /** styles for the TextInput component */\n inputStyle?: TextStyle;\n\n /** styles for the FlatList that renders suggestions */\n flatListStyle?: ViewStyle;\n\n /** styles for the container View of FlatList that renders suggestions */\n flatListContainerStyle?: ViewStyle;\n\n renderLeftElement?: () => JSX.Element;\n\n renderRightElement?: () => JSX.Element;\n\n isSetInputFocusOut?: boolean;\n};\n\nexport const SlackInput = ({\n tags,\n suggestions,\n labelExtractor,\n suggestionExtractor,\n onChangeTags,\n onTagPress,\n parseChars,\n allowCustomTags,\n onAddNewTag,\n onSuggestionPress,\n filterSuggestions,\n renderTag,\n renderSuggestion,\n renderLeftElement,\n renderRightElement,\n containerStyle,\n tagContainerStyle,\n inputStyle,\n flatListStyle,\n flatListContainerStyle,\n inputProps,\n flatListProps,\n flatListGluestackUiProps,\n isSetInputFocusOut,\n}: SlackInputProps) => {\n const [text, setText] = useState('');\n const inputRef = useRef<TextInput | null>(null);\n const extractor = suggestionExtractor || labelExtractor;\n\n useEffect(() => {\n console.log('isSetInputFocusOut', isSetInputFocusOut);\n if (isSetInputFocusOut) inputRef.current?.blur();\n }, [isSetInputFocusOut]);\n\n const handleTagPress = useCallback((tag: Tag) => {\n if (onTagPress) {\n onTagPress(tag);\n } else {\n onChangeTags(tags.filter((t) => labelExtractor(t) !== labelExtractor(tag)));\n }\n }, []);\n\n // const handleTagPress = (tag: Tag) => {\n // if (onTagPress) {\n // onTagPress(tag);\n // } else {\n // onChangeTags(tags.filter((t) => labelExtractor(t) !== labelExtractor(tag)));\n // }\n // };\n\n const handleSuggestionPress = useCallback(\n (suggestion: Suggestion) => {\n setText('');\n if (onSuggestionPress) {\n onSuggestionPress(suggestion);\n } else {\n onChangeTags([...tags, suggestion]);\n }\n\n inputRef.current?.focus();\n },\n [tags, inputRef, isSetInputFocusOut],\n );\n\n // const handleSuggestionPress = (suggestion: Suggestion) => {\n // setText('');\n // if (onSuggestionPress) {\n // onSuggestionPress(suggestion);\n // } else {\n // onChangeTags([...tags, suggestion]);\n // }\n // inputRef.current?.focus();\n // };\n\n const handleTextChange = useCallback(\n (input: string) => {\n setText(input);\n\n const lastTyped = input.charAt(input.length - 1);\n if (parseChars && parseChars.indexOf(lastTyped) > -1) {\n setText('');\n if (allowCustomTags) {\n const label = input.slice(0, -1);\n if (onAddNewTag) {\n onAddNewTag(label);\n } else {\n onChangeTags([...tags, label]);\n }\n }\n }\n },\n [tags],\n );\n\n // const handleTextChange = (input: string) => {\n // setText(input);\n\n // const lastTyped = input.charAt(input.length - 1);\n // if (parseChars && parseChars.indexOf(lastTyped) > -1) {\n // setText('');\n // if (allowCustomTags) {\n // const label = input.slice(0, -1);\n // if (onAddNewTag) {\n // onAddNewTag(label);\n // } else {\n // onChangeTags([...tags, label]);\n // }\n // }\n // }\n // };\n\n const renderTagComponent = (tag: Tag, index: any) => {\n const onPress = () => handleTagPress(tag);\n if (renderTag) {\n return renderTag(tag, onPress, index);\n }\n return <Tag label={labelExtractor(tag)} key={`render-tag-key-${index}`} onPress={onPress} />;\n // return <Tag label={labelExtractor(tag)} key={labelExtractor(tag)} onPress={onPress} />;\n };\n\n const renderSuggestionComponent = ({ item, index }: { item: Suggestion; index: any }) => {\n const onPress = () => handleSuggestionPress(item);\n if (renderSuggestion) {\n return renderSuggestion(item, onPress, index);\n }\n return <Suggestion label={extractor(item)} onPress={onPress} />;\n };\n\n const onKeyPress = useCallback(\n ({ nativeEvent: { key } }: { nativeEvent: { key: string } }) => {\n if (text !== '' || key !== 'Backspace' || tags.length < 1) {\n return;\n }\n const updatedTags = [...tags];\n updatedTags.pop();\n onChangeTags(updatedTags);\n },\n [tags, text],\n );\n\n // const onKeyPress = ({ nativeEvent: { key } }: { nativeEvent: { key: string } }) => {\n // if (text !== '' || key !== 'Backspace' || tags.length < 1) {\n // return;\n // }\n // const updatedTags = [...tags];\n // updatedTags.pop();\n // onChangeTags(updatedTags);\n // };\n\n const getSuggestions = useCallback(() => {\n if (filterSuggestions) {\n return filterSuggestions(text);\n }\n if (!text || text === '') {\n return [];\n }\n const regex = new RegExp(`${text.trim()}`, 'i');\n return suggestions?.filter((item) => extractor(item).search(regex) >= 0);\n }, [text, suggestions]);\n\n // const getSuggestions = () => {\n // if (filterSuggestions) {\n // return filterSuggestions(text);\n // }\n // if (!text || text === '') {\n // return [];\n // }\n // const regex = new RegExp(`${text.trim()}`, 'i');\n // return suggestions?.filter((item) => extractor(item).search(regex) >= 0);\n // };\n\n return (\n <View style={[styles.container, containerStyle]}>\n <HStack style={[styles.tagContainer, tagContainerStyle]} className=\"items-center justify-between\">\n <Box>{renderLeftElement?.()}</Box>\n <HStack className={`flex-[${renderRightElement ? 1 : 1}] flex-wrap items-center`}>\n {tags?.map(renderTagComponent)}\n <TextInput\n // variant={'unstyled'}\n value={text}\n onKeyPress={onKeyPress}\n ref={inputRef}\n onChange={(event) => handleTextChange(event.nativeEvent.text)}\n style={[styles.input, inputStyle]}\n {...inputProps}\n />\n </HStack>\n <Box>{renderRightElement?.()}</Box>\n </HStack>\n <View style={flatListContainerStyle}>\n <FlatList\n data={getSuggestions()}\n //keyExtractor={extractor}\n keyExtractor={(item, index) => String(index)}\n renderItem={renderSuggestionComponent}\n keyboardShouldPersistTaps=\"handled\"\n style={[styles.list, flatListStyle]}\n {...flatListProps}\n {...flatListGluestackUiProps}\n />\n </View>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n zIndex: 2000,\n width: '100%',\n },\n tagContainer: {\n // flexDirection: 'row',\n flexWrap: 'wrap',\n // alignItems: 'center',\n },\n input: {\n flex: 1,\n minWidth: 100,\n },\n list: {\n maxHeight: 100,\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n },\n});\n\n// SlackInput.defaultProps = {\n// parseChars: [',', ' ', ';', '\\n'],\n// allowCustomTags: true,\n// suggestions: [],\n// };\n\nexport default React.memo(SlackInput);\n"],"names":["React"],"mappings":"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"}
|
|
@@ -38,9 +38,9 @@ import React__default,{useState,useEffect}from'react';import {TouchableOpacity,S
|
|
|
38
38
|
});
|
|
39
39
|
}
|
|
40
40
|
}, [name, description, route]);
|
|
41
|
-
const handleChangeText = (
|
|
42
|
-
var _a;
|
|
43
|
-
const formattedValue = (_a =
|
|
41
|
+
const handleChangeText = (event) => {
|
|
42
|
+
var _a, _b;
|
|
43
|
+
const formattedValue = (_b = (_a = event.nativeEvent.text) == null ? void 0 : _a.replace(/ /g, "-")) == null ? void 0 : _b.toLowerCase();
|
|
44
44
|
setName(formattedValue);
|
|
45
45
|
};
|
|
46
46
|
const handleKeyPress = (event) => {
|
|
@@ -48,7 +48,7 @@ import React__default,{useState,useEffect}from'react';import {TouchableOpacity,S
|
|
|
48
48
|
setName((prevValue) => (prevValue == null ? void 0 : prevValue.toLowerCase()) + "-");
|
|
49
49
|
}
|
|
50
50
|
};
|
|
51
|
-
return /* @__PURE__ */ React__default.createElement(Box, { className: "flex-1 bg-white shadow-sm py-2 h-full" }, /* @__PURE__ */ React__default.createElement(VStack, { space: "md" }, /* @__PURE__ */ React__default.createElement(Box, { className: "px-4 pt-4" }, /* @__PURE__ */ React__default.createElement(FormControl, { className: "mt-3" }, /* @__PURE__ */ React__default.createElement(FormControlLabel, { className: "mb-1" }, /* @__PURE__ */ React__default.createElement(FormControlLabelText, null, "Name")), /* @__PURE__ */ React__default.createElement(Input, { variant: "underlined" }, /* @__PURE__ */ React__default.createElement(InputSlot, { className: "pl-0" }, /* @__PURE__ */ React__default.createElement(Text, { color: "#71717a" }, "#")), /* @__PURE__ */ React__default.createElement(InputField, { type: "text", placeholder: " e.g. plan-budget", maxLength: 80, value: name,
|
|
51
|
+
return /* @__PURE__ */ React__default.createElement(Box, { className: "flex-1 bg-white shadow-sm py-2 h-full" }, /* @__PURE__ */ React__default.createElement(VStack, { space: "md" }, /* @__PURE__ */ React__default.createElement(Box, { className: "px-4 pt-4" }, /* @__PURE__ */ React__default.createElement(FormControl, { className: "mt-3" }, /* @__PURE__ */ React__default.createElement(FormControlLabel, { className: "mb-1" }, /* @__PURE__ */ React__default.createElement(FormControlLabelText, null, "Name")), /* @__PURE__ */ React__default.createElement(Input, { variant: "underlined" }, /* @__PURE__ */ React__default.createElement(InputSlot, { className: "pl-0" }, /* @__PURE__ */ React__default.createElement(Text, { color: "#71717a" }, "#")), /* @__PURE__ */ React__default.createElement(InputField, { type: "text", placeholder: " e.g. plan-budget", maxLength: 80, value: name, onChange: handleChangeText, onKeyPress: handleKeyPress, autoCapitalize: "none", autoCorrect: false }), /* @__PURE__ */ React__default.createElement(InputSlot, { className: "pr-3" }, /* @__PURE__ */ React__default.createElement(Text, { color: "#71717a" }, 80 - name.length))), /* @__PURE__ */ React__default.createElement(FormControlError, null, /* @__PURE__ */ React__default.createElement(FormControlErrorText, { className: "color-red-500" }, "Channel names must be lowercase, and can't contain spaces,periods,or most punctuation."))), /* @__PURE__ */ React__default.createElement(FormControl, { className: "mt-3" }, /* @__PURE__ */ React__default.createElement(FormControlLabel, { className: "mb-1" }, /* @__PURE__ */ React__default.createElement(FormControlLabelText, null, "Description")), /* @__PURE__ */ React__default.createElement(Input, { variant: "underlined" }, /* @__PURE__ */ React__default.createElement(InputField, { type: "text", placeholder: "channel description", value: description, onChange: (event) => setDescription(event.nativeEvent.text), autoCapitalize: "none", autoCorrect: false }))))));
|
|
52
52
|
};
|
|
53
53
|
StyleSheet.create({
|
|
54
54
|
container: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddName.js","sources":["../../../../src/screens/Channels/Add/AddName.tsx"],"sourcesContent":["import React, { useState, useEffect, useLayoutEffect } from 'react';\nimport { StyleSheet, TouchableOpacity } from 'react-native';\nimport {\n Input,\n InputField,\n InputSlot,\n Text,\n VStack,\n Box,\n FormControl,\n FormControlLabel,\n FormControlLabelText,\n FormControlHelper,\n FormControlHelperText,\n FormControlError,\n FormControlErrorText,\n Button,\n ButtonText,\n Fab,\n Icon,\n Divider,\n} from '@admin-layout/gluestack-ui-mobile';\nimport Colors from '../../../constants/Colors';\nimport { AntDesign, MaterialIcons } from '@expo/vector-icons';\nimport { NavigationRoutes } from '../../../constants';\nimport colors from 'tailwindcss/colors';\n\nconst AddChannelName = ({ navigation, route }: any) => {\n const [name, setName] = useState('');\n const [description, setDescription] = useState('');\n const [showCreateButton, setShowCreateButton] = useState(false);\n const [nameIsInvalid, setNameIsInvalid] = useState(false);\n // useEffect(() => {\n\n // if(name && name.length > 0){\n // let patt = /^[A-Za-z0-9_+\\-]*$/;\n // if (patt.test(name))\n // {\n // setNameIsInvalid(false)\n // setShowCreateButton(true)\n // }\n // else\n // {\n // setNameIsInvalid(true)\n // setShowCreateButton(false)\n // }\n // }\n // else\n // {\n // setShowCreateButton(false)\n // }\n\n // // if(name && name.length > 0)\n // // setShowCreateButton(true)\n // // else\n // // setShowCreateButton(false)\n\n // }, [name])\n\n useEffect(() => {\n if (name && name.length > 0) setShowCreateButton(true);\n else setShowCreateButton(false);\n }, [name]);\n\n useEffect(() => {\n navigation.setOptions({\n // headerShown: true,\n headerTitleAlign: 'left',\n headerTitleStyle: {},\n headerLeft: (props: any) => (\n <TouchableOpacity onPress={() => navigation.goBack()}>\n <MaterialIcons size={20} name=\"close\" color={'black'} />\n </TouchableOpacity>\n ),\n headerRight: (props: any) => (\n <Button\n className=\"mr-2\"\n onPress={() => addNewChannelVisiblity()}\n variant={'link'}\n disabled={showCreateButton ? false : true}\n >\n <ButtonText style={{ color: showCreateButton ? 'black' : '#71717a' }}>Next</ButtonText>\n </Button>\n ),\n headerStyle: {\n height: 110,\n borderBottomWidth: 1,\n borderColor: '#d1d2d3',\n },\n });\n }, [name, description, showCreateButton]);\n\n const addNewChannelVisiblity = React.useCallback(() => {\n if (name && name.length > 0) {\n navigation.navigate(NavigationRoutes.AddChannelVisibility, {\n name: name,\n description: description,\n teamId: route?.params?.teamId?.toString(),\n teamName: route?.params?.teamName?.toString(),\n });\n }\n }, [name, description, route]);\n\n // const setChannelName = (v:any) => {\n // let nameStr = v.replace(/\\s+/g, '-').toLowerCase();\n // setName(nameStr)\n // }\n\n const handleChangeText = (newValue) => {\n // If the space bar is pressed, append a dash to the value\n const formattedValue = newValue?.replace(/ /g, '-')?.toLowerCase(); // Replace all spaces with dashes\n setName(formattedValue);\n };\n\n const handleKeyPress = (event) => {\n if (event.nativeEvent.key === ' ') {\n // Add a dash (-) when the space bar is pressed\n setName((prevValue) => prevValue?.toLowerCase() + '-');\n }\n };\n\n return (\n <Box className=\"flex-1 bg-white shadow-sm py-2 h-full\">\n <VStack space=\"md\">\n <Box className=\"px-4 pt-4\">\n {/* <FormControl isInvalid={nameIsInvalid} mt=\"3\"> */}\n <FormControl className=\"mt-3\">\n <FormControlLabel className=\"mb-1\">\n <FormControlLabelText>Name</FormControlLabelText>\n </FormControlLabel>\n <Input variant=\"underlined\">\n <InputSlot className=\"pl-0\">\n <Text color={'#71717a'}>#</Text>\n </InputSlot>\n <InputField\n type=\"text\"\n placeholder=\" e.g. plan-budget\"\n maxLength={80}\n value={name}\n onChangeText={handleChangeText}\n onKeyPress={handleKeyPress}\n autoCapitalize={'none'}\n autoCorrect={false}\n />\n <InputSlot className=\"pr-3\">\n <Text color={'#71717a'}>{80 - name.length}</Text>\n </InputSlot>\n </Input>\n <FormControlError>\n <FormControlErrorText className=\"color-red-500\">\n Channel names must be lowercase, and can't contain spaces,periods,or most punctuation.\n </FormControlErrorText>\n </FormControlError>\n </FormControl>\n <FormControl className=\"mt-3\">\n <FormControlLabel className=\"mb-1\">\n <FormControlLabelText>Description</FormControlLabelText>\n </FormControlLabel>\n <Input variant=\"underlined\">\n <InputField\n type=\"text\"\n placeholder=\"channel description\"\n value={description}\n onChangeText={(v) => setDescription(v)}\n autoCapitalize={'none'}\n autoCorrect={false}\n />\n </Input>\n </FormControl>\n </Box>\n </VStack>\n </Box>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n //justifyContent: 'center',\n padding: 20,\n },\n itemView: {\n paddingVertical: 8,\n marginTop: 5,\n },\n headingText: {\n color: Colors.light.text,\n fontSize: 16,\n fontWeight: '400',\n },\n});\n\nexport default AddChannelName;\n"],"names":["React"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AddName.js","sources":["../../../../src/screens/Channels/Add/AddName.tsx"],"sourcesContent":["import React, { useState, useEffect, useLayoutEffect } from 'react';\nimport { StyleSheet, TouchableOpacity } from 'react-native';\nimport {\n Input,\n InputField,\n InputSlot,\n Text,\n VStack,\n Box,\n FormControl,\n FormControlLabel,\n FormControlLabelText,\n FormControlHelper,\n FormControlHelperText,\n FormControlError,\n FormControlErrorText,\n Button,\n ButtonText,\n Fab,\n Icon,\n Divider,\n} from '@admin-layout/gluestack-ui-mobile';\nimport Colors from '../../../constants/Colors';\nimport { AntDesign, MaterialIcons } from '@expo/vector-icons';\nimport { NavigationRoutes } from '../../../constants';\nimport colors from 'tailwindcss/colors';\n\nconst AddChannelName = ({ navigation, route }: any) => {\n const [name, setName] = useState('');\n const [description, setDescription] = useState('');\n const [showCreateButton, setShowCreateButton] = useState(false);\n const [nameIsInvalid, setNameIsInvalid] = useState(false);\n // useEffect(() => {\n\n // if(name && name.length > 0){\n // let patt = /^[A-Za-z0-9_+\\-]*$/;\n // if (patt.test(name))\n // {\n // setNameIsInvalid(false)\n // setShowCreateButton(true)\n // }\n // else\n // {\n // setNameIsInvalid(true)\n // setShowCreateButton(false)\n // }\n // }\n // else\n // {\n // setShowCreateButton(false)\n // }\n\n // // if(name && name.length > 0)\n // // setShowCreateButton(true)\n // // else\n // // setShowCreateButton(false)\n\n // }, [name])\n\n useEffect(() => {\n if (name && name.length > 0) setShowCreateButton(true);\n else setShowCreateButton(false);\n }, [name]);\n\n useEffect(() => {\n navigation.setOptions({\n // headerShown: true,\n headerTitleAlign: 'left',\n headerTitleStyle: {},\n headerLeft: (props: any) => (\n <TouchableOpacity onPress={() => navigation.goBack()}>\n <MaterialIcons size={20} name=\"close\" color={'black'} />\n </TouchableOpacity>\n ),\n headerRight: (props: any) => (\n <Button\n className=\"mr-2\"\n onPress={() => addNewChannelVisiblity()}\n variant={'link'}\n disabled={showCreateButton ? false : true}\n >\n <ButtonText style={{ color: showCreateButton ? 'black' : '#71717a' }}>Next</ButtonText>\n </Button>\n ),\n headerStyle: {\n height: 110,\n borderBottomWidth: 1,\n borderColor: '#d1d2d3',\n },\n });\n }, [name, description, showCreateButton]);\n\n const addNewChannelVisiblity = React.useCallback(() => {\n if (name && name.length > 0) {\n navigation.navigate(NavigationRoutes.AddChannelVisibility, {\n name: name,\n description: description,\n teamId: route?.params?.teamId?.toString(),\n teamName: route?.params?.teamName?.toString(),\n });\n }\n }, [name, description, route]);\n\n // const setChannelName = (v:any) => {\n // let nameStr = v.replace(/\\s+/g, '-').toLowerCase();\n // setName(nameStr)\n // }\n\n const handleChangeText = (event) => {\n // If the space bar is pressed, append a dash to the value\n const formattedValue = event.nativeEvent.text?.replace(/ /g, '-')?.toLowerCase(); // Replace all spaces with dashes\n setName(formattedValue);\n };\n\n const handleKeyPress = (event) => {\n if (event.nativeEvent.key === ' ') {\n // Add a dash (-) when the space bar is pressed\n setName((prevValue) => prevValue?.toLowerCase() + '-');\n }\n };\n\n return (\n <Box className=\"flex-1 bg-white shadow-sm py-2 h-full\">\n <VStack space=\"md\">\n <Box className=\"px-4 pt-4\">\n {/* <FormControl isInvalid={nameIsInvalid} mt=\"3\"> */}\n <FormControl className=\"mt-3\">\n <FormControlLabel className=\"mb-1\">\n <FormControlLabelText>Name</FormControlLabelText>\n </FormControlLabel>\n <Input variant=\"underlined\">\n <InputSlot className=\"pl-0\">\n <Text color={'#71717a'}>#</Text>\n </InputSlot>\n <InputField\n type=\"text\"\n placeholder=\" e.g. plan-budget\"\n maxLength={80}\n value={name}\n onChange={handleChangeText}\n onKeyPress={handleKeyPress}\n autoCapitalize={'none'}\n autoCorrect={false}\n />\n <InputSlot className=\"pr-3\">\n <Text color={'#71717a'}>{80 - name.length}</Text>\n </InputSlot>\n </Input>\n <FormControlError>\n <FormControlErrorText className=\"color-red-500\">\n Channel names must be lowercase, and can't contain spaces,periods,or most punctuation.\n </FormControlErrorText>\n </FormControlError>\n </FormControl>\n <FormControl className=\"mt-3\">\n <FormControlLabel className=\"mb-1\">\n <FormControlLabelText>Description</FormControlLabelText>\n </FormControlLabel>\n <Input variant=\"underlined\">\n <InputField\n type=\"text\"\n placeholder=\"channel description\"\n value={description}\n onChange={(event) => setDescription(event.nativeEvent.text)}\n autoCapitalize={'none'}\n autoCorrect={false}\n />\n </Input>\n </FormControl>\n </Box>\n </VStack>\n </Box>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n //justifyContent: 'center',\n padding: 20,\n },\n itemView: {\n paddingVertical: 8,\n marginTop: 5,\n },\n headingText: {\n color: Colors.light.text,\n fontSize: 16,\n fontWeight: '400',\n },\n});\n\nexport default AddChannelName;\n"],"names":["React"],"mappings":"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"}
|
|
@@ -48,7 +48,7 @@ import React__default,{useState,useEffect}from'react';import {StyleSheet,SafeAre
|
|
|
48
48
|
};
|
|
49
49
|
return /* @__PURE__ */ React__default.createElement(SafeAreaView, { style: {
|
|
50
50
|
flex: 1
|
|
51
|
-
} }, /* @__PURE__ */ React__default.createElement(Box, { className: "bg-white flex-1 py-2 h-full shadow-sm" }, /* @__PURE__ */ React__default.createElement(VStack, { space: "md" }, /* @__PURE__ */ React__default.createElement(Box, { className: "px-4 pt-4" }, /* @__PURE__ */ React__default.createElement(FormControl, { className: "mt-3" }, /* @__PURE__ */ React__default.createElement(FormControlLabel, { className: "mb-1" }, /* @__PURE__ */ React__default.createElement(FormControlLabelText, null, "Name")), /* @__PURE__ */ React__default.createElement(Input, { variant: "underlined" }, /* @__PURE__ */ React__default.createElement(InputSlot, { className: "pl-0" }, /* @__PURE__ */ React__default.createElement(Text, { color: colors.gray[500] }, "#")), /* @__PURE__ */ React__default.createElement(InputField, { type: "text", placeholder: " e.g. Plan budget", maxLength: 80, value: name,
|
|
51
|
+
} }, /* @__PURE__ */ React__default.createElement(Box, { className: "bg-white flex-1 py-2 h-full shadow-sm" }, /* @__PURE__ */ React__default.createElement(VStack, { space: "md" }, /* @__PURE__ */ React__default.createElement(Box, { className: "px-4 pt-4" }, /* @__PURE__ */ React__default.createElement(FormControl, { className: "mt-3" }, /* @__PURE__ */ React__default.createElement(FormControlLabel, { className: "mb-1" }, /* @__PURE__ */ React__default.createElement(FormControlLabelText, null, "Name")), /* @__PURE__ */ React__default.createElement(Input, { variant: "underlined" }, /* @__PURE__ */ React__default.createElement(InputSlot, { className: "pl-0" }, /* @__PURE__ */ React__default.createElement(Text, { color: colors.gray[500] }, "#")), /* @__PURE__ */ React__default.createElement(InputField, { type: "text", placeholder: " e.g. Plan budget", maxLength: 80, value: name, onChange: (event) => setName(event.nativeEvent.text) }), /* @__PURE__ */ React__default.createElement(InputSlot, { className: "pr-3" }, /* @__PURE__ */ React__default.createElement(Text, { color: colors.gray[500] }, 80 - name.length))), /* @__PURE__ */ React__default.createElement(FormControlError, null, /* @__PURE__ */ React__default.createElement(FormControlErrorText, { className: "color-red-500" }, "Channel names must be lowercase, and can't contain spaces,periods,or most punctuation."))), /* @__PURE__ */ React__default.createElement(FormControl, { className: "mt-3" }, /* @__PURE__ */ React__default.createElement(FormControlLabel, { className: "mb-1" }, /* @__PURE__ */ React__default.createElement(FormControlLabelText, null, "Description")), /* @__PURE__ */ React__default.createElement(Input, { variant: "underlined" }, /* @__PURE__ */ React__default.createElement(InputField, { type: "text", placeholder: "channel description", value: description, onChange: (event) => setDescription(event.nativeEvent.text) })))))));
|
|
52
52
|
};
|
|
53
53
|
StyleSheet.create({
|
|
54
54
|
container: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddChannel.js","sources":["../../../src/screens/Channels/AddChannel.tsx"],"sourcesContent":["import React, { useState, useEffect, useLayoutEffect } from 'react';\nimport { StyleSheet, SafeAreaView } from 'react-native';\nimport {\n Input,\n InputField,\n InputSlot,\n Text,\n VStack,\n Box,\n FormControl,\n FormControlLabel,\n FormControlLabelText,\n FormControlHelper,\n FormControlHelperText,\n FormControlError,\n FormControlErrorText,\n Button,\n ButtonText,\n Fab,\n Icon,\n Divider,\n} from '@admin-layout/gluestack-ui-mobile';\nimport Colors from '../../constants/Colors';\nimport { useAddChannelMutation } from 'common/graphql';\nimport { AntDesign } from '@expo/vector-icons';\nimport VirtualizedScrollView from '../../components/VirtualizedScrollView';\nimport { NavigationRoutes } from '../../constants/routes';\nimport colors from 'tailwindcss/colors';\n\nconst AddChannel = ({ navigation, route }: any) => {\n const [name, setName] = useState('');\n const [description, setDescription] = useState('');\n const [showCreateButton, setShowCreateButton] = useState(false);\n const [nameIsInvalid, setNameIsInvalid] = useState(false);\n\n const [createChannel, createdChannel] = useAddChannelMutation({\n onCompleted: (data: any) => {\n //console.log('create data',data)\n if (data?.createChannel)\n navigation.navigate(NavigationRoutes.AddPeople, {\n channelId: data?.createChannel?.id,\n orgName: route?.params?.orgName,\n });\n else navigation.navigate(NavigationRoutes.Home, { orgName: route?.params?.orgName });\n },\n });\n\n // useEffect(() => {\n\n // if(name && name.length > 0){\n // let patt = /^[A-Za-z0-9_+\\-]*$/;\n // if (patt.test(name))\n // {\n // setNameIsInvalid(false)\n // setShowCreateButton(true)\n // }\n // else\n // {\n // setNameIsInvalid(true)\n // setShowCreateButton(false)\n // }\n // }\n // else\n // {\n // setShowCreateButton(false)\n // }\n\n // // if(name && name.length > 0)\n // // setShowCreateButton(true)\n // // else\n // // setShowCreateButton(false)\n\n // }, [name])\n\n useEffect(() => {\n if (name && name.length > 0) setShowCreateButton(true);\n else setShowCreateButton(false);\n }, [name]);\n\n useEffect(() => {\n navigation.setOptions({\n headerShown: true,\n headerTitleAlign: 'left',\n headerTitleStyle: {},\n headerRight: (props: any) => (\n <Button onPress={() => createNewChannel()} variant={'link'} disabled={showCreateButton ? false : true}>\n <ButtonText style={{ color: showCreateButton ? 'black' : '#71717a' }}>Create</ButtonText>\n </Button>\n ),\n });\n }, [name, description, showCreateButton]);\n\n const createNewChannel = () => {\n if (name && name.length > 0) {\n createChannel({\n variables: {\n name: name,\n description: description,\n },\n });\n }\n };\n\n // const setChannelName = (v:any) => {\n // let nameStr = v.replace(/\\s+/g, '-').toLowerCase();\n // setName(nameStr)\n // }\n\n return (\n <SafeAreaView style={{ flex: 1 }}>\n <Box className=\"bg-white flex-1 py-2 h-full shadow-sm\">\n <VStack space=\"md\">\n <Box className=\"px-4 pt-4\">\n {/* <FormControl isInvalid={nameIsInvalid} mt=\"3\"> */}\n <FormControl className=\"mt-3\">\n <FormControlLabel className=\"mb-1\">\n <FormControlLabelText>Name</FormControlLabelText>\n </FormControlLabel>\n\n <Input variant=\"underlined\">\n <InputSlot className=\"pl-0\">\n <Text color={colors.gray[500]}>#</Text>\n </InputSlot>\n <InputField\n type=\"text\"\n placeholder=\" e.g. Plan budget\"\n maxLength={80}\n value={name}\n onChangeText={(v) => setName(v)}\n />\n <InputSlot className=\"pr-3\">\n <Text color={colors.gray[500]}>{80 - name.length}</Text>\n </InputSlot>\n </Input>\n <FormControlError>\n <FormControlErrorText className=\"color-red-500\">\n Channel names must be lowercase, and can't contain spaces,periods,or most\n punctuation.\n </FormControlErrorText>\n </FormControlError>\n </FormControl>\n <FormControl className=\"mt-3\">\n <FormControlLabel className=\"mb-1\">\n <FormControlLabelText>Description</FormControlLabelText>\n </FormControlLabel>\n <Input variant=\"underlined\">\n <InputField\n type=\"text\"\n placeholder=\"channel description\"\n value={description}\n onChangeText={(v) => setDescription(v)}\n />\n </Input>\n </FormControl>\n </Box>\n </VStack>\n </Box>\n </SafeAreaView>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n //justifyContent: 'center',\n padding: 20,\n },\n itemView: {\n paddingVertical: 8,\n marginTop: 5,\n },\n headingText: {\n color: Colors.light.text,\n fontSize: 16,\n fontWeight: '400',\n },\n});\n\nexport default AddChannel;\n"],"names":["React"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AddChannel.js","sources":["../../../src/screens/Channels/AddChannel.tsx"],"sourcesContent":["import React, { useState, useEffect, useLayoutEffect } from 'react';\nimport { StyleSheet, SafeAreaView } from 'react-native';\nimport {\n Input,\n InputField,\n InputSlot,\n Text,\n VStack,\n Box,\n FormControl,\n FormControlLabel,\n FormControlLabelText,\n FormControlHelper,\n FormControlHelperText,\n FormControlError,\n FormControlErrorText,\n Button,\n ButtonText,\n Fab,\n Icon,\n Divider,\n} from '@admin-layout/gluestack-ui-mobile';\nimport Colors from '../../constants/Colors';\nimport { useAddChannelMutation } from 'common/graphql';\nimport { AntDesign } from '@expo/vector-icons';\nimport VirtualizedScrollView from '../../components/VirtualizedScrollView';\nimport { NavigationRoutes } from '../../constants/routes';\nimport colors from 'tailwindcss/colors';\n\nconst AddChannel = ({ navigation, route }: any) => {\n const [name, setName] = useState('');\n const [description, setDescription] = useState('');\n const [showCreateButton, setShowCreateButton] = useState(false);\n const [nameIsInvalid, setNameIsInvalid] = useState(false);\n\n const [createChannel, createdChannel] = useAddChannelMutation({\n onCompleted: (data: any) => {\n //console.log('create data',data)\n if (data?.createChannel)\n navigation.navigate(NavigationRoutes.AddPeople, {\n channelId: data?.createChannel?.id,\n orgName: route?.params?.orgName,\n });\n else navigation.navigate(NavigationRoutes.Home, { orgName: route?.params?.orgName });\n },\n });\n\n // useEffect(() => {\n\n // if(name && name.length > 0){\n // let patt = /^[A-Za-z0-9_+\\-]*$/;\n // if (patt.test(name))\n // {\n // setNameIsInvalid(false)\n // setShowCreateButton(true)\n // }\n // else\n // {\n // setNameIsInvalid(true)\n // setShowCreateButton(false)\n // }\n // }\n // else\n // {\n // setShowCreateButton(false)\n // }\n\n // // if(name && name.length > 0)\n // // setShowCreateButton(true)\n // // else\n // // setShowCreateButton(false)\n\n // }, [name])\n\n useEffect(() => {\n if (name && name.length > 0) setShowCreateButton(true);\n else setShowCreateButton(false);\n }, [name]);\n\n useEffect(() => {\n navigation.setOptions({\n headerShown: true,\n headerTitleAlign: 'left',\n headerTitleStyle: {},\n headerRight: (props: any) => (\n <Button onPress={() => createNewChannel()} variant={'link'} disabled={showCreateButton ? false : true}>\n <ButtonText style={{ color: showCreateButton ? 'black' : '#71717a' }}>Create</ButtonText>\n </Button>\n ),\n });\n }, [name, description, showCreateButton]);\n\n const createNewChannel = () => {\n if (name && name.length > 0) {\n createChannel({\n variables: {\n name: name,\n description: description,\n },\n });\n }\n };\n\n // const setChannelName = (v:any) => {\n // let nameStr = v.replace(/\\s+/g, '-').toLowerCase();\n // setName(nameStr)\n // }\n\n return (\n <SafeAreaView style={{ flex: 1 }}>\n <Box className=\"bg-white flex-1 py-2 h-full shadow-sm\">\n <VStack space=\"md\">\n <Box className=\"px-4 pt-4\">\n {/* <FormControl isInvalid={nameIsInvalid} mt=\"3\"> */}\n <FormControl className=\"mt-3\">\n <FormControlLabel className=\"mb-1\">\n <FormControlLabelText>Name</FormControlLabelText>\n </FormControlLabel>\n\n <Input variant=\"underlined\">\n <InputSlot className=\"pl-0\">\n <Text color={colors.gray[500]}>#</Text>\n </InputSlot>\n <InputField\n type=\"text\"\n placeholder=\" e.g. Plan budget\"\n maxLength={80}\n value={name}\n onChange={(event) => setName(event.nativeEvent.text)}\n />\n <InputSlot className=\"pr-3\">\n <Text color={colors.gray[500]}>{80 - name.length}</Text>\n </InputSlot>\n </Input>\n <FormControlError>\n <FormControlErrorText className=\"color-red-500\">\n Channel names must be lowercase, and can't contain spaces,periods,or most\n punctuation.\n </FormControlErrorText>\n </FormControlError>\n </FormControl>\n <FormControl className=\"mt-3\">\n <FormControlLabel className=\"mb-1\">\n <FormControlLabelText>Description</FormControlLabelText>\n </FormControlLabel>\n <Input variant=\"underlined\">\n <InputField\n type=\"text\"\n placeholder=\"channel description\"\n value={description}\n onChange={(event) => setDescription(event.nativeEvent.text)}\n />\n </Input>\n </FormControl>\n </Box>\n </VStack>\n </Box>\n </SafeAreaView>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n //justifyContent: 'center',\n padding: 20,\n },\n itemView: {\n paddingVertical: 8,\n marginTop: 5,\n },\n headingText: {\n color: Colors.light.text,\n fontSize: 16,\n fontWeight: '400',\n },\n});\n\nexport default AddChannel;\n"],"names":["React"],"mappings":"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"}
|
|
@@ -123,7 +123,7 @@ const Channels = ({
|
|
|
123
123
|
orgName
|
|
124
124
|
});
|
|
125
125
|
}, [navigation, orgName]);
|
|
126
|
-
return /* @__PURE__ */ React__default.createElement(SafeAreaView, { style: styles.safeArea }, /* @__PURE__ */ React__default.createElement(StatusBar, { style: "dark" }), /* @__PURE__ */ React__default.createElement(Box, { className: "flex-1 bg-white" }, /* @__PURE__ */ React__default.createElement(Box, { className: "px-4 py-2", style: styles.searchContainer }, /* @__PURE__ */ React__default.createElement(Input, { variant: "outline", className: "bg-white rounded-3xl border border-gray-300", style: styles.searchInput, size: "lg" }, /* @__PURE__ */ React__default.createElement(InputSlot, { className: "pl-3" }, /* @__PURE__ */ React__default.createElement(InputIcon, { color: colors.gray[500], as: SearchIcon })), /* @__PURE__ */ React__default.createElement(InputField, { type: "text", size: "md", placeholder: "Search channels", placeholderTextColor: colors.gray[400], className: "px-3 py-2 text-base", value: searchQuery,
|
|
126
|
+
return /* @__PURE__ */ React__default.createElement(SafeAreaView, { style: styles.safeArea }, /* @__PURE__ */ React__default.createElement(StatusBar, { style: "dark" }), /* @__PURE__ */ React__default.createElement(Box, { className: "flex-1 bg-white" }, /* @__PURE__ */ React__default.createElement(Box, { className: "px-4 py-2", style: styles.searchContainer }, /* @__PURE__ */ React__default.createElement(Input, { variant: "outline", className: "bg-white rounded-3xl border border-gray-300", style: styles.searchInput, size: "lg" }, /* @__PURE__ */ React__default.createElement(InputSlot, { className: "pl-3" }, /* @__PURE__ */ React__default.createElement(InputIcon, { color: colors.gray[500], as: SearchIcon })), /* @__PURE__ */ React__default.createElement(InputField, { type: "text", size: "md", placeholder: "Search channels", placeholderTextColor: colors.gray[400], className: "px-3 py-2 text-base", value: searchQuery, onChange: (event) => searchChannels(event.nativeEvent.text), autoCapitalize: "none", autoCorrect: false, clearButtonMode: "while-editing" }))), /* @__PURE__ */ React__default.createElement(Box, { className: "flex-1" }, /* @__PURE__ */ React__default.createElement(FlatList, { contentContainerStyle: styles.flatListContent, data: channels, keyExtractor, renderItem: renderChannelItem, ListEmptyComponent: renderEmptyList, showsVerticalScrollIndicator: false, initialNumToRender: 10, maxToRenderPerBatch: 10, windowSize: 10 }))));
|
|
127
127
|
};
|
|
128
128
|
const styles = StyleSheet.create({
|
|
129
129
|
safeArea: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Channels.js","sources":["../../../src/screens/Channels/Channels.tsx"],"sourcesContent":["import React, { useState, useEffect, useCallback, useMemo } from 'react';\nimport { StyleSheet, TouchableHighlight, Dimensions, SafeAreaView } from 'react-native';\nimport {\n Input,\n InputField,\n InputSlot,\n InputIcon,\n SearchIcon,\n Button,\n ButtonText,\n View,\n Text,\n VStack,\n Box,\n Fab,\n FlatList,\n Divider,\n HStack,\n SectionList,\n Center,\n Heading,\n Spinner,\n Avatar,\n Badge,\n BadgeText,\n Pressable,\n} from '@admin-layout/gluestack-ui-mobile';\nimport Colors from '../../constants/Colors';\nimport { NavigationRoutes } from '../../constants/routes';\nimport { AntDesign } from '@expo/vector-icons';\n// import VirtualizedScrollView from '../VirtualizedScrollView';\nimport { RoomType } from 'common';\nimport { useGetChannelsByUserQuery } from 'common/graphql';\nimport { useIsFocused, useFocusEffect, useNavigation } from '@react-navigation/native';\n// import { navigationRef } from '@common-stack/client-react';\nimport { FontAwesome, Feather, Octicons, MaterialIcons } from '@expo/vector-icons';\nimport colors from 'tailwindcss/colors';\nimport { StatusBar } from 'expo-status-bar';\nimport { NavigationHeader, ChannelsByAlphabeticalAccordion } from '../../components';\nimport { useDrawerLayout } from '../../hooks';\nimport { startCase, orderBy, uniqBy } from 'lodash-es';\n\nconst windowWidth = Dimensions.get('window').width;\nconst windowHeight = Dimensions.get('window').height;\n\nconst defaultChannelType = [RoomType.Channel, RoomType.Private, RoomType.Public];\n\nconst Channels = ({ navigation, route }: any) => {\n const { orgName } = useDrawerLayout();\n const isFocused = useIsFocused();\n const [channels, setChannels] = useState<any[]>([]);\n const [intialChannels, setInitialChannels] = useState<any[]>([]);\n const [searchQuery, setSearchQuery] = useState<string>('');\n\n const {\n data: channelsData,\n loading,\n error,\n refetch,\n } = useGetChannelsByUserQuery({\n variables: {\n criteria: {\n orgName: orgName,\n type: defaultChannelType,\n team: null,\n },\n limit: 50,\n },\n skip: !orgName,\n });\n\n useFocusEffect(\n useCallback(() => {\n if (orgName) {\n refetch({\n criteria: {\n orgName: orgName,\n type: defaultChannelType,\n team: null,\n },\n limit: 50,\n });\n }\n return () => {\n // Cleanup\n };\n }, [orgName, refetch]),\n );\n\n useEffect(() => {\n if (channelsData) {\n const newChannels =\n channelsData?.channelsByUser\n ?.filter((i: any) => i.type !== RoomType.Direct)\n ?.sort((a: any, b: any) => a.title.localeCompare(b.title)) || [];\n\n setChannels((oldChannels: any) => uniqBy([...newChannels, ...oldChannels], ({ id }) => id));\n setInitialChannels((oldChannels: any) => uniqBy([...newChannels, ...oldChannels], ({ id }) => id));\n }\n }, [channelsData]);\n\n useEffect(() => {\n if (navigation) {\n navigation.setOptions({\n headerTitleAlign: 'left',\n headerTitleStyle: {\n borderBottomWidth: 1,\n },\n headerLeft: () => (\n <Button onPress={() => navigation.goBack()} variant={'link'}>\n <ButtonText>\n <MaterialIcons name=\"close\" size={24} color=\"black\" />\n </ButtonText>\n </Button>\n ),\n headerRight: () => (\n <Button\n onPress={() => navigation.navigate(NavigationRoutes.AddChannel, { orgName })}\n variant={'link'}\n >\n <ButtonText>Create</ButtonText>\n </Button>\n ),\n // headerLeft:()=><></>,\n // headerRight: () => (\n // <Button onPress={() => navigation.goBack()} variant={'link'}>\n // <ButtonText><MaterialIcons name=\"close\" size={24} color=\"black\" /></ButtonText>\n // </Button>\n // ),\n headerTitle: () => (\n <Box>\n <Text color={colors.black} className=\"text-[15] font-bold\">\n Channels\n </Text>\n </Box>\n ),\n headerStyle: {\n borderBottomWidth: 1,\n borderColor: '#d1d2d3',\n },\n });\n }\n }, [navigation, orgName]);\n\n const openInbox = useCallback(\n (item: any) => {\n navigation.navigate(NavigationRoutes.DialogMessages, {\n channelId: item?.id?.toString(),\n title: item?.title?.toString(),\n totalMembers: item?.members?.length,\n hideTabBar: true,\n });\n },\n [navigation],\n );\n\n const searchChannels = useCallback(\n (text: string) => {\n setSearchQuery(text);\n if (text) {\n const searchedChannel = intialChannels.filter((o: any) =>\n o?.title?.toLowerCase().includes(text?.toLowerCase()),\n );\n setChannels(searchedChannel);\n } else {\n setChannels(intialChannels);\n }\n },\n [intialChannels],\n );\n\n const renderChannelIcon = useCallback((type: RoomType) => {\n if (type === RoomType.Private) {\n return <FontAwesome color={'#525252'} name=\"lock\" size={18} />;\n } else {\n return <Octicons color=\"#525252\" name=\"hash\" size={18} />;\n }\n }, []);\n\n const renderChannelItem = useCallback(\n ({ item }: any) => (\n <Pressable onPress={() => openInbox(item)}>\n {({ pressed }) => (\n <Box\n className={`py-4 ${pressed ? 'bg-gray-100' : 'bg-white'} border-b border-gray-200`}\n style={{ borderBottomColor: colors.gray[300] }}\n >\n <HStack className=\"px-4 items-center\">\n <Box className=\"mr-2\">{renderChannelIcon(item.type)}</Box>\n <VStack>\n <Text\n className=\"font-medium text-lg text-gray-900\"\n numberOfLines={1}\n ellipsizeMode=\"tail\"\n >\n {item.title}\n </Text>\n </VStack>\n </HStack>\n </Box>\n )}\n </Pressable>\n ),\n [openInbox, renderChannelIcon],\n );\n\n const renderEmptyList = useCallback(\n () => (\n <Center className=\"flex-1 py-10\">\n {loading ? (\n <VStack className=\"space-y-3 items-center\">\n <Spinner size=\"large\" color={colors.blue[500]} />\n <Text color={colors.gray[600]}>Loading channels...</Text>\n </VStack>\n ) : (\n <VStack className=\"space-y-3 items-center px-4\">\n <Box className=\"rounded-full bg-gray-100 p-4\">\n <Octicons name=\"hash\" size={32} color={colors.gray[400]} />\n </Box>\n <Heading size=\"sm\" style={{ color: colors.gray[800] }}>\n No Channels Found\n </Heading>\n {searchQuery ? (\n <Text className=\"text-center\" style={{ color: colors.gray[600] }}>\n No channels match your search \"{searchQuery}\"\n </Text>\n ) : (\n <Text className=\"text-center\" style={{ color: colors.gray[600] }}>\n Create a new channel to get started\n </Text>\n )}\n <Button\n onPress={() => navigation.navigate(NavigationRoutes.AddChannel, { orgName })}\n className=\"mt-2\"\n >\n <ButtonText>Create Channel</ButtonText>\n </Button>\n </VStack>\n )}\n </Center>\n ),\n [loading, searchQuery, navigation, orgName],\n );\n\n const keyExtractor = useCallback((item: any) => item.id.toString(), []);\n\n const navigateToAddChannel = useCallback(() => {\n navigation.navigate(NavigationRoutes.AddChannel, { orgName });\n }, [navigation, orgName]);\n\n return (\n <SafeAreaView style={styles.safeArea}>\n <StatusBar style=\"dark\" />\n <Box className=\"flex-1 bg-white\">\n <Box className=\"px-4 py-2\" style={styles.searchContainer}>\n <Input\n variant=\"outline\"\n className=\"bg-white rounded-3xl border border-gray-300\"\n style={styles.searchInput}\n size=\"lg\"\n >\n <InputSlot className=\"pl-3\">\n <InputIcon color={colors.gray[500]} as={SearchIcon} />\n </InputSlot>\n <InputField\n type=\"text\"\n size=\"md\"\n placeholder=\"Search channels\"\n placeholderTextColor={colors.gray[400]}\n className=\"px-3 py-2 text-base\"\n value={searchQuery}\n onChangeText={searchChannels}\n autoCapitalize=\"none\"\n autoCorrect={false}\n clearButtonMode=\"while-editing\"\n />\n </Input>\n </Box>\n\n <Box className=\"flex-1\">\n <FlatList\n contentContainerStyle={styles.flatListContent}\n data={channels}\n keyExtractor={keyExtractor}\n renderItem={renderChannelItem}\n ListEmptyComponent={renderEmptyList}\n showsVerticalScrollIndicator={false}\n initialNumToRender={10}\n maxToRenderPerBatch={10}\n windowSize={10}\n />\n </Box>\n\n {/* <Fab\n onPress={navigateToAddChannel}\n className=\"bg-blue-500 mb-16 mr-4\"\n $pressed-className=\"bg-blue-600\"\n size=\"lg\"\n placement=\"bottom right\"\n >\n <AntDesign color=\"white\" name=\"plus\" size={24} />\n </Fab> */}\n </Box>\n </SafeAreaView>\n );\n};\n\nconst styles = StyleSheet.create({\n safeArea: {\n flex: 1,\n backgroundColor: 'white',\n },\n searchContainer: {\n paddingVertical: 10,\n },\n searchInput: {\n borderRadius: 10,\n borderColor: colors.gray[300],\n paddingHorizontal: 10,\n },\n flatListContent: {\n flexGrow: 1,\n paddingBottom: 80,\n },\n channelTitle: {\n color: colors.gray[900],\n fontSize: 16,\n fontWeight: '500',\n },\n channelDescription: {\n color: colors.gray[600],\n fontSize: 14,\n marginTop: 2,\n },\n});\n\nexport default React.memo(Channels);\n"],"names":["React"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Channels.js","sources":["../../../src/screens/Channels/Channels.tsx"],"sourcesContent":["import React, { useState, useEffect, useCallback, useMemo } from 'react';\nimport { StyleSheet, TouchableHighlight, Dimensions, SafeAreaView } from 'react-native';\nimport {\n Input,\n InputField,\n InputSlot,\n InputIcon,\n SearchIcon,\n Button,\n ButtonText,\n View,\n Text,\n VStack,\n Box,\n Fab,\n FlatList,\n Divider,\n HStack,\n SectionList,\n Center,\n Heading,\n Spinner,\n Avatar,\n Badge,\n BadgeText,\n Pressable,\n} from '@admin-layout/gluestack-ui-mobile';\nimport Colors from '../../constants/Colors';\nimport { NavigationRoutes } from '../../constants/routes';\nimport { AntDesign } from '@expo/vector-icons';\n// import VirtualizedScrollView from '../VirtualizedScrollView';\nimport { RoomType } from 'common';\nimport { useGetChannelsByUserQuery } from 'common/graphql';\nimport { useIsFocused, useFocusEffect, useNavigation } from '@react-navigation/native';\n// import { navigationRef } from '@common-stack/client-react';\nimport { FontAwesome, Feather, Octicons, MaterialIcons } from '@expo/vector-icons';\nimport colors from 'tailwindcss/colors';\nimport { StatusBar } from 'expo-status-bar';\nimport { NavigationHeader, ChannelsByAlphabeticalAccordion } from '../../components';\nimport { useDrawerLayout } from '../../hooks';\nimport { startCase, orderBy, uniqBy } from 'lodash-es';\n\nconst windowWidth = Dimensions.get('window').width;\nconst windowHeight = Dimensions.get('window').height;\n\nconst defaultChannelType = [RoomType.Channel, RoomType.Private, RoomType.Public];\n\nconst Channels = ({ navigation, route }: any) => {\n const { orgName } = useDrawerLayout();\n const isFocused = useIsFocused();\n const [channels, setChannels] = useState<any[]>([]);\n const [intialChannels, setInitialChannels] = useState<any[]>([]);\n const [searchQuery, setSearchQuery] = useState<string>('');\n\n const {\n data: channelsData,\n loading,\n error,\n refetch,\n } = useGetChannelsByUserQuery({\n variables: {\n criteria: {\n orgName: orgName,\n type: defaultChannelType,\n team: null,\n },\n limit: 50,\n },\n skip: !orgName,\n });\n\n useFocusEffect(\n useCallback(() => {\n if (orgName) {\n refetch({\n criteria: {\n orgName: orgName,\n type: defaultChannelType,\n team: null,\n },\n limit: 50,\n });\n }\n return () => {\n // Cleanup\n };\n }, [orgName, refetch]),\n );\n\n useEffect(() => {\n if (channelsData) {\n const newChannels =\n channelsData?.channelsByUser\n ?.filter((i: any) => i.type !== RoomType.Direct)\n ?.sort((a: any, b: any) => a.title.localeCompare(b.title)) || [];\n\n setChannels((oldChannels: any) => uniqBy([...newChannels, ...oldChannels], ({ id }) => id));\n setInitialChannels((oldChannels: any) => uniqBy([...newChannels, ...oldChannels], ({ id }) => id));\n }\n }, [channelsData]);\n\n useEffect(() => {\n if (navigation) {\n navigation.setOptions({\n headerTitleAlign: 'left',\n headerTitleStyle: {\n borderBottomWidth: 1,\n },\n headerLeft: () => (\n <Button onPress={() => navigation.goBack()} variant={'link'}>\n <ButtonText>\n <MaterialIcons name=\"close\" size={24} color=\"black\" />\n </ButtonText>\n </Button>\n ),\n headerRight: () => (\n <Button\n onPress={() => navigation.navigate(NavigationRoutes.AddChannel, { orgName })}\n variant={'link'}\n >\n <ButtonText>Create</ButtonText>\n </Button>\n ),\n // headerLeft:()=><></>,\n // headerRight: () => (\n // <Button onPress={() => navigation.goBack()} variant={'link'}>\n // <ButtonText><MaterialIcons name=\"close\" size={24} color=\"black\" /></ButtonText>\n // </Button>\n // ),\n headerTitle: () => (\n <Box>\n <Text color={colors.black} className=\"text-[15] font-bold\">\n Channels\n </Text>\n </Box>\n ),\n headerStyle: {\n borderBottomWidth: 1,\n borderColor: '#d1d2d3',\n },\n });\n }\n }, [navigation, orgName]);\n\n const openInbox = useCallback(\n (item: any) => {\n navigation.navigate(NavigationRoutes.DialogMessages, {\n channelId: item?.id?.toString(),\n title: item?.title?.toString(),\n totalMembers: item?.members?.length,\n hideTabBar: true,\n });\n },\n [navigation],\n );\n\n const searchChannels = useCallback(\n (text: string) => {\n setSearchQuery(text);\n if (text) {\n const searchedChannel = intialChannels.filter((o: any) =>\n o?.title?.toLowerCase().includes(text?.toLowerCase()),\n );\n setChannels(searchedChannel);\n } else {\n setChannels(intialChannels);\n }\n },\n [intialChannels],\n );\n\n const renderChannelIcon = useCallback((type: RoomType) => {\n if (type === RoomType.Private) {\n return <FontAwesome color={'#525252'} name=\"lock\" size={18} />;\n } else {\n return <Octicons color=\"#525252\" name=\"hash\" size={18} />;\n }\n }, []);\n\n const renderChannelItem = useCallback(\n ({ item }: any) => (\n <Pressable onPress={() => openInbox(item)}>\n {({ pressed }) => (\n <Box\n className={`py-4 ${pressed ? 'bg-gray-100' : 'bg-white'} border-b border-gray-200`}\n style={{ borderBottomColor: colors.gray[300] }}\n >\n <HStack className=\"px-4 items-center\">\n <Box className=\"mr-2\">{renderChannelIcon(item.type)}</Box>\n <VStack>\n <Text\n className=\"font-medium text-lg text-gray-900\"\n numberOfLines={1}\n ellipsizeMode=\"tail\"\n >\n {item.title}\n </Text>\n </VStack>\n </HStack>\n </Box>\n )}\n </Pressable>\n ),\n [openInbox, renderChannelIcon],\n );\n\n const renderEmptyList = useCallback(\n () => (\n <Center className=\"flex-1 py-10\">\n {loading ? (\n <VStack className=\"space-y-3 items-center\">\n <Spinner size=\"large\" color={colors.blue[500]} />\n <Text color={colors.gray[600]}>Loading channels...</Text>\n </VStack>\n ) : (\n <VStack className=\"space-y-3 items-center px-4\">\n <Box className=\"rounded-full bg-gray-100 p-4\">\n <Octicons name=\"hash\" size={32} color={colors.gray[400]} />\n </Box>\n <Heading size=\"sm\" style={{ color: colors.gray[800] }}>\n No Channels Found\n </Heading>\n {searchQuery ? (\n <Text className=\"text-center\" style={{ color: colors.gray[600] }}>\n No channels match your search \"{searchQuery}\"\n </Text>\n ) : (\n <Text className=\"text-center\" style={{ color: colors.gray[600] }}>\n Create a new channel to get started\n </Text>\n )}\n <Button\n onPress={() => navigation.navigate(NavigationRoutes.AddChannel, { orgName })}\n className=\"mt-2\"\n >\n <ButtonText>Create Channel</ButtonText>\n </Button>\n </VStack>\n )}\n </Center>\n ),\n [loading, searchQuery, navigation, orgName],\n );\n\n const keyExtractor = useCallback((item: any) => item.id.toString(), []);\n\n const navigateToAddChannel = useCallback(() => {\n navigation.navigate(NavigationRoutes.AddChannel, { orgName });\n }, [navigation, orgName]);\n\n return (\n <SafeAreaView style={styles.safeArea}>\n <StatusBar style=\"dark\" />\n <Box className=\"flex-1 bg-white\">\n <Box className=\"px-4 py-2\" style={styles.searchContainer}>\n <Input\n variant=\"outline\"\n className=\"bg-white rounded-3xl border border-gray-300\"\n style={styles.searchInput}\n size=\"lg\"\n >\n <InputSlot className=\"pl-3\">\n <InputIcon color={colors.gray[500]} as={SearchIcon} />\n </InputSlot>\n <InputField\n type=\"text\"\n size=\"md\"\n placeholder=\"Search channels\"\n placeholderTextColor={colors.gray[400]}\n className=\"px-3 py-2 text-base\"\n value={searchQuery}\n onChange={(event) => searchChannels(event.nativeEvent.text)}\n autoCapitalize=\"none\"\n autoCorrect={false}\n clearButtonMode=\"while-editing\"\n />\n </Input>\n </Box>\n\n <Box className=\"flex-1\">\n <FlatList\n contentContainerStyle={styles.flatListContent}\n data={channels}\n keyExtractor={keyExtractor}\n renderItem={renderChannelItem}\n ListEmptyComponent={renderEmptyList}\n showsVerticalScrollIndicator={false}\n initialNumToRender={10}\n maxToRenderPerBatch={10}\n windowSize={10}\n />\n </Box>\n\n {/* <Fab\n onPress={navigateToAddChannel}\n className=\"bg-blue-500 mb-16 mr-4\"\n $pressed-className=\"bg-blue-600\"\n size=\"lg\"\n placement=\"bottom right\"\n >\n <AntDesign color=\"white\" name=\"plus\" size={24} />\n </Fab> */}\n </Box>\n </SafeAreaView>\n );\n};\n\nconst styles = StyleSheet.create({\n safeArea: {\n flex: 1,\n backgroundColor: 'white',\n },\n searchContainer: {\n paddingVertical: 10,\n },\n searchInput: {\n borderRadius: 10,\n borderColor: colors.gray[300],\n paddingHorizontal: 10,\n },\n flatListContent: {\n flexGrow: 1,\n paddingBottom: 80,\n },\n channelTitle: {\n color: colors.gray[900],\n fontSize: 16,\n fontWeight: '500',\n },\n channelDescription: {\n color: colors.gray[600],\n fontSize: 14,\n marginTop: 2,\n },\n});\n\nexport default React.memo(Channels);\n"],"names":["React"],"mappings":"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"}
|
|
@@ -63,7 +63,7 @@ const CreateOrganization = ({
|
|
|
63
63
|
} }, /* @__PURE__ */ React__default.createElement(Box, { className: "border-t-blue-600 border-t-[1px] w-[25%]" }), /* @__PURE__ */ React__default.createElement(Center, { className: "flex-1 bg-white" }, /* @__PURE__ */ React__default.createElement(VStack, { space: "sm" }, /* @__PURE__ */ React__default.createElement(Heading, { className: "px-4 items-center text-center" }, "What's the name of your company or team?"), /* @__PURE__ */ React__default.createElement(Text, { className: "text-center" }, "This will be the name of your workspace."), /* @__PURE__ */ React__default.createElement(Box, null, /* @__PURE__ */ React__default.createElement(FormControl, { className: "mt-3 w-full px-2" }, /* @__PURE__ */ React__default.createElement(Input, { variant: "outline", size: "lg", style: {
|
|
64
64
|
borderWidth: 1,
|
|
65
65
|
borderColor: "1e3a8a"
|
|
66
|
-
}, className: "py-3 border-blue-900 border-[2px]" }, /* @__PURE__ */ React__default.createElement(InputField, { maxLength: 80, placeholder: "Ex. Acme or Acme Marketing", value: name,
|
|
66
|
+
}, className: "py-3 border-blue-900 border-[2px]" }, /* @__PURE__ */ React__default.createElement(InputField, { maxLength: 80, placeholder: "Ex. Acme or Acme Marketing", value: name, onChange: (event) => setName(event.nativeEvent.text), "aria-label": "Organization name", accessibilityLabel: "Organization name" })), /* @__PURE__ */ React__default.createElement(FormControlError, { className: "px-2" }, /* @__PURE__ */ React__default.createElement(FormControlErrorText, { className: "color-red-400" }, "Organization name must be lowercase, and can't contain spaces,periods,or most punctuation.")))), /* @__PURE__ */ React__default.createElement(Button, { variant: "solid", className: `${showCreateButton ? "bg-green-800" : "bg-gray-300"} active:bg-green-600 hover:bg-green-600 mx-2`, disabled: showCreateButton ? false : true, onPress: () => createOrganization(), style: {
|
|
67
67
|
backgroundColor: showCreateButton ? "#166534" : "#d1d5db"
|
|
68
68
|
} }, loading && /* @__PURE__ */ React__default.createElement(ButtonSpinner, { style: {
|
|
69
69
|
marginRight: 1
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateOrganization.js","sources":["../../../src/screens/Organization/CreateOrganization.tsx"],"sourcesContent":["import React, { useState, useEffect, useLayoutEffect, useCallback } from 'react';\nimport { StyleSheet, TouchableOpacity, Dimensions, Platform, Alert, SafeAreaView } from 'react-native';\nimport {\n Input,\n InputField,\n View,\n Text,\n VStack,\n Box,\n FormControl,\n FormControlLabel,\n FormControlLabelText,\n FormControlHelper,\n FormControlHelperText,\n FormControlError,\n FormControlErrorText,\n Button,\n ButtonText,\n ButtonSpinner,\n Fab,\n Icon,\n Divider,\n FlatList,\n HStack,\n Avatar,\n Image,\n Checkbox,\n ChevronLeftIcon,\n Center,\n Heading,\n} from '@admin-layout/gluestack-ui-mobile';\nimport { useCreateOrganizationMutation, useGetAllUsersQuery } from 'common/graphql';\nimport { NavigationRoutes } from '../../constants/routes';\nimport { useSelector } from 'react-redux';\nimport { userSelector, isUserAuthenticated } from '@adminide-stack/user-auth0-client';\nimport { useFocusEffect, useNavigation } from '@react-navigation/native';\nimport Colors from 'tailwindcss/colors';\nimport { LoadingSpinner } from '../../components';\nconst windowWidth = Dimensions.get('window').width;\nconst windowHeight = Dimensions.get('window').height;\n\nconst CreateOrganization = ({ route }: any) => {\n const navigation = useNavigation<any>();\n const user: any = useSelector(userSelector);\n const [name, setName] = useState<string>('');\n const [description, setDescription] = useState('');\n const [orgMemebers, setOrgMemebers] = useState<any>([{ userId: user?.id, role: 'OWNER' }]);\n const [showCreateButton, setShowCreateButton] = useState<boolean>(false);\n const [createOrganizationMutation, { data, loading, error }] = useCreateOrganizationMutation({\n onCompleted: (data: any) => {\n if (data?.createOrganization?.name) {\n navigation.navigate(NavigationRoutes.InviteOrganizationMembers, {\n orgName: data?.createOrganization?.name,\n });\n } else {\n navigation.navigate(NavigationRoutes.Home, { orgName: route?.params?.orgName });\n }\n },\n onError: (error: any) => {\n //console.log('create org error', error);\n Alert.alert('Workspace already exists');\n },\n });\n\n useFocusEffect(\n React.useCallback(() => {\n // Do something when the screen is focused\n return () => {\n // Do something when the screen is unfocused\n // Useful for cleanup functions\n };\n }, []),\n );\n\n useEffect(() => {\n if (name && name.length > 0) setShowCreateButton(true);\n else setShowCreateButton(false);\n }, [name]);\n\n const createOrganization = useCallback(() => {\n if (name && name?.length > 0) {\n createOrganizationMutation({\n variables: {\n organization: {\n name: name,\n namespace: name,\n title: name,\n description: description,\n orgMembers: orgMemebers,\n },\n },\n });\n }\n }, [name]);\n\n return (\n <SafeAreaView style={{ flex: 1 }}>\n <Box className=\"border-t-blue-600 border-t-[1px] w-[25%]\" />\n <Center className=\"flex-1 bg-white\">\n <VStack space={'sm'}>\n <Heading className=\"px-4 items-center text-center\">\n What's the name of your company or team?\n </Heading>\n <Text className=\"text-center\">This will be the name of your workspace.</Text>\n <Box>\n <FormControl className=\"mt-3 w-full px-2\">\n <Input\n variant=\"outline\"\n size=\"lg\"\n style={{ borderWidth: 1, borderColor: '1e3a8a' }}\n className=\"py-3 border-blue-900 border-[2px]\"\n >\n <InputField\n maxLength={80}\n placeholder=\"Ex. Acme or Acme Marketing\"\n value={name}\n onChangeText={(v) => setName(v)}\n aria-label=\"Organization name\"\n accessibilityLabel=\"Organization name\"\n />\n </Input>\n <FormControlError className=\"px-2\">\n <FormControlErrorText className=\"color-red-400\">\n Organization name must be lowercase, and can't contain spaces,periods,or most\n punctuation.\n </FormControlErrorText>\n </FormControlError>\n </FormControl>\n </Box>\n <Button\n variant={'solid'}\n className={`${\n showCreateButton ? 'bg-green-800' : 'bg-gray-300'\n } active:bg-green-600 hover:bg-green-600 mx-2`}\n disabled={showCreateButton ? false : true}\n onPress={() => createOrganization()}\n style={{ backgroundColor: showCreateButton ? '#166534' : '#d1d5db' }}\n >\n {loading && <ButtonSpinner style={{ marginRight: 1 }} />}\n <ButtonText className={`font-bold ${showCreateButton ? 'color-white' : 'color-gray-800'}`}>\n Next\n </ButtonText>\n </Button>\n <Text className=\"py-2 color-gray-800 leading-loose px-2\">\n By continuing, you're agreeing to out{' '}\n <Text color={Colors.blue[900]}>Main Services Agreement, User Terms of Services</Text>, and{' '}\n <Text color={Colors.blue[900]}>Supplemental Terms</Text>\n .Additional disclosures are available in our{' '}\n <Text color={Colors.blue[900]}>Privacy Policy</Text> and{' '}\n <Text color={Colors.blue[900]}>Cookie Policy</Text>.\n </Text>\n </VStack>\n </Center>\n </SafeAreaView>\n );\n};\n\nexport default CreateOrganization;\n"],"names":["data","error","React","Colors"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CreateOrganization.js","sources":["../../../src/screens/Organization/CreateOrganization.tsx"],"sourcesContent":["import React, { useState, useEffect, useLayoutEffect, useCallback } from 'react';\nimport { StyleSheet, TouchableOpacity, Dimensions, Platform, Alert, SafeAreaView } from 'react-native';\nimport {\n Input,\n InputField,\n View,\n Text,\n VStack,\n Box,\n FormControl,\n FormControlLabel,\n FormControlLabelText,\n FormControlHelper,\n FormControlHelperText,\n FormControlError,\n FormControlErrorText,\n Button,\n ButtonText,\n ButtonSpinner,\n Fab,\n Icon,\n Divider,\n FlatList,\n HStack,\n Avatar,\n Image,\n Checkbox,\n ChevronLeftIcon,\n Center,\n Heading,\n} from '@admin-layout/gluestack-ui-mobile';\nimport { useCreateOrganizationMutation, useGetAllUsersQuery } from 'common/graphql';\nimport { NavigationRoutes } from '../../constants/routes';\nimport { useSelector } from 'react-redux';\nimport { userSelector, isUserAuthenticated } from '@adminide-stack/user-auth0-client';\nimport { useFocusEffect, useNavigation } from '@react-navigation/native';\nimport Colors from 'tailwindcss/colors';\nimport { LoadingSpinner } from '../../components';\nconst windowWidth = Dimensions.get('window').width;\nconst windowHeight = Dimensions.get('window').height;\n\nconst CreateOrganization = ({ route }: any) => {\n const navigation = useNavigation<any>();\n const user: any = useSelector(userSelector);\n const [name, setName] = useState<string>('');\n const [description, setDescription] = useState('');\n const [orgMemebers, setOrgMemebers] = useState<any>([{ userId: user?.id, role: 'OWNER' }]);\n const [showCreateButton, setShowCreateButton] = useState<boolean>(false);\n const [createOrganizationMutation, { data, loading, error }] = useCreateOrganizationMutation({\n onCompleted: (data: any) => {\n if (data?.createOrganization?.name) {\n navigation.navigate(NavigationRoutes.InviteOrganizationMembers, {\n orgName: data?.createOrganization?.name,\n });\n } else {\n navigation.navigate(NavigationRoutes.Home, { orgName: route?.params?.orgName });\n }\n },\n onError: (error: any) => {\n //console.log('create org error', error);\n Alert.alert('Workspace already exists');\n },\n });\n\n useFocusEffect(\n React.useCallback(() => {\n // Do something when the screen is focused\n return () => {\n // Do something when the screen is unfocused\n // Useful for cleanup functions\n };\n }, []),\n );\n\n useEffect(() => {\n if (name && name.length > 0) setShowCreateButton(true);\n else setShowCreateButton(false);\n }, [name]);\n\n const createOrganization = useCallback(() => {\n if (name && name?.length > 0) {\n createOrganizationMutation({\n variables: {\n organization: {\n name: name,\n namespace: name,\n title: name,\n description: description,\n orgMembers: orgMemebers,\n },\n },\n });\n }\n }, [name]);\n\n return (\n <SafeAreaView style={{ flex: 1 }}>\n <Box className=\"border-t-blue-600 border-t-[1px] w-[25%]\" />\n <Center className=\"flex-1 bg-white\">\n <VStack space={'sm'}>\n <Heading className=\"px-4 items-center text-center\">\n What's the name of your company or team?\n </Heading>\n <Text className=\"text-center\">This will be the name of your workspace.</Text>\n <Box>\n <FormControl className=\"mt-3 w-full px-2\">\n <Input\n variant=\"outline\"\n size=\"lg\"\n style={{ borderWidth: 1, borderColor: '1e3a8a' }}\n className=\"py-3 border-blue-900 border-[2px]\"\n >\n <InputField\n maxLength={80}\n placeholder=\"Ex. Acme or Acme Marketing\"\n value={name}\n onChange={(event) => setName(event.nativeEvent.text)}\n aria-label=\"Organization name\"\n accessibilityLabel=\"Organization name\"\n />\n </Input>\n <FormControlError className=\"px-2\">\n <FormControlErrorText className=\"color-red-400\">\n Organization name must be lowercase, and can't contain spaces,periods,or most\n punctuation.\n </FormControlErrorText>\n </FormControlError>\n </FormControl>\n </Box>\n <Button\n variant={'solid'}\n className={`${\n showCreateButton ? 'bg-green-800' : 'bg-gray-300'\n } active:bg-green-600 hover:bg-green-600 mx-2`}\n disabled={showCreateButton ? false : true}\n onPress={() => createOrganization()}\n style={{ backgroundColor: showCreateButton ? '#166534' : '#d1d5db' }}\n >\n {loading && <ButtonSpinner style={{ marginRight: 1 }} />}\n <ButtonText className={`font-bold ${showCreateButton ? 'color-white' : 'color-gray-800'}`}>\n Next\n </ButtonText>\n </Button>\n <Text className=\"py-2 color-gray-800 leading-loose px-2\">\n By continuing, you're agreeing to out{' '}\n <Text color={Colors.blue[900]}>Main Services Agreement, User Terms of Services</Text>, and{' '}\n <Text color={Colors.blue[900]}>Supplemental Terms</Text>\n .Additional disclosures are available in our{' '}\n <Text color={Colors.blue[900]}>Privacy Policy</Text> and{' '}\n <Text color={Colors.blue[900]}>Cookie Policy</Text>.\n </Text>\n </VStack>\n </Center>\n </SafeAreaView>\n );\n};\n\nexport default CreateOrganization;\n"],"names":["data","error","React","Colors"],"mappings":"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"}
|
|
@@ -69,7 +69,7 @@ const InitializeOrganizationChannel = ({
|
|
|
69
69
|
});
|
|
70
70
|
}
|
|
71
71
|
}, [name]);
|
|
72
|
-
return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(Box, { className: "border-t-blue-600 border-t w-[75%]" }), /* @__PURE__ */ React__default.createElement(Center, { className: "flex-1 bg-white" }, /* @__PURE__ */ React__default.createElement(VStack, { space: "sm", className: "px-2" }, /* @__PURE__ */ React__default.createElement(Heading, { className: "px-4 items-center text-center" }, "What's a project your team is working on?"), /* @__PURE__ */ React__default.createElement(Text, { className: "text-center px-2" }, "This could be anything: a project, campaign,event, or the deal your're tring to close."), /* @__PURE__ */ React__default.createElement(Box, null, /* @__PURE__ */ React__default.createElement(FormControl, { className: "mt-3 w-full" }, /* @__PURE__ */ React__default.createElement(Input, { variant: "outline", size: "lg", className: "py-3 border-blue-900 border-t-2" }, /* @__PURE__ */ React__default.createElement(InputField, { maxLength: 80, placeholder: "Ex. Q4 Budget, Website updateg", value: name,
|
|
72
|
+
return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(Box, { className: "border-t-blue-600 border-t w-[75%]" }), /* @__PURE__ */ React__default.createElement(Center, { className: "flex-1 bg-white" }, /* @__PURE__ */ React__default.createElement(VStack, { space: "sm", className: "px-2" }, /* @__PURE__ */ React__default.createElement(Heading, { className: "px-4 items-center text-center" }, "What's a project your team is working on?"), /* @__PURE__ */ React__default.createElement(Text, { className: "text-center px-2" }, "This could be anything: a project, campaign,event, or the deal your're tring to close."), /* @__PURE__ */ React__default.createElement(Box, null, /* @__PURE__ */ React__default.createElement(FormControl, { className: "mt-3 w-full" }, /* @__PURE__ */ React__default.createElement(Input, { variant: "outline", size: "lg", className: "py-3 border-blue-900 border-t-2" }, /* @__PURE__ */ React__default.createElement(InputField, { maxLength: 80, placeholder: "Ex. Q4 Budget, Website updateg", value: name, onChange: (event) => setName(event.nativeEvent.text), "aria-label": "Organization name", accessibilityLabel: "Organization name" })))), /* @__PURE__ */ React__default.createElement(Button, { variant: "solid", className: `${showCreateButton ? "bg-green-800" : "bg-gray-300"} active:bg-green-600 hover:bg-green-600`, disabled: showCreateButton ? false : true, onPress: () => createChannelHandler() }, loading || addDirectChannaleLoading && /* @__PURE__ */ React__default.createElement(ButtonSpinner, { style: {
|
|
73
73
|
marginRight: 1
|
|
74
74
|
} }), /* @__PURE__ */ React__default.createElement(ButtonText, { className: `font-bold ${showCreateButton ? "color-white" : "color-gray-800"}` }, "Next")))));
|
|
75
75
|
};export{InitializeOrganizationChannel as default};//# sourceMappingURL=InitializeOrganizationChannel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InitializeOrganizationChannel.js","sources":["../../../src/screens/Organization/InitializeOrganizationChannel.tsx"],"sourcesContent":["import React, { useState, useEffect, useLayoutEffect, useCallback } from 'react';\nimport { StyleSheet, TouchableOpacity, Dimensions, Platform, Alert } from 'react-native';\nimport {\n Input,\n InputField,\n Text,\n VStack,\n Box,\n FormControl,\n FormControlLabel,\n FormControlLabelText,\n FormControlHelper,\n FormControlHelperText,\n FormControlError,\n FormControlErrorText,\n Button,\n ButtonText,\n ButtonSpinner,\n Center,\n Heading,\n} from '@admin-layout/gluestack-ui-mobile';\nimport { useAddChannelMutation, useAddDirectChannelMutation } from 'common/graphql';\nimport { NavigationRoutes } from '../../constants/routes';\nimport { useSelector, shallowEqual } from 'react-redux';\nimport { userSelector, isUserAuthenticated } from '@adminide-stack/user-auth0-client';\nimport { useFocusEffect, useNavigation } from '@react-navigation/native';\nimport Colors from 'tailwindcss/colors';\nimport { LoadingSpinner } from '../../components';\nconst windowWidth = Dimensions.get('window').width;\nconst windowHeight = Dimensions.get('window').height;\n\nconst InitializeOrganizationChannel = ({ route }: any) => {\n const navigation = useNavigation<any>();\n const user: any = useSelector(userSelector, shallowEqual);\n const [name, setName] = useState<string>('');\n const [channel, setChannel] = useState<any>(null);\n const [description, setDescription] = useState('');\n const [showCreateButton, setShowCreateButton] = useState<boolean>(false);\n const [addDirectChannel, { loading: addDirectChannaleLoading }] = useAddDirectChannelMutation();\n\n const [createChannel, { loading, error }] = useAddChannelMutation({\n onCompleted: (data: any) => {\n if (data?.createChannel) setChannel(data?.createChannel);\n // if (data?.createChannel?.id) {\n // navigation.navigate(NavigationRoutes.InitialChannelOnboarding, {\n // orgName: route?.params?.orgName,\n // channelId: data?.createChannel?.id,\n // title: data?.createChannel?.title,\n // });\n // } else {\n // navigation.navigate(NavigationRoutes.Home, { orgName: route?.params?.orgName });\n // }\n },\n onError: (error: any) => {\n Alert.alert('Channel creation failed');\n },\n });\n\n useFocusEffect(\n React.useCallback(() => {\n // Do something when the screen is focused\n return () => {\n // Do something when the screen is unfocused\n // Useful for cleanup functions\n };\n }, []),\n );\n\n useEffect(() => {\n if (channel && !addDirectChannaleLoading) {\n if (channel?.id) {\n navigation.navigate(NavigationRoutes.InitialChannelOnboarding, {\n orgName: route?.params?.orgName,\n channelId: channel?.id,\n title: channel?.title,\n });\n } else {\n navigation.navigate(NavigationRoutes.Home, { orgName: route?.params?.orgName });\n }\n }\n }, [channel, addDirectChannaleLoading, route]);\n\n useEffect(() => {\n if (name && name.length > 0) setShowCreateButton(true);\n else setShowCreateButton(false);\n }, [name]);\n\n const createChannelHandler = useCallback(() => {\n if (name && name?.length > 0) {\n addDirectChannel({\n variables: {\n receiver: [user.id],\n displayName: 'DIRECT CHANNEL',\n channelOptions: { schemeAdmin: true },\n },\n });\n createChannel({\n variables: {\n name: name,\n description: description,\n },\n });\n }\n }, [name]);\n\n return (\n <>\n <Box className=\"border-t-blue-600 border-t w-[75%]\" />\n <Center className=\"flex-1 bg-white\">\n <VStack space={'sm'} className=\"px-2\">\n <Heading className=\"px-4 items-center text-center\">\n What's a project your team is working on?\n </Heading>\n <Text className=\"text-center px-2\">\n This could be anything: a project, campaign,event, or the deal your're tring to close.\n </Text>\n <Box>\n <FormControl className=\"mt-3 w-full\">\n <Input variant=\"outline\" size=\"lg\" className=\"py-3 border-blue-900 border-t-2\">\n <InputField\n maxLength={80}\n placeholder=\"Ex. Q4 Budget, Website updateg\"\n value={name}\n
|
|
1
|
+
{"version":3,"file":"InitializeOrganizationChannel.js","sources":["../../../src/screens/Organization/InitializeOrganizationChannel.tsx"],"sourcesContent":["import React, { useState, useEffect, useLayoutEffect, useCallback } from 'react';\nimport { StyleSheet, TouchableOpacity, Dimensions, Platform, Alert } from 'react-native';\nimport {\n Input,\n InputField,\n Text,\n VStack,\n Box,\n FormControl,\n FormControlLabel,\n FormControlLabelText,\n FormControlHelper,\n FormControlHelperText,\n FormControlError,\n FormControlErrorText,\n Button,\n ButtonText,\n ButtonSpinner,\n Center,\n Heading,\n} from '@admin-layout/gluestack-ui-mobile';\nimport { useAddChannelMutation, useAddDirectChannelMutation } from 'common/graphql';\nimport { NavigationRoutes } from '../../constants/routes';\nimport { useSelector, shallowEqual } from 'react-redux';\nimport { userSelector, isUserAuthenticated } from '@adminide-stack/user-auth0-client';\nimport { useFocusEffect, useNavigation } from '@react-navigation/native';\nimport Colors from 'tailwindcss/colors';\nimport { LoadingSpinner } from '../../components';\nconst windowWidth = Dimensions.get('window').width;\nconst windowHeight = Dimensions.get('window').height;\n\nconst InitializeOrganizationChannel = ({ route }: any) => {\n const navigation = useNavigation<any>();\n const user: any = useSelector(userSelector, shallowEqual);\n const [name, setName] = useState<string>('');\n const [channel, setChannel] = useState<any>(null);\n const [description, setDescription] = useState('');\n const [showCreateButton, setShowCreateButton] = useState<boolean>(false);\n const [addDirectChannel, { loading: addDirectChannaleLoading }] = useAddDirectChannelMutation();\n\n const [createChannel, { loading, error }] = useAddChannelMutation({\n onCompleted: (data: any) => {\n if (data?.createChannel) setChannel(data?.createChannel);\n // if (data?.createChannel?.id) {\n // navigation.navigate(NavigationRoutes.InitialChannelOnboarding, {\n // orgName: route?.params?.orgName,\n // channelId: data?.createChannel?.id,\n // title: data?.createChannel?.title,\n // });\n // } else {\n // navigation.navigate(NavigationRoutes.Home, { orgName: route?.params?.orgName });\n // }\n },\n onError: (error: any) => {\n Alert.alert('Channel creation failed');\n },\n });\n\n useFocusEffect(\n React.useCallback(() => {\n // Do something when the screen is focused\n return () => {\n // Do something when the screen is unfocused\n // Useful for cleanup functions\n };\n }, []),\n );\n\n useEffect(() => {\n if (channel && !addDirectChannaleLoading) {\n if (channel?.id) {\n navigation.navigate(NavigationRoutes.InitialChannelOnboarding, {\n orgName: route?.params?.orgName,\n channelId: channel?.id,\n title: channel?.title,\n });\n } else {\n navigation.navigate(NavigationRoutes.Home, { orgName: route?.params?.orgName });\n }\n }\n }, [channel, addDirectChannaleLoading, route]);\n\n useEffect(() => {\n if (name && name.length > 0) setShowCreateButton(true);\n else setShowCreateButton(false);\n }, [name]);\n\n const createChannelHandler = useCallback(() => {\n if (name && name?.length > 0) {\n addDirectChannel({\n variables: {\n receiver: [user.id],\n displayName: 'DIRECT CHANNEL',\n channelOptions: { schemeAdmin: true },\n },\n });\n createChannel({\n variables: {\n name: name,\n description: description,\n },\n });\n }\n }, [name]);\n\n return (\n <>\n <Box className=\"border-t-blue-600 border-t w-[75%]\" />\n <Center className=\"flex-1 bg-white\">\n <VStack space={'sm'} className=\"px-2\">\n <Heading className=\"px-4 items-center text-center\">\n What's a project your team is working on?\n </Heading>\n <Text className=\"text-center px-2\">\n This could be anything: a project, campaign,event, or the deal your're tring to close.\n </Text>\n <Box>\n <FormControl className=\"mt-3 w-full\">\n <Input variant=\"outline\" size=\"lg\" className=\"py-3 border-blue-900 border-t-2\">\n <InputField\n maxLength={80}\n placeholder=\"Ex. Q4 Budget, Website updateg\"\n value={name}\n onChange={(event) => setName(event.nativeEvent.text)}\n aria-label=\"Organization name\"\n accessibilityLabel=\"Organization name\"\n />\n </Input>\n </FormControl>\n </Box>\n <Button\n variant={'solid'}\n className={`${\n showCreateButton ? 'bg-green-800' : 'bg-gray-300'\n } active:bg-green-600 hover:bg-green-600`}\n disabled={showCreateButton ? false : true}\n onPress={() => createChannelHandler()}\n >\n {loading || (addDirectChannaleLoading && <ButtonSpinner style={{ marginRight: 1 }} />)}\n <ButtonText className={`font-bold ${showCreateButton ? 'color-white' : 'color-gray-800'}`}>\n Next\n </ButtonText>\n </Button>\n </VStack>\n </Center>\n </>\n );\n};\n\nexport default InitializeOrganizationChannel;\n"],"names":["error","React"],"mappings":"sjBAUoB,UAAA,CAAW,GAAI,CAAA,QAAQ,CAAE,CAAA;AACxB,UAAA,CAAW,GAAI,CAAA,QAAQ,CAAE,CAAA;AAC9C,MAAM,gCAAgC,CAAC;AAAA,EACrC;AACF,CAAW,KAAA;AACT,EAAA,MAAM,aAAa,aAAmB,EAAA;AACtC,EAAM,MAAA,IAAA,GAAY,WAAY,CAAA,YAAA,EAAc,YAAY,CAAA;AACxD,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAI,SAAiB,EAAE,CAAA;AAC3C,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,SAAc,IAAI,CAAA;AAChD,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAI,SAAS,EAAE,CAAA;AACjD,EAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAI,SAAkB,KAAK,CAAA;AACvE,EAAA,MAAM,CAAC,gBAAkB,EAAA;AAAA,IACvB,OAAS,EAAA;AAAA,GACV,IAAI,2BAA4B,EAAA;AACjC,EAAA,MAAM,CAAC,aAAe,EAAA;AAAA,IACpB,OAAA;AAAA,IACA;AAAA,GACD,IAAI,qBAAsB,CAAA;AAAA,IACzB,WAAA,EAAa,CAAC,IAAc,KAAA;AAC1B,MAAA,IAAI,IAAM,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAA,aAAA;AAAe,QAAA,UAAA,CAAW,6BAAM,aAAa,CAAA;AAAA,KAUzD;AAAA,IACA,OAAA,EAAS,CAACA,MAAe,KAAA;AACvB,MAAA,KAAA,CAAM,MAAM,yBAAyB,CAAA;AAAA;AACvC,GACD,CAAA;AACD,EAAe,cAAA,CAAAC,cAAA,CAAM,YAAY,MAAM;AAErC,IAAA,OAAO,MAAM;AAAA,KAGb;AAAA,GACF,EAAG,EAAE,CAAC,CAAA;AACN,EAAA,SAAA,CAAU,MAAM;AAnDlB,IAAA,IAAA,EAAA,EAAA,EAAA;AAoDI,IAAI,IAAA,OAAA,IAAW,CAAC,wBAA0B,EAAA;AACxC,MAAA,IAAI,mCAAS,EAAI,EAAA;AACf,QAAW,UAAA,CAAA,QAAA,CAAS,iBAAiB,wBAA0B,EAAA;AAAA,UAC7D,OAAA,EAAA,CAAS,EAAO,GAAA,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAA,MAAA,KAAP,IAAe,GAAA,MAAA,GAAA,EAAA,CAAA,OAAA;AAAA,UACxB,WAAW,OAAS,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAA,EAAA;AAAA,UACpB,OAAO,OAAS,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAA;AAAA,SACjB,CAAA;AAAA,OACI,MAAA;AACL,QAAW,UAAA,CAAA,QAAA,CAAS,iBAAiB,IAAM,EAAA;AAAA,UACzC,OAAA,EAAA,CAAS,EAAO,GAAA,KAAA,IAAA,IAAA,GAAA,MAAA,GAAA,KAAA,CAAA,MAAA,KAAP,IAAe,GAAA,MAAA,GAAA,EAAA,CAAA;AAAA,SACzB,CAAA;AAAA;AACH;AACF,GACC,EAAA,CAAC,OAAS,EAAA,wBAAA,EAA0B,KAAK,CAAC,CAAA;AAC7C,EAAA,SAAA,CAAU,MAAM;AACd,IAAI,IAAA,IAAA,IAAQ,KAAK,MAAS,GAAA,CAAA;AAAG,MAAA,mBAAA,CAAoB,IAAI,CAAA;AAAA;AAAO,MAAA,mBAAA,CAAoB,KAAK,CAAA;AAAA,GACvF,EAAG,CAAC,IAAI,CAAC,CAAA;AACT,EAAM,MAAA,oBAAA,GAAuB,YAAY,MAAM;AAC7C,IAAI,IAAA,IAAA,IAAA,CAAQ,IAAM,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAA,MAAA,IAAS,CAAG,EAAA;AAC5B,MAAiB,gBAAA,CAAA;AAAA,QACf,SAAW,EAAA;AAAA,UACT,QAAA,EAAU,CAAC,IAAA,CAAK,EAAE,CAAA;AAAA,UAClB,WAAa,EAAA,gBAAA;AAAA,UACb,cAAgB,EAAA;AAAA,YACd,WAAa,EAAA;AAAA;AACf;AACF,OACD,CAAA;AACD,MAAc,aAAA,CAAA;AAAA,QACZ,SAAW,EAAA;AAAA,UACT,IAAA;AAAA,UACA;AAAA;AACF,OACD,CAAA;AAAA;AACH,GACF,EAAG,CAAC,IAAI,CAAC,CAAA;AACT,EAAA,mGACWA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAI,WAAU,oCAAqC,EAAA,CAAA,+CACnD,MAAO,EAAA,EAAA,SAAA,EAAU,iBACd,EAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,UAAO,KAAO,EAAA,IAAA,EAAM,WAAU,MAC3B,EAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,WAAQ,SAAU,EAAA,+BAAA,EAAA,EAAgC,2CAEnD,CAAA,+CACC,IAAK,EAAA,EAAA,SAAA,EAAU,sBAAmB,wFAEnC,CAAA,+CACC,GACG,EAAA,IAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,eAAY,SAAU,EAAA,aAAA,EAAA,+CAClB,KAAM,EAAA,EAAA,OAAA,EAAQ,WAAU,IAAK,EAAA,IAAA,EAAK,WAAU,iCACzC,EAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,UAAW,EAAA,EAAA,SAAA,EAAW,IAAI,WAAY,EAAA,gCAAA,EAAiC,OAAO,IAAM,EAAA,QAAA,EAAU,WAAS,OAAQ,CAAA,KAAA,CAAM,WAAY,CAAA,IAAI,GAAG,YAAW,EAAA,mBAAA,EAAoB,oBAAmB,mBAAoB,EAAA,CACnN,CACJ,CACJ,CAAA,kBACCA,cAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAO,SAAS,OAAS,EAAA,SAAA,EAAW,GAAG,gBAAmB,GAAA,cAAA,GAAiB,wDAAwD,QAAU,EAAA,gBAAA,GAAmB,QAAQ,IAAM,EAAA,OAAA,EAAS,MAAM,oBAAqB,EAAA,EAAA,EAC9M,WAAW,wBAA4B,oBAAAA,cAAA,CAAA,aAAA,CAAC,iBAAc,KAAO,EAAA;AAAA,IAC1E,WAAa,EAAA;AAAA,GACZ,EAAA,CAAA,kBACYA,cAAA,CAAA,aAAA,CAAA,UAAA,EAAA,EAAW,SAAW,EAAA,CAAA,UAAA,EAAa,gBAAmB,GAAA,aAAA,GAAgB,gBAAoB,CAAA,CAAA,EAAA,EAAA,MAE3F,CACJ,CACJ,CACJ,CACJ,CAAA;AACR"}
|
|
@@ -64,5 +64,5 @@ const AddPeopleByEmail = ({
|
|
|
64
64
|
} }, /* @__PURE__ */ React__default.createElement(VStack, { space: "lg", className: "py-5 flex-1 justify-between" }, /* @__PURE__ */ React__default.createElement(Box, { className: "text-center justify-center rounded-full" }, /* @__PURE__ */ React__default.createElement(Button, { className: "rounded-full bg-green-100", size: "lg" }, /* @__PURE__ */ React__default.createElement(ButtonIcon, { color: "#14532d", as: CheckIcon }))), /* @__PURE__ */ React__default.createElement(Heading, { className: "text-center" }, "Invitation sent"), /* @__PURE__ */ React__default.createElement(HStack, { className: "flex-1 px-4 pr-10", space: "sm" }, /* @__PURE__ */ React__default.createElement(Box, null, /* @__PURE__ */ React__default.createElement(AntDesign, { color: "black", name: "adduser", size: 30 })), /* @__PURE__ */ React__default.createElement(Box, null, /* @__PURE__ */ React__default.createElement(Text, { color: colors.black, className: "font-bold" }, email), /* @__PURE__ */ React__default.createElement(Text, null, "Invited as a member of ", orgName, ".They'll be able to receive and reply to messages by email untill they join."))), /* @__PURE__ */ React__default.createElement(Box, { className: "px-5" }, /* @__PURE__ */ React__default.createElement(Button, { onPress: () => {
|
|
65
65
|
setEmail("");
|
|
66
66
|
navigation.goBack();
|
|
67
|
-
}, className: "bg-green-900 rounded-lg active:bg-green-600 hover:bg-green-600" }, /* @__PURE__ */ React__default.createElement(ButtonText, { className: "font-bold text-[15]" }, "Done"))))) : /* @__PURE__ */ React__default.createElement(Input, { variant: "underlined", className: " rounded-lg", size: "xl" }, /* @__PURE__ */ React__default.createElement(InputField, { type: "text", size: "xl", autoCapitalize: "none", autoCorrect: false, placeholderTextColor: "#404040", value: email, placeholder: "name@example.com",
|
|
67
|
+
}, className: "bg-green-900 rounded-lg active:bg-green-600 hover:bg-green-600" }, /* @__PURE__ */ React__default.createElement(ButtonText, { className: "font-bold text-[15]" }, "Done"))))) : /* @__PURE__ */ React__default.createElement(Input, { variant: "underlined", className: " rounded-lg", size: "xl" }, /* @__PURE__ */ React__default.createElement(InputField, { type: "text", size: "xl", autoCapitalize: "none", autoCorrect: false, placeholderTextColor: "#404040", value: email, placeholder: "name@example.com", onChange: (event) => setEmail(event.nativeEvent.text), textContentType: "emailAddress", keyboardType: "email-address", className: "px-3 text-[14] transform-none" })));
|
|
68
68
|
};export{AddPeopleByEmail as default};//# sourceMappingURL=AddByEmail.js.map
|