@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.
@@ -126,7 +126,7 @@ const SlackInput = ({
126
126
  value: text,
127
127
  onKeyPress,
128
128
  ref: inputRef,
129
- onChangeText: handleTextChange,
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 = (newValue) => {
42
- var _a;
43
- const formattedValue = (_a = newValue == null ? void 0 : newValue.replace(/ /g, "-")) == null ? void 0 : _a.toLowerCase();
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, onChangeText: 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, onChangeText: (v) => setDescription(v), autoCapitalize: "none", autoCorrect: false }))))));
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, onChangeText: (v) => setName(v) }), /* @__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, onChangeText: (v) => setDescription(v) })))))));
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, onChangeText: searchChannels, 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 }))));
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, onChangeText: (v) => setName(v), "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: {
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, onChangeText: (v) => setName(v), "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: {
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 onChangeText={(v) => setName(v)}\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":"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"}
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":"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"}
@@ -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", onChangeText: (v) => setEmail(v), textContentType: "emailAddress", keyboardType: "email-address", className: "px-3 text-[14] transform-none" })));
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