[NEW] UiKit Beta (#1497)
This commit is contained in:
parent
dc0cabf1d5
commit
b87472f10b
|
@ -0,0 +1,11 @@
|
|||
export default {
|
||||
window: () => null
|
||||
};
|
||||
|
||||
export const uiKitMessage = () => () => null;
|
||||
|
||||
export const uiKitModal = () => () => null;
|
||||
|
||||
export class UiKitParserMessage {}
|
||||
|
||||
export class UiKitParserModal {}
|
File diff suppressed because it is too large
Load Diff
|
@ -1,13 +1,12 @@
|
|||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { StyleSheet, Text } from 'react-native';
|
||||
import { RectButton } from 'react-native-gesture-handler';
|
||||
import Touchable from 'react-native-platform-touchable';
|
||||
|
||||
import { themes } from '../../constants/colors';
|
||||
import sharedStyles from '../../views/Styles';
|
||||
import ActivityIndicator from '../ActivityIndicator';
|
||||
|
||||
/* eslint-disable react-native/no-unused-styles */
|
||||
const styles = StyleSheet.create({
|
||||
container: {
|
||||
paddingHorizontal: 15,
|
||||
|
@ -48,9 +47,9 @@ export default class Button extends React.PureComponent {
|
|||
} = this.props;
|
||||
const isPrimary = type === 'primary';
|
||||
return (
|
||||
<RectButton
|
||||
<Touchable
|
||||
onPress={onPress}
|
||||
enabled={!(disabled || loading)}
|
||||
disabled={disabled || loading}
|
||||
style={[
|
||||
styles.container,
|
||||
backgroundColor
|
||||
|
@ -76,7 +75,7 @@ export default class Button extends React.PureComponent {
|
|||
</Text>
|
||||
)
|
||||
}
|
||||
</RectButton>
|
||||
</Touchable>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@ import DocumentPicker from 'react-native-document-picker';
|
|||
import ActionSheet from 'react-native-action-sheet';
|
||||
import { Q } from '@nozbe/watermelondb';
|
||||
|
||||
import { generateTriggerId } from '../../lib/methods/actions';
|
||||
import TextInput from '../../presentation/TextInput';
|
||||
import { userTyping as userTypingAction } from '../../actions/room';
|
||||
import RocketChat from '../../lib/rocketchat';
|
||||
|
@ -104,7 +105,8 @@ class MessageBox extends Component {
|
|||
isVisible: false
|
||||
},
|
||||
commandPreview: [],
|
||||
showCommandPreview: false
|
||||
showCommandPreview: false,
|
||||
command: {}
|
||||
};
|
||||
this.text = '';
|
||||
this.focused = false;
|
||||
|
@ -280,7 +282,7 @@ class MessageBox extends Component {
|
|||
try {
|
||||
const command = await commandsCollection.find(name);
|
||||
if (command.providesPreview) {
|
||||
return this.setCommandPreview(name, params);
|
||||
return this.setCommandPreview(command, name, params);
|
||||
}
|
||||
} catch (e) {
|
||||
console.log('Slash command not found');
|
||||
|
@ -339,16 +341,19 @@ class MessageBox extends Component {
|
|||
}
|
||||
|
||||
onPressCommandPreview = (item) => {
|
||||
const { command } = this.state;
|
||||
const { rid } = this.props;
|
||||
const { text } = this;
|
||||
const command = text.substr(0, text.indexOf(' ')).slice(1);
|
||||
const name = text.substr(0, text.indexOf(' ')).slice(1);
|
||||
const params = text.substr(text.indexOf(' ') + 1) || 'params';
|
||||
this.setState({ commandPreview: [], showCommandPreview: false });
|
||||
this.setState({ commandPreview: [], showCommandPreview: false, command: {} });
|
||||
this.stopTrackingMention();
|
||||
this.clearInput();
|
||||
this.handleTyping(false);
|
||||
try {
|
||||
RocketChat.executeCommandPreview(command, params, rid, item);
|
||||
const { appId } = command;
|
||||
const triggerId = generateTriggerId(appId);
|
||||
RocketChat.executeCommandPreview(name, params, rid, item, triggerId);
|
||||
} catch (e) {
|
||||
log(e);
|
||||
}
|
||||
|
@ -452,13 +457,13 @@ class MessageBox extends Component {
|
|||
}, 1000);
|
||||
}
|
||||
|
||||
setCommandPreview = async(command, params) => {
|
||||
setCommandPreview = async(command, name, params) => {
|
||||
const { rid } = this.props;
|
||||
try {
|
||||
const { preview } = await RocketChat.getCommandPreview(command, rid, params);
|
||||
this.setState({ commandPreview: preview.items, showCommandPreview: true });
|
||||
const { preview } = await RocketChat.getCommandPreview(name, rid, params);
|
||||
this.setState({ commandPreview: preview.items, showCommandPreview: true, command });
|
||||
} catch (e) {
|
||||
this.setState({ commandPreview: [], showCommandPreview: true });
|
||||
this.setState({ commandPreview: [], showCommandPreview: true, command: {} });
|
||||
log(e);
|
||||
}
|
||||
}
|
||||
|
@ -669,7 +674,9 @@ class MessageBox extends Component {
|
|||
if (slashCommand.length > 0) {
|
||||
try {
|
||||
const messageWithoutCommand = message.replace(/([^\s]+)/, '').trim();
|
||||
RocketChat.runSlashCommand(command, roomId, messageWithoutCommand);
|
||||
const [{ appId }] = slashCommand;
|
||||
const triggerId = generateTriggerId(appId);
|
||||
RocketChat.runSlashCommand(command, roomId, messageWithoutCommand, triggerId);
|
||||
} catch (e) {
|
||||
log(e);
|
||||
}
|
||||
|
|
|
@ -7,6 +7,7 @@ import sharedStyles from '../views/Styles';
|
|||
import TextInput from '../presentation/TextInput';
|
||||
import { themes } from '../constants/colors';
|
||||
import { CustomIcon } from '../lib/Icons';
|
||||
import ActivityIndicator from './ActivityIndicator';
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
error: {
|
||||
|
@ -56,6 +57,7 @@ export default class RCTextInput extends React.PureComponent {
|
|||
static propTypes = {
|
||||
label: PropTypes.string,
|
||||
error: PropTypes.object,
|
||||
loading: PropTypes.bool,
|
||||
secureTextEntry: PropTypes.bool,
|
||||
containerStyle: PropTypes.any,
|
||||
inputStyle: PropTypes.object,
|
||||
|
@ -102,6 +104,11 @@ export default class RCTextInput extends React.PureComponent {
|
|||
);
|
||||
}
|
||||
|
||||
get loading() {
|
||||
const { theme } = this.props;
|
||||
return <ActivityIndicator style={[styles.iconContainer, styles.iconRight, { color: themes[theme].bodyText }]} />;
|
||||
}
|
||||
|
||||
tooglePassword = () => {
|
||||
this.setState(prevState => ({ showPassword: !prevState.showPassword }));
|
||||
}
|
||||
|
@ -109,7 +116,7 @@ export default class RCTextInput extends React.PureComponent {
|
|||
render() {
|
||||
const { showPassword } = this.state;
|
||||
const {
|
||||
label, error, secureTextEntry, containerStyle, inputRef, iconLeft, inputStyle, testID, placeholder, theme, ...inputProps
|
||||
label, error, loading, secureTextEntry, containerStyle, inputRef, iconLeft, inputStyle, testID, placeholder, theme, ...inputProps
|
||||
} = this.props;
|
||||
const { dangerColor } = themes[theme];
|
||||
return (
|
||||
|
@ -131,10 +138,6 @@ export default class RCTextInput extends React.PureComponent {
|
|||
<TextInput
|
||||
style={[
|
||||
styles.input,
|
||||
error.error && {
|
||||
color: dangerColor,
|
||||
borderColor: dangerColor
|
||||
},
|
||||
iconLeft && styles.inputIconLeft,
|
||||
secureTextEntry && styles.inputIconRight,
|
||||
{
|
||||
|
@ -142,6 +145,10 @@ export default class RCTextInput extends React.PureComponent {
|
|||
borderColor: themes[theme].separatorColor,
|
||||
color: themes[theme].titleText
|
||||
},
|
||||
error.error && {
|
||||
color: dangerColor,
|
||||
borderColor: dangerColor
|
||||
},
|
||||
inputStyle
|
||||
]}
|
||||
ref={inputRef}
|
||||
|
@ -158,8 +165,9 @@ export default class RCTextInput extends React.PureComponent {
|
|||
/>
|
||||
{iconLeft ? this.iconLeft : null}
|
||||
{secureTextEntry ? this.iconPassword : null}
|
||||
{loading ? this.loading : null}
|
||||
</View>
|
||||
{error.error ? <Text style={[styles.error, { color: dangerColor }]}>{error.reason}</Text> : null}
|
||||
{error && error.reason ? <Text style={[styles.error, { color: dangerColor }]}>{error.reason}</Text> : null}
|
||||
</View>
|
||||
);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
import React, { useState } from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { BLOCK_CONTEXT } from '@rocket.chat/ui-kit';
|
||||
|
||||
import Button from '../Button';
|
||||
import I18n from '../../i18n';
|
||||
|
||||
export const Actions = ({
|
||||
blockId, appId, elements, parser, theme
|
||||
}) => {
|
||||
const [showMoreVisible, setShowMoreVisible] = useState(() => elements.length > 5);
|
||||
const renderedElements = showMoreVisible ? elements.slice(0, 5) : elements;
|
||||
|
||||
const Elements = () => renderedElements
|
||||
.map(element => parser.renderActions({ blockId, appId, ...element }, BLOCK_CONTEXT.ACTION, parser));
|
||||
|
||||
return (
|
||||
<>
|
||||
<Elements />
|
||||
{showMoreVisible && (<Button theme={theme} title={I18n.t('Show_more')} onPress={() => setShowMoreVisible(false)} />)}
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
Actions.propTypes = {
|
||||
blockId: PropTypes.string,
|
||||
appId: PropTypes.string,
|
||||
elements: PropTypes.array,
|
||||
parser: PropTypes.object,
|
||||
theme: PropTypes.string
|
||||
};
|
|
@ -0,0 +1,22 @@
|
|||
import React from 'react';
|
||||
import { View, StyleSheet } from 'react-native';
|
||||
import PropTypes from 'prop-types';
|
||||
import { BLOCK_CONTEXT } from '@rocket.chat/ui-kit';
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
container: {
|
||||
minHeight: 36,
|
||||
alignItems: 'center',
|
||||
flexDirection: 'row'
|
||||
}
|
||||
});
|
||||
|
||||
export const Context = ({ elements, parser }) => (
|
||||
<View style={styles.container}>
|
||||
{elements.map(element => parser.renderContext(element, BLOCK_CONTEXT.CONTEXT, parser))}
|
||||
</View>
|
||||
);
|
||||
Context.propTypes = {
|
||||
elements: PropTypes.array,
|
||||
parser: PropTypes.object
|
||||
};
|
|
@ -0,0 +1,117 @@
|
|||
import React, { useState } from 'react';
|
||||
import { View, StyleSheet, Text } from 'react-native';
|
||||
import PropTypes from 'prop-types';
|
||||
import DateTimePicker from '@react-native-community/datetimepicker';
|
||||
import Touchable from 'react-native-platform-touchable';
|
||||
import { BLOCK_CONTEXT } from '@rocket.chat/ui-kit';
|
||||
import moment from 'moment';
|
||||
|
||||
import Button from '../Button';
|
||||
import { textParser } from './utils';
|
||||
import { themes } from '../../constants/colors';
|
||||
|
||||
import sharedStyles from '../../views/Styles';
|
||||
import { CustomIcon } from '../../lib/Icons';
|
||||
import { isAndroid } from '../../utils/deviceInfo';
|
||||
import ActivityIndicator from '../ActivityIndicator';
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
input: {
|
||||
height: 48,
|
||||
paddingLeft: 16,
|
||||
borderWidth: StyleSheet.hairlineWidth,
|
||||
borderRadius: 2,
|
||||
alignItems: 'center',
|
||||
flexDirection: 'row'
|
||||
},
|
||||
inputText: {
|
||||
...sharedStyles.textRegular,
|
||||
fontSize: 14
|
||||
},
|
||||
icon: {
|
||||
right: 16,
|
||||
position: 'absolute'
|
||||
},
|
||||
loading: {
|
||||
padding: 0
|
||||
}
|
||||
});
|
||||
|
||||
export const DatePicker = ({
|
||||
element, language, action, context, theme, loading, value, error
|
||||
}) => {
|
||||
const [show, onShow] = useState(false);
|
||||
const { initial_date, placeholder } = element;
|
||||
const [currentDate, onChangeDate] = useState(new Date(initial_date || value));
|
||||
|
||||
const onChange = ({ nativeEvent: { timestamp } }, date) => {
|
||||
const newDate = date || new Date(timestamp);
|
||||
onChangeDate(newDate);
|
||||
action({ value: moment(newDate).format('YYYY-MM-DD') });
|
||||
if (isAndroid) {
|
||||
onShow(false);
|
||||
}
|
||||
};
|
||||
|
||||
let button = (
|
||||
<Button
|
||||
title={textParser([placeholder])}
|
||||
onPress={() => onShow(!show)}
|
||||
loading={loading}
|
||||
theme={theme}
|
||||
/>
|
||||
);
|
||||
|
||||
if (context === BLOCK_CONTEXT.FORM) {
|
||||
button = (
|
||||
<Touchable
|
||||
onPress={() => onShow(!show)}
|
||||
style={{ backgroundColor: themes[theme].backgroundColor }}
|
||||
background={Touchable.Ripple(themes[theme].bannerBackground)}
|
||||
>
|
||||
<View style={[styles.input, { borderColor: error ? themes[theme].dangerColor : themes[theme].separatorColor }]}>
|
||||
<Text
|
||||
style={[
|
||||
styles.inputText,
|
||||
{ color: error ? themes[theme].dangerColor : themes[theme].titleText }
|
||||
]}
|
||||
>
|
||||
{currentDate.toLocaleDateString(language)}
|
||||
</Text>
|
||||
{
|
||||
loading
|
||||
? <ActivityIndicator style={[styles.loading, styles.icon]} />
|
||||
: <CustomIcon name='calendar' size={20} color={error ? themes[theme].dangerColor : themes[theme].auxiliaryText} style={styles.icon} />
|
||||
}
|
||||
</View>
|
||||
</Touchable>
|
||||
);
|
||||
}
|
||||
|
||||
const content = show ? (
|
||||
<DateTimePicker
|
||||
mode='date'
|
||||
display='default'
|
||||
value={currentDate}
|
||||
onChange={onChange}
|
||||
textColor={themes[theme].titleText}
|
||||
/>
|
||||
) : null;
|
||||
|
||||
return (
|
||||
<>
|
||||
{button}
|
||||
{content}
|
||||
</>
|
||||
);
|
||||
};
|
||||
DatePicker.propTypes = {
|
||||
element: PropTypes.object,
|
||||
language: PropTypes.string,
|
||||
action: PropTypes.func,
|
||||
context: PropTypes.number,
|
||||
loading: PropTypes.bool,
|
||||
theme: PropTypes.string,
|
||||
value: PropTypes.string,
|
||||
error: PropTypes.string
|
||||
};
|
|
@ -0,0 +1,18 @@
|
|||
import React from 'react';
|
||||
import { StyleSheet } from 'react-native';
|
||||
import PropTypes from 'prop-types';
|
||||
|
||||
import Separator from '../Separator';
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
separator: {
|
||||
width: '100%',
|
||||
alignSelf: 'center',
|
||||
marginBottom: 16
|
||||
}
|
||||
});
|
||||
|
||||
export const Divider = ({ theme }) => <Separator style={styles.separator} theme={theme} />;
|
||||
Divider.propTypes = {
|
||||
theme: PropTypes.string
|
||||
};
|
|
@ -0,0 +1,61 @@
|
|||
import React from 'react';
|
||||
import { View, StyleSheet } from 'react-native';
|
||||
import FastImage from 'react-native-fast-image';
|
||||
import PropTypes from 'prop-types';
|
||||
import { BLOCK_CONTEXT } from '@rocket.chat/ui-kit';
|
||||
|
||||
import ImageContainer from '../message/Image';
|
||||
import Navigation from '../../lib/Navigation';
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
image: {
|
||||
borderRadius: 2
|
||||
},
|
||||
mediaContext: {
|
||||
marginRight: 8
|
||||
}
|
||||
});
|
||||
|
||||
const ThumbContext = args => <View style={styles.mediaContext}><Thumb size={20} {...args} /></View>;
|
||||
|
||||
export const Thumb = ({ element, size = 88 }) => (
|
||||
<FastImage
|
||||
style={[{ width: size, height: size }, styles.image]}
|
||||
source={{ uri: element.imageUrl }}
|
||||
/>
|
||||
);
|
||||
Thumb.propTypes = {
|
||||
element: PropTypes.object,
|
||||
size: PropTypes.number
|
||||
};
|
||||
|
||||
export const Media = ({ element, theme }) => {
|
||||
const showAttachment = attachment => Navigation.navigate('AttachmentView', { attachment });
|
||||
const { imageUrl } = element;
|
||||
|
||||
return (
|
||||
<ImageContainer
|
||||
file={{ image_url: imageUrl }}
|
||||
imageUrl={imageUrl}
|
||||
showAttachment={showAttachment}
|
||||
theme={theme}
|
||||
/>
|
||||
);
|
||||
};
|
||||
Media.propTypes = {
|
||||
element: PropTypes.object,
|
||||
theme: PropTypes.string
|
||||
};
|
||||
|
||||
const genericImage = (element, context, theme) => {
|
||||
switch (context) {
|
||||
case BLOCK_CONTEXT.SECTION:
|
||||
return <Thumb element={element} />;
|
||||
case BLOCK_CONTEXT.CONTEXT:
|
||||
return <ThumbContext element={element} />;
|
||||
default:
|
||||
return <Media element={element} theme={theme} />;
|
||||
}
|
||||
};
|
||||
|
||||
export const Image = ({ element, context, theme }) => genericImage(element, context, theme);
|
|
@ -0,0 +1,55 @@
|
|||
import React from 'react';
|
||||
import { StyleSheet, Text, View } from 'react-native';
|
||||
import PropTypes from 'prop-types';
|
||||
import { BLOCK_CONTEXT } from '@rocket.chat/ui-kit';
|
||||
|
||||
import sharedStyles from '../../views/Styles';
|
||||
import { themes } from '../../constants/colors';
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
container: {
|
||||
marginBottom: 16
|
||||
},
|
||||
label: {
|
||||
fontSize: 14,
|
||||
marginVertical: 10,
|
||||
...sharedStyles.textSemibold
|
||||
},
|
||||
description: {
|
||||
marginBottom: 10,
|
||||
fontSize: 15,
|
||||
...sharedStyles.textRegular
|
||||
},
|
||||
error: {
|
||||
marginTop: 8,
|
||||
fontSize: 14,
|
||||
...sharedStyles.textRegular,
|
||||
...sharedStyles.textAlignCenter
|
||||
},
|
||||
hint: {
|
||||
fontSize: 14,
|
||||
...sharedStyles.textRegular
|
||||
}
|
||||
});
|
||||
|
||||
export const Input = ({
|
||||
element, parser, label, description, error, hint, theme
|
||||
}) => (
|
||||
<View style={styles.container}>
|
||||
{label ? <Text style={[styles.label, { color: error ? themes[theme].dangerColor : themes[theme].titleText }]}>{label}</Text> : null}
|
||||
{description ? <Text style={[styles.description, { color: themes[theme].auxiliaryText }]}>{description}</Text> : null}
|
||||
{parser.renderInputs({ ...element }, BLOCK_CONTEXT.FORM, parser)}
|
||||
{error ? <Text style={[styles.error, { color: themes[theme].dangerColor }]}>{error}</Text> : null}
|
||||
{hint ? <Text style={[styles.hint, { color: themes[theme].auxiliaryText }]}>{hint}</Text> : null}
|
||||
</View>
|
||||
);
|
||||
|
||||
Input.propTypes = {
|
||||
element: PropTypes.object,
|
||||
parser: PropTypes.object,
|
||||
label: PropTypes.string,
|
||||
description: PropTypes.string,
|
||||
error: PropTypes.string,
|
||||
hint: PropTypes.string,
|
||||
theme: PropTypes.string
|
||||
};
|
|
@ -0,0 +1,27 @@
|
|||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
|
||||
import { UiKitMessage, UiKitModal } from './index';
|
||||
import { KitContext } from './utils';
|
||||
|
||||
export const messageBlockWithContext = context => props => (
|
||||
<KitContext.Provider value={context}>
|
||||
<MessageBlock {...props} />
|
||||
</KitContext.Provider>
|
||||
);
|
||||
|
||||
const MessageBlock = ({ blocks }) => UiKitMessage(blocks);
|
||||
MessageBlock.propTypes = {
|
||||
blocks: PropTypes.any
|
||||
};
|
||||
|
||||
export const modalBlockWithContext = context => data => (
|
||||
<KitContext.Provider value={{ ...context, ...data }}>
|
||||
<ModalBlock {...data} />
|
||||
</KitContext.Provider>
|
||||
);
|
||||
|
||||
const ModalBlock = ({ blocks }) => UiKitModal(blocks);
|
||||
ModalBlock.propTypes = {
|
||||
blocks: PropTypes.any
|
||||
};
|
|
@ -0,0 +1,45 @@
|
|||
import React from 'react';
|
||||
import { Text, View, Image } from 'react-native';
|
||||
import PropTypes from 'prop-types';
|
||||
import Touchable from 'react-native-platform-touchable';
|
||||
|
||||
import { themes } from '../../../constants/colors';
|
||||
import { textParser } from '../utils';
|
||||
import { CustomIcon } from '../../../lib/Icons';
|
||||
|
||||
import styles from './styles';
|
||||
|
||||
const keyExtractor = item => item.value.toString();
|
||||
|
||||
const Chip = ({ item, onSelect, theme }) => (
|
||||
<Touchable
|
||||
key={item.value}
|
||||
onPress={() => onSelect(item)}
|
||||
style={[styles.chip, { backgroundColor: themes[theme].auxiliaryBackground }]}
|
||||
background={Touchable.Ripple(themes[theme].bannerBackground)}
|
||||
>
|
||||
<>
|
||||
{item.imageUrl ? <Image style={styles.chipImage} source={{ uri: item.imageUrl }} /> : null}
|
||||
<Text style={[styles.chipText, { color: themes[theme].titleText }]}>{textParser([item.text])}</Text>
|
||||
<CustomIcon name='cross' size={16} color={themes[theme].auxiliaryText} />
|
||||
</>
|
||||
</Touchable>
|
||||
);
|
||||
Chip.propTypes = {
|
||||
item: PropTypes.object,
|
||||
onSelect: PropTypes.func,
|
||||
theme: PropTypes.string
|
||||
};
|
||||
|
||||
const Chips = ({ items, onSelect, theme }) => (
|
||||
<View style={styles.chips}>
|
||||
{items.map(item => <Chip key={keyExtractor(item)} item={item} onSelect={onSelect} theme={theme} />)}
|
||||
</View>
|
||||
);
|
||||
Chips.propTypes = {
|
||||
items: PropTypes.array,
|
||||
onSelect: PropTypes.func,
|
||||
theme: PropTypes.string
|
||||
};
|
||||
|
||||
export default Chips;
|
|
@ -0,0 +1,36 @@
|
|||
import React from 'react';
|
||||
import { View } from 'react-native';
|
||||
import PropTypes from 'prop-types';
|
||||
import Touchable from 'react-native-platform-touchable';
|
||||
|
||||
import { CustomIcon } from '../../../lib/Icons';
|
||||
import { themes } from '../../../constants/colors';
|
||||
import ActivityIndicator from '../../ActivityIndicator';
|
||||
import styles from './styles';
|
||||
|
||||
const Input = ({
|
||||
children, open, theme, loading
|
||||
}) => (
|
||||
<Touchable
|
||||
onPress={() => open(true)}
|
||||
style={{ backgroundColor: themes[theme].backgroundColor }}
|
||||
background={Touchable.Ripple(themes[theme].bannerBackground)}
|
||||
>
|
||||
<View style={[styles.input, { borderColor: themes[theme].separatorColor }]}>
|
||||
{children}
|
||||
{
|
||||
loading
|
||||
? <ActivityIndicator style={[styles.loading, styles.icon]} />
|
||||
: <CustomIcon name='arrow-down' size={22} color={themes[theme].auxiliaryText} style={styles.icon} />
|
||||
}
|
||||
</View>
|
||||
</Touchable>
|
||||
);
|
||||
Input.propTypes = {
|
||||
children: PropTypes.node,
|
||||
open: PropTypes.func,
|
||||
theme: PropTypes.string,
|
||||
loading: PropTypes.bool
|
||||
};
|
||||
|
||||
export default Input;
|
|
@ -0,0 +1,61 @@
|
|||
import React from 'react';
|
||||
import { Text, FlatList } from 'react-native';
|
||||
import PropTypes from 'prop-types';
|
||||
import Touchable from 'react-native-platform-touchable';
|
||||
|
||||
import Separator from '../../Separator';
|
||||
import Check from '../../Check';
|
||||
|
||||
import { textParser } from '../utils';
|
||||
import { themes } from '../../../constants/colors';
|
||||
|
||||
import styles from './styles';
|
||||
|
||||
const keyExtractor = item => item.value.toString();
|
||||
|
||||
// RectButton doesn't work on modal (Android)
|
||||
const Item = ({
|
||||
item, selected, onSelect, theme
|
||||
}) => (
|
||||
<Touchable
|
||||
key={item}
|
||||
onPress={() => onSelect(item)}
|
||||
style={[
|
||||
styles.item,
|
||||
{ backgroundColor: themes[theme].backgroundColor }
|
||||
]}
|
||||
>
|
||||
<>
|
||||
<Text style={{ color: themes[theme].titleText }}>{textParser([item.text])}</Text>
|
||||
{selected ? <Check theme={theme} /> : null}
|
||||
</>
|
||||
</Touchable>
|
||||
);
|
||||
Item.propTypes = {
|
||||
item: PropTypes.object,
|
||||
selected: PropTypes.number,
|
||||
onSelect: PropTypes.func,
|
||||
theme: PropTypes.string
|
||||
};
|
||||
|
||||
const Items = ({
|
||||
items, selected, onSelect, theme
|
||||
}) => (
|
||||
<FlatList
|
||||
data={items}
|
||||
style={[styles.items, { backgroundColor: themes[theme].backgroundColor }]}
|
||||
contentContainerStyle={{ backgroundColor: themes[theme].backgroundColor }}
|
||||
keyboardShouldPersistTaps='always'
|
||||
ItemSeparatorComponent={() => <Separator theme={theme} />}
|
||||
keyExtractor={keyExtractor}
|
||||
renderItem={({ item }) => <Item item={item} onSelect={onSelect} theme={theme} selected={selected.find(s => s === item.value)} />}
|
||||
/>
|
||||
);
|
||||
Items.propTypes = {
|
||||
items: PropTypes.array,
|
||||
selected: PropTypes.array,
|
||||
onSelect: PropTypes.func,
|
||||
theme: PropTypes.string
|
||||
};
|
||||
|
||||
export default Items;
|
|
@ -0,0 +1,171 @@
|
|||
import React, { useState, useEffect } from 'react';
|
||||
import {
|
||||
View, Text, TouchableWithoutFeedback, Modal, KeyboardAvoidingView, Animated, Easing
|
||||
} from 'react-native';
|
||||
import PropTypes from 'prop-types';
|
||||
import { BLOCK_CONTEXT } from '@rocket.chat/ui-kit';
|
||||
|
||||
import Button from '../../Button';
|
||||
import TextInput from '../../TextInput';
|
||||
|
||||
import { textParser } from '../utils';
|
||||
import { themes } from '../../../constants/colors';
|
||||
|
||||
import Chips from './Chips';
|
||||
import Items from './Items';
|
||||
import Input from './Input';
|
||||
|
||||
import styles from './styles';
|
||||
|
||||
const ANIMATION_DURATION = 200;
|
||||
const ANIMATION_PROPS = {
|
||||
duration: ANIMATION_DURATION,
|
||||
easing: Easing.inOut(Easing.quad),
|
||||
useNativeDriver: true
|
||||
};
|
||||
const animatedValue = new Animated.Value(0);
|
||||
|
||||
export const MultiSelect = React.memo(({
|
||||
options = [],
|
||||
onChange,
|
||||
placeholder = { text: 'Search' },
|
||||
context,
|
||||
loading,
|
||||
value: values,
|
||||
multiselect = false,
|
||||
theme
|
||||
}) => {
|
||||
const [selected, select] = useState(values || []);
|
||||
const [open, setOpen] = useState(false);
|
||||
const [search, onSearchChange] = useState('');
|
||||
const [currentValue, setCurrentValue] = useState('');
|
||||
const [showContent, setShowContent] = useState(false);
|
||||
|
||||
useEffect(() => {
|
||||
setOpen(showContent);
|
||||
}, [showContent]);
|
||||
|
||||
const onShow = () => {
|
||||
Animated.timing(
|
||||
animatedValue,
|
||||
{
|
||||
toValue: 1,
|
||||
...ANIMATION_PROPS
|
||||
}
|
||||
).start();
|
||||
setShowContent(true);
|
||||
};
|
||||
|
||||
const onHide = () => {
|
||||
Animated.timing(
|
||||
animatedValue,
|
||||
{
|
||||
toValue: 0,
|
||||
...ANIMATION_PROPS
|
||||
}
|
||||
).start(() => setShowContent(false));
|
||||
};
|
||||
|
||||
const onSelect = (item) => {
|
||||
const { value } = item;
|
||||
if (multiselect) {
|
||||
let newSelect = [];
|
||||
if (!selected.includes(value)) {
|
||||
newSelect = [...selected, value];
|
||||
} else {
|
||||
newSelect = selected.filter(s => s !== value);
|
||||
}
|
||||
select(newSelect);
|
||||
onChange({ value: newSelect });
|
||||
} else {
|
||||
onChange({ value });
|
||||
setCurrentValue(value);
|
||||
setOpen(false);
|
||||
}
|
||||
};
|
||||
|
||||
const renderContent = () => {
|
||||
const items = options.filter(option => textParser([option.text]).toLowerCase().includes(search.toLowerCase()));
|
||||
|
||||
return (
|
||||
<View style={[styles.modal, { backgroundColor: themes[theme].backgroundColor }]}>
|
||||
<View style={[styles.content, { backgroundColor: themes[theme].backgroundColor }]}>
|
||||
<TextInput
|
||||
onChangeText={onSearchChange}
|
||||
placeholder={placeholder.text}
|
||||
theme={theme}
|
||||
/>
|
||||
<Items items={items} selected={selected} onSelect={onSelect} theme={theme} />
|
||||
</View>
|
||||
</View>
|
||||
);
|
||||
};
|
||||
|
||||
const translateY = animatedValue.interpolate({
|
||||
inputRange: [0, 1],
|
||||
outputRange: [600, 0]
|
||||
});
|
||||
|
||||
let button = multiselect ? (
|
||||
<Button
|
||||
title={`${ selected.length } selecteds`}
|
||||
onPress={onShow}
|
||||
loading={loading}
|
||||
theme={theme}
|
||||
/>
|
||||
) : (
|
||||
<Input
|
||||
open={onShow}
|
||||
theme={theme}
|
||||
loading={loading}
|
||||
>
|
||||
<Text style={[styles.pickerText, { color: themes[theme].auxiliaryText }]}>{currentValue}</Text>
|
||||
</Input>
|
||||
);
|
||||
|
||||
if (context === BLOCK_CONTEXT.FORM) {
|
||||
button = (
|
||||
<Input
|
||||
open={onShow}
|
||||
theme={theme}
|
||||
loading={loading}
|
||||
>
|
||||
<Chips items={options.filter(option => selected.includes(option.value))} onSelect={onSelect} theme={theme} />
|
||||
</Input>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<>
|
||||
<Modal
|
||||
animationType='fade'
|
||||
transparent
|
||||
visible={open}
|
||||
onRequestClose={onHide}
|
||||
onShow={onShow}
|
||||
>
|
||||
<TouchableWithoutFeedback onPress={onHide}>
|
||||
<View style={styles.container}>
|
||||
<View style={[styles.backdrop, { backgroundColor: themes[theme].backdropColor }]} />
|
||||
<KeyboardAvoidingView style={styles.keyboardView} behavior='padding'>
|
||||
<Animated.View style={[styles.animatedContent, { transform: [{ translateY }] }]}>
|
||||
{showContent ? renderContent() : null}
|
||||
</Animated.View>
|
||||
</KeyboardAvoidingView>
|
||||
</View>
|
||||
</TouchableWithoutFeedback>
|
||||
</Modal>
|
||||
{button}
|
||||
</>
|
||||
);
|
||||
});
|
||||
MultiSelect.propTypes = {
|
||||
options: PropTypes.array,
|
||||
onChange: PropTypes.func,
|
||||
placeholder: PropTypes.object,
|
||||
context: PropTypes.number,
|
||||
loading: PropTypes.bool,
|
||||
multiselect: PropTypes.bool,
|
||||
value: PropTypes.array,
|
||||
theme: PropTypes.string
|
||||
};
|
|
@ -0,0 +1,81 @@
|
|||
import { StyleSheet } from 'react-native';
|
||||
|
||||
import sharedStyles from '../../../views/Styles';
|
||||
|
||||
export default StyleSheet.create({
|
||||
container: {
|
||||
flex: 1,
|
||||
alignItems: 'center',
|
||||
justifyContent: 'flex-end'
|
||||
},
|
||||
backdrop: {
|
||||
...StyleSheet.absoluteFill,
|
||||
opacity: 0.3
|
||||
},
|
||||
modal: {
|
||||
height: 300,
|
||||
width: '100%',
|
||||
borderTopRightRadius: 16,
|
||||
borderTopLeftRadius: 16,
|
||||
overflow: 'hidden'
|
||||
},
|
||||
content: {
|
||||
padding: 16
|
||||
},
|
||||
animatedContent: {
|
||||
width: '100%'
|
||||
},
|
||||
keyboardView: {
|
||||
width: '100%'
|
||||
},
|
||||
pickerText: {
|
||||
...sharedStyles.textRegular,
|
||||
fontSize: 16
|
||||
},
|
||||
item: {
|
||||
height: 48,
|
||||
alignItems: 'center',
|
||||
flexDirection: 'row'
|
||||
},
|
||||
input: {
|
||||
minHeight: 48,
|
||||
padding: 8,
|
||||
paddingBottom: 0,
|
||||
borderWidth: StyleSheet.hairlineWidth,
|
||||
borderRadius: 2,
|
||||
alignItems: 'center',
|
||||
flexDirection: 'row'
|
||||
},
|
||||
icon: {
|
||||
position: 'absolute',
|
||||
right: 16
|
||||
},
|
||||
items: {
|
||||
height: 200
|
||||
},
|
||||
chips: {
|
||||
flexDirection: 'row',
|
||||
flexWrap: 'wrap',
|
||||
marginRight: 16
|
||||
},
|
||||
chip: {
|
||||
flexDirection: 'row',
|
||||
borderRadius: 2,
|
||||
height: 28,
|
||||
alignItems: 'center',
|
||||
paddingHorizontal: 4,
|
||||
marginBottom: 8,
|
||||
marginRight: 8
|
||||
},
|
||||
chipText: {
|
||||
paddingHorizontal: 8,
|
||||
...sharedStyles.textMedium,
|
||||
fontSize: 14
|
||||
},
|
||||
chipImage: {
|
||||
marginLeft: 4,
|
||||
borderRadius: 2,
|
||||
width: 20,
|
||||
height: 20
|
||||
}
|
||||
});
|
|
@ -0,0 +1,103 @@
|
|||
import React, { useState } from 'react';
|
||||
import { Text, FlatList, StyleSheet } from 'react-native';
|
||||
import PropTypes from 'prop-types';
|
||||
import Popover from 'react-native-popover-view';
|
||||
import Touchable from 'react-native-platform-touchable';
|
||||
|
||||
import { CustomIcon } from '../../lib/Icons';
|
||||
import Separator from '../Separator';
|
||||
import ActivityIndicator from '../ActivityIndicator';
|
||||
import { themes } from '../../constants/colors';
|
||||
import { BUTTON_HIT_SLOP } from '../message/utils';
|
||||
|
||||
const keyExtractor = item => item.value;
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
menu: {
|
||||
justifyContent: 'center'
|
||||
},
|
||||
option: {
|
||||
padding: 8,
|
||||
minHeight: 32
|
||||
},
|
||||
loading: {
|
||||
padding: 0
|
||||
}
|
||||
});
|
||||
|
||||
const Option = ({
|
||||
option: { text, value }, onOptionPress, parser, theme
|
||||
}) => (
|
||||
<Touchable
|
||||
onPress={() => onOptionPress({ value })}
|
||||
background={Touchable.Ripple(themes[theme].bannerBackground)}
|
||||
style={styles.option}
|
||||
>
|
||||
<Text>{parser.text(text)}</Text>
|
||||
</Touchable>
|
||||
);
|
||||
Option.propTypes = {
|
||||
option: PropTypes.object,
|
||||
onOptionPress: PropTypes.func,
|
||||
parser: PropTypes.object,
|
||||
theme: PropTypes.string
|
||||
};
|
||||
|
||||
const Options = ({
|
||||
options, onOptionPress, parser, theme
|
||||
}) => (
|
||||
<FlatList
|
||||
data={options}
|
||||
renderItem={({ item }) => <Option option={item} onOptionPress={onOptionPress} parser={parser} theme={theme} />}
|
||||
keyExtractor={keyExtractor}
|
||||
ItemSeparatorComponent={() => <Separator theme={theme} />}
|
||||
/>
|
||||
);
|
||||
Options.propTypes = {
|
||||
options: PropTypes.array,
|
||||
onOptionPress: PropTypes.func,
|
||||
parser: PropTypes.object,
|
||||
theme: PropTypes.string
|
||||
};
|
||||
|
||||
const touchable = {};
|
||||
|
||||
export const Overflow = ({
|
||||
element, loading, action, parser, theme
|
||||
}) => {
|
||||
const { options, blockId } = element;
|
||||
const [show, onShow] = useState(false);
|
||||
|
||||
const onOptionPress = ({ value }) => {
|
||||
onShow(false);
|
||||
action({ value });
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<Touchable
|
||||
ref={ref => touchable[blockId] = ref}
|
||||
background={Touchable.Ripple(themes[theme].bannerBackground)}
|
||||
onPress={() => onShow(!show)}
|
||||
hitSlop={BUTTON_HIT_SLOP}
|
||||
style={styles.menu}
|
||||
>
|
||||
{!loading ? <CustomIcon size={18} name='menu' /> : <ActivityIndicator style={styles.loading} />}
|
||||
</Touchable>
|
||||
<Popover
|
||||
isVisible={show}
|
||||
fromView={touchable[blockId]}
|
||||
onRequestClose={() => onShow(false)}
|
||||
>
|
||||
<Options options={options} onOptionPress={onOptionPress} parser={parser} theme={theme} />
|
||||
</Popover>
|
||||
</>
|
||||
);
|
||||
};
|
||||
Overflow.propTypes = {
|
||||
element: PropTypes.any,
|
||||
action: PropTypes.func,
|
||||
loading: PropTypes.bool,
|
||||
parser: PropTypes.object,
|
||||
theme: PropTypes.string
|
||||
};
|
|
@ -0,0 +1,70 @@
|
|||
import React from 'react';
|
||||
import { View, Text, StyleSheet } from 'react-native';
|
||||
import PropTypes from 'prop-types';
|
||||
import { BLOCK_CONTEXT } from '@rocket.chat/ui-kit';
|
||||
|
||||
import { themes } from '../../constants/colors';
|
||||
import sharedStyles from '../../views/Styles';
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
content: {
|
||||
marginBottom: 8
|
||||
},
|
||||
row: {
|
||||
flexDirection: 'row'
|
||||
},
|
||||
column: {
|
||||
justifyContent: 'center'
|
||||
},
|
||||
text: {
|
||||
flex: 1,
|
||||
padding: 4,
|
||||
fontSize: 16,
|
||||
lineHeight: 22,
|
||||
textAlignVertical: 'center',
|
||||
...sharedStyles.textRegular
|
||||
},
|
||||
field: {
|
||||
marginVertical: 6
|
||||
}
|
||||
});
|
||||
|
||||
const Accessory = ({
|
||||
blockId, appId, element, parser
|
||||
}) => parser.renderAccessories(
|
||||
{ blockId, appId, ...element },
|
||||
BLOCK_CONTEXT.SECTION,
|
||||
parser
|
||||
);
|
||||
|
||||
const Fields = ({ fields, parser, theme }) => fields.map(field => (
|
||||
<Text style={[styles.text, styles.field, { color: themes[theme].bodyText }]}>
|
||||
{parser.text(field)}
|
||||
</Text>
|
||||
));
|
||||
|
||||
const accessoriesRight = ['image', 'overflow'];
|
||||
|
||||
export const Section = ({
|
||||
blockId, appId, text, fields, accessory, parser, theme
|
||||
}) => (
|
||||
<View
|
||||
style={[
|
||||
styles.content,
|
||||
accessory && accessoriesRight.includes(accessory.type) ? styles.row : styles.column
|
||||
]}
|
||||
>
|
||||
{text ? <Text style={[styles.text, { color: themes[theme].bodyText }]}>{parser.text(text)}</Text> : null}
|
||||
{fields ? <Fields fields={fields} theme={theme} parser={parser} /> : null}
|
||||
{accessory ? <Accessory element={{ blockId, appId, ...accessory }} parser={parser} /> : null}
|
||||
</View>
|
||||
);
|
||||
Section.propTypes = {
|
||||
blockId: PropTypes.string,
|
||||
appId: PropTypes.string,
|
||||
text: PropTypes.object,
|
||||
fields: PropTypes.array,
|
||||
accessory: PropTypes.any,
|
||||
theme: PropTypes.string,
|
||||
parser: PropTypes.object
|
||||
};
|
|
@ -0,0 +1,89 @@
|
|||
import React, { useState } from 'react';
|
||||
import { StyleSheet } from 'react-native';
|
||||
import PropTypes from 'prop-types';
|
||||
import RNPickerSelect from 'react-native-picker-select';
|
||||
|
||||
import sharedStyles from '../../views/Styles';
|
||||
import { themes } from '../../constants/colors';
|
||||
import { CustomIcon } from '../../lib/Icons';
|
||||
import { textParser } from './utils';
|
||||
import { isAndroid, isIOS } from '../../utils/deviceInfo';
|
||||
import ActivityIndicator from '../ActivityIndicator';
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
iosPadding: {
|
||||
height: 48,
|
||||
justifyContent: 'center'
|
||||
},
|
||||
viewContainer: {
|
||||
marginBottom: 16,
|
||||
paddingHorizontal: 16,
|
||||
borderWidth: StyleSheet.hairlineWidth,
|
||||
borderRadius: 2,
|
||||
justifyContent: 'center'
|
||||
},
|
||||
pickerText: {
|
||||
...sharedStyles.textRegular,
|
||||
fontSize: 16
|
||||
},
|
||||
icon: {
|
||||
right: 16
|
||||
},
|
||||
loading: {
|
||||
padding: 0
|
||||
}
|
||||
});
|
||||
|
||||
export const Select = ({
|
||||
options = [],
|
||||
placeholder,
|
||||
onChange,
|
||||
loading,
|
||||
disabled,
|
||||
value: initialValue,
|
||||
theme
|
||||
}) => {
|
||||
const [selected, setSelected] = useState(!Array.isArray(initialValue) && initialValue);
|
||||
const items = options.map(option => ({ label: textParser([option.text]), value: option.value }));
|
||||
const pickerStyle = {
|
||||
...styles.viewContainer,
|
||||
...(isIOS ? styles.iosPadding : {}),
|
||||
borderColor: themes[theme].separatorColor,
|
||||
backgroundColor: themes[theme].backgroundColor
|
||||
};
|
||||
|
||||
const Icon = () => (
|
||||
loading
|
||||
? <ActivityIndicator style={styles.loading} />
|
||||
: <CustomIcon size={22} name='arrow-down' style={isAndroid && styles.icon} color={themes[theme].auxiliaryText} />
|
||||
);
|
||||
|
||||
return (
|
||||
<RNPickerSelect
|
||||
items={items}
|
||||
placeholder={placeholder ? { label: textParser([placeholder]), value: null } : {}}
|
||||
useNativeAndroidPickerStyle={false}
|
||||
value={selected}
|
||||
disabled={disabled}
|
||||
onValueChange={(value) => {
|
||||
onChange({ value });
|
||||
setSelected(value);
|
||||
}}
|
||||
style={{
|
||||
viewContainer: pickerStyle,
|
||||
inputAndroidContainer: pickerStyle
|
||||
}}
|
||||
Icon={Icon}
|
||||
textInputProps={{ style: { ...styles.pickerText, color: selected ? themes[theme].titleText : themes[theme].auxiliaryText } }}
|
||||
/>
|
||||
);
|
||||
};
|
||||
Select.propTypes = {
|
||||
options: PropTypes.array,
|
||||
placeholder: PropTypes.string,
|
||||
onChange: PropTypes.func,
|
||||
loading: PropTypes.bool,
|
||||
disabled: PropTypes.bool,
|
||||
value: PropTypes.array,
|
||||
theme: PropTypes.string
|
||||
};
|
|
@ -0,0 +1,246 @@
|
|||
/* eslint-disable class-methods-use-this */
|
||||
import React, { useContext } from 'react';
|
||||
import { StyleSheet } from 'react-native';
|
||||
import {
|
||||
uiKitMessage,
|
||||
UiKitParserMessage,
|
||||
uiKitModal,
|
||||
UiKitParserModal,
|
||||
BLOCK_CONTEXT
|
||||
} from '@rocket.chat/ui-kit';
|
||||
|
||||
import Markdown from '../markdown';
|
||||
import Button from '../Button';
|
||||
import TextInput from '../TextInput';
|
||||
|
||||
import { useBlockContext } from './utils';
|
||||
import { themes } from '../../constants/colors';
|
||||
|
||||
import { Divider } from './Divider';
|
||||
import { Section } from './Section';
|
||||
import { Actions } from './Actions';
|
||||
import { Image } from './Image';
|
||||
import { Select } from './Select';
|
||||
import { Context } from './Context';
|
||||
import { MultiSelect } from './MultiSelect';
|
||||
import { Input } from './Input';
|
||||
import { DatePicker } from './DatePicker';
|
||||
import { Overflow } from './Overflow';
|
||||
import { ThemeContext } from '../../theme';
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
input: {
|
||||
marginBottom: 0
|
||||
},
|
||||
multiline: {
|
||||
height: 130
|
||||
},
|
||||
button: {
|
||||
marginBottom: 16
|
||||
}
|
||||
});
|
||||
|
||||
const plainText = ({ text } = { text: '' }) => text;
|
||||
|
||||
class MessageParser extends UiKitParserMessage {
|
||||
text({ text, type } = { text: '' }, context) {
|
||||
const { theme } = useContext(ThemeContext);
|
||||
if (type !== 'mrkdwn') {
|
||||
return text;
|
||||
}
|
||||
|
||||
const isContext = context === BLOCK_CONTEXT.CONTEXT;
|
||||
return (
|
||||
<Markdown
|
||||
msg={text}
|
||||
theme={theme}
|
||||
style={[isContext && { color: themes[theme].auxiliaryText }]}
|
||||
preview={isContext}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
button(element, context) {
|
||||
const {
|
||||
text, value, actionId, style
|
||||
} = element;
|
||||
const [{ loading }, action] = useBlockContext(element, context);
|
||||
const { theme } = useContext(ThemeContext);
|
||||
return (
|
||||
<Button
|
||||
key={actionId}
|
||||
type={style}
|
||||
title={this.text(text)}
|
||||
loading={loading}
|
||||
onPress={() => action({ value })}
|
||||
style={styles.button}
|
||||
theme={theme}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
divider() {
|
||||
const { theme } = useContext(ThemeContext);
|
||||
return <Divider theme={theme} />;
|
||||
}
|
||||
|
||||
section(args) {
|
||||
const { theme } = useContext(ThemeContext);
|
||||
return <Section {...args} theme={theme} parser={this} />;
|
||||
}
|
||||
|
||||
actions(args) {
|
||||
const { theme } = useContext(ThemeContext);
|
||||
return <Actions {...args} theme={theme} parser={this} />;
|
||||
}
|
||||
|
||||
overflow(element, context) {
|
||||
const [{ loading }, action] = useBlockContext(element, context);
|
||||
const { theme } = useContext(ThemeContext);
|
||||
return (
|
||||
<Overflow
|
||||
element={element}
|
||||
context={context}
|
||||
loading={loading}
|
||||
action={action}
|
||||
theme={theme}
|
||||
parser={this}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
datePicker(element, context) {
|
||||
const [{
|
||||
loading, value, error, language
|
||||
}, action] = useBlockContext(element, context);
|
||||
const { theme } = useContext(ThemeContext);
|
||||
return (
|
||||
<DatePicker
|
||||
element={element}
|
||||
language={language}
|
||||
theme={theme}
|
||||
value={value}
|
||||
action={action}
|
||||
context={context}
|
||||
loading={loading}
|
||||
error={error}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
image(element, context) {
|
||||
const { theme } = useContext(ThemeContext);
|
||||
return <Image element={element} theme={theme} context={context} />;
|
||||
}
|
||||
|
||||
context(args) {
|
||||
const { theme } = useContext(ThemeContext);
|
||||
return <Context {...args} theme={theme} parser={this} />;
|
||||
}
|
||||
|
||||
multiStaticSelect(element, context) {
|
||||
const [{ loading, value }, action] = useBlockContext(element, context);
|
||||
const { theme } = useContext(ThemeContext);
|
||||
return (
|
||||
<MultiSelect
|
||||
{...element}
|
||||
theme={theme}
|
||||
value={value}
|
||||
onChange={action}
|
||||
context={context}
|
||||
loading={loading}
|
||||
multiselect
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
staticSelect(element, context) {
|
||||
const [{ loading, value }, action] = useBlockContext(element, context);
|
||||
const { theme } = useContext(ThemeContext);
|
||||
return (
|
||||
<Select
|
||||
{...element}
|
||||
theme={theme}
|
||||
value={value}
|
||||
onChange={action}
|
||||
loading={loading}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
selectInput(element, context) {
|
||||
const [{ loading, value }, action] = useBlockContext(element, context);
|
||||
const { theme } = useContext(ThemeContext);
|
||||
return (
|
||||
<MultiSelect
|
||||
{...element}
|
||||
theme={theme}
|
||||
value={value}
|
||||
onChange={action}
|
||||
context={context}
|
||||
loading={loading}
|
||||
/>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class ModalParser extends UiKitParserModal {
|
||||
constructor() {
|
||||
super();
|
||||
Object.getOwnPropertyNames(MessageParser.prototype).forEach((method) => {
|
||||
ModalParser.prototype[method] = ModalParser.prototype[method] || MessageParser.prototype[method];
|
||||
});
|
||||
}
|
||||
|
||||
input({
|
||||
element, blockId, appId, label, description, hint
|
||||
}, context) {
|
||||
const [{ error }] = useBlockContext({ ...element, appId, blockId }, context);
|
||||
const { theme } = useContext(ThemeContext);
|
||||
return (
|
||||
<Input
|
||||
parser={this}
|
||||
element={{ ...element, appId, blockId }}
|
||||
label={plainText(label)}
|
||||
description={plainText(description)}
|
||||
hint={plainText(hint)}
|
||||
error={error}
|
||||
theme={theme}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
image(element, context) {
|
||||
const { theme } = useContext(ThemeContext);
|
||||
return <Image element={element} theme={theme} context={context} />;
|
||||
}
|
||||
|
||||
plainInput(element, context) {
|
||||
const [{ loading, value, error }, action] = useBlockContext(element, context);
|
||||
const { theme } = useContext(ThemeContext);
|
||||
const { multiline, actionId, placeholder } = element;
|
||||
return (
|
||||
<TextInput
|
||||
id={actionId}
|
||||
placeholder={plainText(placeholder)}
|
||||
onInput={action}
|
||||
multiline={multiline}
|
||||
loading={loading}
|
||||
onChangeText={text => action({ value: text })}
|
||||
inputStyle={multiline && styles.multiline}
|
||||
containerStyle={styles.input}
|
||||
value={value}
|
||||
error={{ error }}
|
||||
theme={theme}
|
||||
/>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export const messageParser = new MessageParser();
|
||||
export const modalParser = new ModalParser();
|
||||
|
||||
export const UiKitMessage = uiKitMessage(messageParser);
|
||||
export const UiKitModal = uiKitModal(modalParser);
|
||||
|
||||
export const UiKitComponent = ({ render, blocks }) => render(blocks);
|
|
@ -0,0 +1,55 @@
|
|||
/* eslint-disable no-shadow */
|
||||
import React, { useContext, useState } from 'react';
|
||||
import { BLOCK_CONTEXT } from '@rocket.chat/ui-kit';
|
||||
|
||||
export const textParser = ([{ text }]) => text;
|
||||
|
||||
export const defaultContext = {
|
||||
action: (...args) => console.log(args),
|
||||
state: console.log,
|
||||
appId: '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz',
|
||||
errors: {}
|
||||
};
|
||||
|
||||
export const KitContext = React.createContext(defaultContext);
|
||||
|
||||
export const useBlockContext = ({
|
||||
blockId, actionId, appId, initialValue
|
||||
}, context) => {
|
||||
const {
|
||||
action, appId: appIdFromContext, viewId, state, language, errors, values = {}
|
||||
} = useContext(KitContext);
|
||||
const { value = initialValue } = values[actionId] || {};
|
||||
const [loading, setLoading] = useState(false);
|
||||
|
||||
const error = errors && actionId && errors[actionId];
|
||||
|
||||
if ([BLOCK_CONTEXT.SECTION, BLOCK_CONTEXT.ACTION].includes(context)) {
|
||||
return [{
|
||||
loading, setLoading, error, value, language
|
||||
}, async({ value }) => {
|
||||
setLoading(true);
|
||||
await action({
|
||||
blockId,
|
||||
appId: appId || appIdFromContext,
|
||||
actionId,
|
||||
value,
|
||||
viewId
|
||||
});
|
||||
setLoading(false);
|
||||
}];
|
||||
}
|
||||
|
||||
return [{
|
||||
loading, setLoading, value, error, language
|
||||
}, async({ value }) => {
|
||||
setLoading(true);
|
||||
await state({
|
||||
blockId,
|
||||
appId,
|
||||
actionId,
|
||||
value
|
||||
});
|
||||
setLoading(false);
|
||||
}];
|
||||
};
|
|
@ -0,0 +1,39 @@
|
|||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { messageBlockWithContext } from '../UIKit/MessageBlock';
|
||||
|
||||
const Blocks = React.memo(({
|
||||
blocks, id: mid, rid, blockAction
|
||||
}) => {
|
||||
if (blocks && blocks.length > 0) {
|
||||
const [, secondBlock] = blocks;
|
||||
const { appId = '' } = secondBlock;
|
||||
return React.createElement(
|
||||
messageBlockWithContext({
|
||||
action: async({ actionId, value, blockId }) => {
|
||||
await blockAction({
|
||||
actionId,
|
||||
appId,
|
||||
value,
|
||||
blockId,
|
||||
rid,
|
||||
mid
|
||||
});
|
||||
},
|
||||
appId,
|
||||
rid
|
||||
}), { blocks }
|
||||
);
|
||||
}
|
||||
return null;
|
||||
});
|
||||
|
||||
Blocks.propTypes = {
|
||||
blocks: PropTypes.array,
|
||||
id: PropTypes.string,
|
||||
rid: PropTypes.string,
|
||||
blockAction: PropTypes.func
|
||||
};
|
||||
Blocks.displayName = 'MessageBlocks';
|
||||
|
||||
export default Blocks;
|
|
@ -28,7 +28,7 @@ const Button = React.memo(({
|
|||
</Touchable>
|
||||
));
|
||||
|
||||
const Image = React.memo(({ img, theme }) => (
|
||||
export const MessageImage = React.memo(({ img, theme }) => (
|
||||
<ImageProgress
|
||||
style={[styles.image, { borderColor: themes[theme].borderColor }]}
|
||||
source={{ uri: encodeURI(img) }}
|
||||
|
@ -41,9 +41,9 @@ const Image = React.memo(({ img, theme }) => (
|
|||
));
|
||||
|
||||
const ImageContainer = React.memo(({
|
||||
file, baseUrl, user, useMarkdown, showAttachment, getCustomEmoji, split, theme
|
||||
file, imageUrl, baseUrl, user, useMarkdown, showAttachment, getCustomEmoji, split, theme
|
||||
}) => {
|
||||
const img = formatAttachmentUrl(file.image_url, user.id, user.token, baseUrl);
|
||||
const img = imageUrl || formatAttachmentUrl(file.image_url, user.id, user.token, baseUrl);
|
||||
if (!img) {
|
||||
return null;
|
||||
}
|
||||
|
@ -54,7 +54,7 @@ const ImageContainer = React.memo(({
|
|||
return (
|
||||
<Button split={split} theme={theme} onPress={onPress}>
|
||||
<View>
|
||||
<Image img={img} theme={theme} />
|
||||
<MessageImage img={img} theme={theme} />
|
||||
<Markdown msg={file.description} baseUrl={baseUrl} username={user.username} getCustomEmoji={getCustomEmoji} useMarkdown={useMarkdown} theme={theme} />
|
||||
</View>
|
||||
</Button>
|
||||
|
@ -63,13 +63,14 @@ const ImageContainer = React.memo(({
|
|||
|
||||
return (
|
||||
<Button split={split} theme={theme} onPress={onPress}>
|
||||
<Image img={img} theme={theme} />
|
||||
<MessageImage img={img} theme={theme} />
|
||||
</Button>
|
||||
);
|
||||
}, (prevProps, nextProps) => equal(prevProps.file, nextProps.file) && prevProps.split === nextProps.split && prevProps.theme === nextProps.theme);
|
||||
|
||||
ImageContainer.propTypes = {
|
||||
file: PropTypes.object,
|
||||
imageUrl: PropTypes.string,
|
||||
baseUrl: PropTypes.string,
|
||||
user: PropTypes.object,
|
||||
useMarkdown: PropTypes.bool,
|
||||
|
@ -80,7 +81,7 @@ ImageContainer.propTypes = {
|
|||
};
|
||||
ImageContainer.displayName = 'MessageImageContainer';
|
||||
|
||||
Image.propTypes = {
|
||||
MessageImage.propTypes = {
|
||||
img: PropTypes.string,
|
||||
theme: PropTypes.string
|
||||
};
|
||||
|
|
|
@ -10,6 +10,7 @@ import MessageAvatar from './MessageAvatar';
|
|||
import Attachments from './Attachments';
|
||||
import Urls from './Urls';
|
||||
import Thread from './Thread';
|
||||
import Blocks from './Blocks';
|
||||
import Reactions from './Reactions';
|
||||
import Broadcast from './Broadcast';
|
||||
import Discussion from './Discussion';
|
||||
|
@ -35,6 +36,16 @@ const MessageInner = React.memo((props) => {
|
|||
</>
|
||||
);
|
||||
}
|
||||
if (props.blocks && props.blocks.length) {
|
||||
return (
|
||||
<>
|
||||
<User {...props} />
|
||||
<Blocks {...props} />
|
||||
<Thread {...props} />
|
||||
<Reactions {...props} />
|
||||
</>
|
||||
);
|
||||
}
|
||||
return (
|
||||
<>
|
||||
<User {...props} />
|
||||
|
@ -139,7 +150,8 @@ Message.propTypes = {
|
|||
};
|
||||
|
||||
MessageInner.propTypes = {
|
||||
type: PropTypes.string
|
||||
type: PropTypes.string,
|
||||
blocks: PropTypes.array
|
||||
};
|
||||
|
||||
export default MessageTouchable;
|
||||
|
|
|
@ -16,6 +16,7 @@ class MessageContainer extends React.Component {
|
|||
username: PropTypes.string.isRequired,
|
||||
token: PropTypes.string.isRequired
|
||||
}),
|
||||
rid: PropTypes.string,
|
||||
timeFormat: PropTypes.string,
|
||||
customThreadTimeFormat: PropTypes.string,
|
||||
style: PropTypes.any,
|
||||
|
@ -44,6 +45,7 @@ class MessageContainer extends React.Component {
|
|||
onReactionLongPress: PropTypes.func,
|
||||
navToRoomInfo: PropTypes.func,
|
||||
callJitsi: PropTypes.func,
|
||||
blockAction: PropTypes.func,
|
||||
theme: PropTypes.string
|
||||
}
|
||||
|
||||
|
@ -212,10 +214,10 @@ class MessageContainer extends React.Component {
|
|||
|
||||
render() {
|
||||
const {
|
||||
item, user, style, archived, baseUrl, useRealName, broadcast, fetchThreadName, customThreadTimeFormat, showAttachment, timeFormat, useMarkdown, isReadReceiptEnabled, autoTranslateRoom, autoTranslateLanguage, navToRoomInfo, getCustomEmoji, isThreadRoom, callJitsi, theme
|
||||
item, user, style, archived, baseUrl, useRealName, broadcast, fetchThreadName, customThreadTimeFormat, showAttachment, timeFormat, useMarkdown, isReadReceiptEnabled, autoTranslateRoom, autoTranslateLanguage, navToRoomInfo, getCustomEmoji, isThreadRoom, callJitsi, blockAction, rid, theme
|
||||
} = this.props;
|
||||
const {
|
||||
id, msg, ts, attachments, urls, reactions, t, avatar, u, alias, editedBy, role, drid, dcount, dlm, tmid, tcount, tlm, tmsg, mentions, channels, unread, autoTranslate: autoTranslateMessage
|
||||
id, msg, ts, attachments, urls, reactions, t, avatar, u, alias, editedBy, role, drid, dcount, dlm, tmid, tcount, tlm, tmsg, mentions, channels, unread, blocks, autoTranslate: autoTranslateMessage
|
||||
} = item;
|
||||
|
||||
let message = msg;
|
||||
|
@ -229,10 +231,12 @@ class MessageContainer extends React.Component {
|
|||
<Message
|
||||
id={id}
|
||||
msg={message}
|
||||
rid={rid}
|
||||
author={u}
|
||||
ts={ts}
|
||||
type={t}
|
||||
attachments={attachments}
|
||||
blocks={blocks}
|
||||
urls={urls}
|
||||
reactions={reactions}
|
||||
alias={alias}
|
||||
|
@ -279,6 +283,7 @@ class MessageContainer extends React.Component {
|
|||
getCustomEmoji={getCustomEmoji}
|
||||
navToRoomInfo={navToRoomInfo}
|
||||
callJitsi={callJitsi}
|
||||
blockAction={blockAction}
|
||||
theme={theme}
|
||||
/>
|
||||
);
|
||||
|
|
|
@ -382,6 +382,7 @@ export default {
|
|||
Share: 'Share',
|
||||
Share_Link: 'Share Link',
|
||||
Share_this_app: 'Share this app',
|
||||
Show_more: 'Show more..',
|
||||
Show_Unread_Counter: 'Show Unread Counter',
|
||||
Show_Unread_Counter_Info: 'Unread counter is displayed as a badge on the right of the channel, in the list',
|
||||
Sign_in_your_server: 'Sign in your server',
|
||||
|
|
|
@ -346,6 +346,7 @@ export default {
|
|||
Settings_succesfully_changed: 'Configurações salvas com sucesso!',
|
||||
Share: 'Compartilhar',
|
||||
Share_Link: 'Share Link',
|
||||
Show_more: 'Mostrar mais..',
|
||||
Sign_in_your_server: 'Entrar no seu servidor',
|
||||
Sign_Up: 'Registrar',
|
||||
Some_field_is_invalid_or_empty: 'Algum campo está inválido ou vazio',
|
||||
|
|
17
app/index.js
17
app/index.js
|
@ -275,10 +275,21 @@ const AttachmentStack = createStackNavigator({
|
|||
cardStyle
|
||||
});
|
||||
|
||||
const ModalBlockStack = createStackNavigator({
|
||||
ModalBlockView: {
|
||||
getScreen: () => require('./views/ModalBlockView').default
|
||||
}
|
||||
}, {
|
||||
mode: 'modal',
|
||||
defaultNavigationOptions: defaultHeader,
|
||||
cardStyle
|
||||
});
|
||||
|
||||
const InsideStackModal = createStackNavigator({
|
||||
Main: ChatsDrawer,
|
||||
NewMessageStack,
|
||||
AttachmentStack,
|
||||
ModalBlockStack,
|
||||
JitsiMeetView: {
|
||||
getScreen: () => require('./views/JitsiMeetView').default
|
||||
}
|
||||
|
@ -422,6 +433,7 @@ const ModalSwitch = createSwitchNavigator({
|
|||
SidebarStack,
|
||||
RoomActionsStack,
|
||||
SettingsStack,
|
||||
ModalBlockStack,
|
||||
AuthLoading: () => null
|
||||
},
|
||||
{
|
||||
|
@ -453,6 +465,9 @@ class CustomModalStack extends React.Component {
|
|||
closeModal();
|
||||
return true;
|
||||
}
|
||||
if (state && state.routes[state.index] && state.routes[state.index].routes.length > 1) {
|
||||
navigation.goBack();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -474,7 +489,7 @@ class CustomModalStack extends React.Component {
|
|||
avoidKeyboard
|
||||
>
|
||||
<View style={[sharedStyles.modal, pageSheet ? sharedStyles.modalPageSheet : sharedStyles.modalFormSheet]}>
|
||||
<ModalSwitch navigation={navigation} screenProps={screenProps} />
|
||||
<ModalSwitch navigation={navigation} screenProps={{ ...screenProps, closeModal: this.closeModal }} />
|
||||
</View>
|
||||
</Modal>
|
||||
);
|
||||
|
|
|
@ -73,4 +73,6 @@ export default class Message extends Model {
|
|||
@json('translations', sanitizer) translations;
|
||||
|
||||
@field('tmsg') tmsg;
|
||||
|
||||
@json('blocks', sanitizer) blocks;
|
||||
}
|
||||
|
|
|
@ -11,4 +11,6 @@ export default class SlashCommand extends Model {
|
|||
@field('client_only') clientOnly;
|
||||
|
||||
@field('provides_preview') providesPreview;
|
||||
|
||||
@field('app_id') appId;
|
||||
}
|
||||
|
|
|
@ -23,6 +23,23 @@ export default schemaMigrations({
|
|||
]
|
||||
})
|
||||
]
|
||||
},
|
||||
{
|
||||
toVersion: 4,
|
||||
steps: [
|
||||
addColumns({
|
||||
table: 'messages',
|
||||
columns: [
|
||||
{ name: 'blocks', type: 'string', isOptional: true }
|
||||
]
|
||||
}),
|
||||
addColumns({
|
||||
table: 'slash_commands',
|
||||
columns: [
|
||||
{ name: 'app_id', type: 'string', isOptional: true }
|
||||
]
|
||||
})
|
||||
]
|
||||
}
|
||||
]
|
||||
});
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import { appSchema, tableSchema } from '@nozbe/watermelondb';
|
||||
|
||||
export default appSchema({
|
||||
version: 3,
|
||||
version: 4,
|
||||
tables: [
|
||||
tableSchema({
|
||||
name: 'subscriptions',
|
||||
|
@ -84,7 +84,8 @@ export default appSchema({
|
|||
{ name: 'unread', type: 'boolean', isOptional: true },
|
||||
{ name: 'auto_translate', type: 'boolean', isOptional: true },
|
||||
{ name: 'translations', type: 'string', isOptional: true },
|
||||
{ name: 'tmsg', type: 'string', isOptional: true }
|
||||
{ name: 'tmsg', type: 'string', isOptional: true },
|
||||
{ name: 'blocks', type: 'string', isOptional: true }
|
||||
]
|
||||
}),
|
||||
tableSchema({
|
||||
|
@ -217,7 +218,8 @@ export default appSchema({
|
|||
{ name: 'params', type: 'string', isOptional: true },
|
||||
{ name: 'description', type: 'string', isOptional: true },
|
||||
{ name: 'client_only', type: 'boolean', isOptional: true },
|
||||
{ name: 'provides_preview', type: 'boolean', isOptional: true }
|
||||
{ name: 'provides_preview', type: 'boolean', isOptional: true },
|
||||
{ name: 'app_id', type: 'string', isOptional: true }
|
||||
]
|
||||
})
|
||||
]
|
||||
|
|
|
@ -0,0 +1,165 @@
|
|||
import random from '../../utils/random';
|
||||
import EventEmitter from '../../utils/events';
|
||||
import Navigation from '../Navigation';
|
||||
import { showErrorAlert } from '../../utils/info';
|
||||
import I18n from '../../i18n';
|
||||
|
||||
const TRIGGER_TIMEOUT = 5000;
|
||||
|
||||
const ACTION_TYPES = {
|
||||
ACTION: 'blockAction',
|
||||
SUBMIT: 'viewSubmit',
|
||||
CLOSED: 'viewClosed'
|
||||
};
|
||||
|
||||
export const MODAL_ACTIONS = {
|
||||
MODAL: 'modal',
|
||||
OPEN: 'modal.open',
|
||||
CLOSE: 'modal.close',
|
||||
UPDATE: 'modal.update',
|
||||
ERRORS: 'errors'
|
||||
};
|
||||
|
||||
export const CONTAINER_TYPES = {
|
||||
VIEW: 'view',
|
||||
MESSAGE: 'message'
|
||||
};
|
||||
|
||||
const triggersId = new Map();
|
||||
|
||||
const invalidateTriggerId = (id) => {
|
||||
const appId = triggersId.get(id);
|
||||
triggersId.delete(id);
|
||||
return appId;
|
||||
};
|
||||
|
||||
export const generateTriggerId = (appId) => {
|
||||
const triggerId = random(17);
|
||||
triggersId.set(triggerId, appId);
|
||||
setTimeout(invalidateTriggerId, TRIGGER_TIMEOUT, triggerId);
|
||||
return triggerId;
|
||||
};
|
||||
|
||||
export const handlePayloadUserInteraction = (type, { triggerId, ...data }) => {
|
||||
if (!triggersId.has(triggerId)) {
|
||||
return;
|
||||
}
|
||||
|
||||
const appId = invalidateTriggerId(triggerId);
|
||||
if (!appId) {
|
||||
return;
|
||||
}
|
||||
|
||||
const { view } = data;
|
||||
let { viewId } = data;
|
||||
|
||||
if (view && view.id) {
|
||||
viewId = view.id;
|
||||
}
|
||||
|
||||
if (!viewId) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ([MODAL_ACTIONS.ERRORS].includes(type)) {
|
||||
EventEmitter.emit(viewId, {
|
||||
type,
|
||||
triggerId,
|
||||
viewId,
|
||||
appId,
|
||||
...data
|
||||
});
|
||||
return MODAL_ACTIONS.ERRORS;
|
||||
}
|
||||
|
||||
if ([MODAL_ACTIONS.UPDATE].includes(type)) {
|
||||
EventEmitter.emit(viewId, {
|
||||
type,
|
||||
triggerId,
|
||||
viewId,
|
||||
appId,
|
||||
...data
|
||||
});
|
||||
return MODAL_ACTIONS.UPDATE;
|
||||
}
|
||||
|
||||
|
||||
if ([MODAL_ACTIONS.OPEN].includes(type) || [MODAL_ACTIONS.MODAL].includes(type)) {
|
||||
Navigation.navigate('ModalBlockView', {
|
||||
data: {
|
||||
triggerId,
|
||||
viewId,
|
||||
appId,
|
||||
...data
|
||||
}
|
||||
});
|
||||
return MODAL_ACTIONS.OPEN;
|
||||
}
|
||||
|
||||
return MODAL_ACTIONS.CLOSE;
|
||||
};
|
||||
|
||||
export function triggerAction({
|
||||
type, actionId, appId, rid, mid, viewId, container, ...rest
|
||||
}) {
|
||||
return new Promise(async(resolve, reject) => {
|
||||
const triggerId = generateTriggerId(appId);
|
||||
|
||||
const payload = rest.payload || rest;
|
||||
|
||||
setTimeout(reject, TRIGGER_TIMEOUT, triggerId);
|
||||
|
||||
const { userId, authToken } = this.sdk.currentLogin;
|
||||
const { host } = this.sdk.client;
|
||||
|
||||
// we need to use fetch because this.sdk.post add /v1 to url
|
||||
const result = await fetch(`${ host }/api/apps/ui.interaction/${ appId }/`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'X-Auth-Token': authToken,
|
||||
'X-User-Id': userId
|
||||
},
|
||||
body: JSON.stringify({
|
||||
type,
|
||||
actionId,
|
||||
payload,
|
||||
container,
|
||||
mid,
|
||||
rid,
|
||||
triggerId,
|
||||
viewId
|
||||
})
|
||||
});
|
||||
|
||||
try {
|
||||
const { type: interactionType, ...data } = await result.json();
|
||||
handlePayloadUserInteraction(interactionType, data);
|
||||
|
||||
if (data.success) {
|
||||
return resolve();
|
||||
}
|
||||
|
||||
return reject();
|
||||
} catch (e) {
|
||||
if (result.status !== 200) {
|
||||
showErrorAlert(I18n.t('Oops'));
|
||||
return reject();
|
||||
}
|
||||
}
|
||||
|
||||
return resolve();
|
||||
});
|
||||
}
|
||||
|
||||
export default function triggerBlockAction(options) {
|
||||
return triggerAction.call(this, { type: ACTION_TYPES.ACTION, ...options });
|
||||
}
|
||||
|
||||
export function triggerSubmitView({ viewId, ...options }) {
|
||||
return triggerAction.call(this, { type: ACTION_TYPES.SUBMIT, viewId, ...options });
|
||||
}
|
||||
|
||||
export function triggerCancel({ view, ...options }) {
|
||||
return triggerAction.call(this, { type: ACTION_TYPES.CLOSED, view, ...options });
|
||||
}
|
|
@ -9,6 +9,7 @@ import random from '../../../utils/random';
|
|||
import store from '../../createStore';
|
||||
import { roomsRequest } from '../../../actions/rooms';
|
||||
import { notificationReceived } from '../../../actions/notification';
|
||||
import { handlePayloadUserInteraction } from '../actions';
|
||||
import buildMessage from '../helpers/buildMessage';
|
||||
|
||||
const removeListener = listener => listener.stop();
|
||||
|
@ -250,6 +251,7 @@ export default function subscribeRooms() {
|
|||
_id,
|
||||
rid: args.rid,
|
||||
msg: args.msg,
|
||||
blocks: args.blocks,
|
||||
ts: new Date(),
|
||||
_updatedAt: new Date(),
|
||||
status: messagesStatus.SENT,
|
||||
|
@ -275,6 +277,10 @@ export default function subscribeRooms() {
|
|||
const [notification] = ddpMessage.fields.args;
|
||||
store.dispatch(notificationReceived(notification));
|
||||
}
|
||||
if (/uiInteraction/.test(ev)) {
|
||||
const { type: eventType, ...args } = type;
|
||||
handlePayloadUserInteraction(eventType, args);
|
||||
}
|
||||
});
|
||||
|
||||
const stop = () => {
|
||||
|
|
|
@ -32,6 +32,7 @@ import { getCustomEmojis, setCustomEmojis } from './methods/getCustomEmojis';
|
|||
import getSlashCommands from './methods/getSlashCommands';
|
||||
import getRoles from './methods/getRoles';
|
||||
import canOpenRoom from './methods/canOpenRoom';
|
||||
import triggerBlockAction, { triggerSubmitView, triggerCancel } from './methods/actions';
|
||||
|
||||
import loadMessagesForRoom from './methods/loadMessagesForRoom';
|
||||
import loadMissedMessages from './methods/loadMissedMessages';
|
||||
|
@ -603,6 +604,9 @@ const RocketChat = {
|
|||
}
|
||||
return this.sdk.post('channels.join', { roomId });
|
||||
},
|
||||
triggerBlockAction,
|
||||
triggerSubmitView,
|
||||
triggerCancel,
|
||||
sendFileMessage,
|
||||
cancelUpload,
|
||||
isUploadActive,
|
||||
|
@ -1005,10 +1009,10 @@ const RocketChat = {
|
|||
rid, updatedSince
|
||||
});
|
||||
},
|
||||
runSlashCommand(command, roomId, params) {
|
||||
runSlashCommand(command, roomId, params, triggerId) {
|
||||
// RC 0.60.2
|
||||
return this.sdk.post('commands.run', {
|
||||
command, roomId, params
|
||||
command, roomId, params, triggerId
|
||||
});
|
||||
},
|
||||
getCommandPreview(command, roomId, params) {
|
||||
|
@ -1017,10 +1021,10 @@ const RocketChat = {
|
|||
command, roomId, params
|
||||
});
|
||||
},
|
||||
executeCommandPreview(command, params, roomId, previewItem) {
|
||||
executeCommandPreview(command, params, roomId, previewItem, triggerId) {
|
||||
// RC 0.65.0
|
||||
return this.sdk.post('commands.preview', {
|
||||
command, params, roomId, previewItem
|
||||
command, params, roomId, previewItem, triggerId
|
||||
});
|
||||
},
|
||||
_setUser(ddpMessage) {
|
||||
|
|
|
@ -112,6 +112,11 @@ export const initTabletNav = (setState) => {
|
|||
KeyCommands.deleteKeyCommands([...defaultCommands, ...keyCommands]);
|
||||
setState({ inside: false, showModal: false });
|
||||
}
|
||||
if (routeName === 'ModalBlockView') {
|
||||
modalRef.dispatch(NavigationActions.navigate({ routeName, params }));
|
||||
setState({ showModal: true });
|
||||
return null;
|
||||
}
|
||||
|
||||
if (routeName === 'RoomView') {
|
||||
const resetAction = StackActions.reset({
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import React from 'react';
|
||||
import hoistNonReactStatics from 'hoist-non-react-statics';
|
||||
|
||||
export const ThemeContext = React.createContext(null);
|
||||
export const ThemeContext = React.createContext({ theme: 'light' });
|
||||
|
||||
export function withTheme(Component) {
|
||||
const ThemedComponent = props => (
|
||||
|
|
|
@ -0,0 +1,261 @@
|
|||
import React from 'react';
|
||||
import { StyleSheet, ScrollView, View } from 'react-native';
|
||||
import PropTypes from 'prop-types';
|
||||
import isEqual from 'lodash/isEqual';
|
||||
import { connect } from 'react-redux';
|
||||
|
||||
import { withTheme } from '../theme';
|
||||
import { themedHeader } from '../utils/navigation';
|
||||
import EventEmitter from '../utils/events';
|
||||
import { themes } from '../constants/colors';
|
||||
import { CustomHeaderButtons, Item } from '../containers/HeaderButton';
|
||||
import { modalBlockWithContext } from '../containers/UIKit/MessageBlock';
|
||||
import RocketChat from '../lib/rocketchat';
|
||||
import ActivityIndicator from '../containers/ActivityIndicator';
|
||||
import { MODAL_ACTIONS, CONTAINER_TYPES } from '../lib/methods/actions';
|
||||
|
||||
import sharedStyles from './Styles';
|
||||
import { textParser } from '../containers/UIKit/utils';
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
container: {
|
||||
flex: 1,
|
||||
paddingHorizontal: 16
|
||||
},
|
||||
content: {
|
||||
paddingVertical: 16
|
||||
},
|
||||
submit: {
|
||||
...sharedStyles.textSemibold,
|
||||
fontSize: 16
|
||||
}
|
||||
});
|
||||
|
||||
Object.fromEntries = Object.fromEntries || (arr => arr.reduce((acc, [k, v]) => ((acc[k] = v, acc)), {}));
|
||||
const groupStateByBlockIdMap = (obj, [key, { blockId, value }]) => {
|
||||
obj[blockId] = obj[blockId] || {};
|
||||
obj[blockId][key] = value;
|
||||
return obj;
|
||||
};
|
||||
const groupStateByBlockId = obj => Object.entries(obj).reduce(groupStateByBlockIdMap, {});
|
||||
const filterInputFields = ({ element, elements = [] }) => {
|
||||
if (element && element.initialValue) {
|
||||
return true;
|
||||
}
|
||||
if (elements.length && elements.map(e => ({ element: e })).filter(filterInputFields).length) {
|
||||
return true;
|
||||
}
|
||||
};
|
||||
const mapElementToState = ({ element, blockId, elements = [] }) => {
|
||||
if (elements.length) {
|
||||
return elements.map(e => ({ element: e, blockId })).filter(filterInputFields).map(mapElementToState);
|
||||
}
|
||||
return [element.actionId, { value: element.initialValue, blockId }];
|
||||
};
|
||||
const reduceState = (obj, el) => (Array.isArray(el[0]) ? { ...obj, ...Object.fromEntries(el) } : { ...obj, [el[0]]: el[1] });
|
||||
|
||||
class ModalBlockView extends React.Component {
|
||||
static navigationOptions = ({ navigation, screenProps }) => {
|
||||
const { theme, closeModal } = screenProps;
|
||||
const data = navigation.getParam('data');
|
||||
const cancel = navigation.getParam('cancel', () => {});
|
||||
const { view } = data;
|
||||
const { title, submit, close } = view;
|
||||
return {
|
||||
title: textParser([title]),
|
||||
...themedHeader(theme),
|
||||
headerLeft: (
|
||||
<CustomHeaderButtons>
|
||||
<Item
|
||||
title={textParser([close.text])}
|
||||
style={styles.submit}
|
||||
onPress={() => cancel({ closeModal })}
|
||||
testID='close-modal-uikit'
|
||||
/>
|
||||
</CustomHeaderButtons>
|
||||
),
|
||||
headerRight: (
|
||||
<CustomHeaderButtons>
|
||||
<Item
|
||||
title={textParser([submit.text])}
|
||||
style={styles.submit}
|
||||
onPress={navigation.getParam('submit', () => {})}
|
||||
testID='submit-modal-uikit'
|
||||
/>
|
||||
</CustomHeaderButtons>
|
||||
)
|
||||
};
|
||||
}
|
||||
|
||||
static propTypes = {
|
||||
navigation: PropTypes.object,
|
||||
theme: PropTypes.string,
|
||||
language: PropTypes.string,
|
||||
user: PropTypes.shape({
|
||||
id: PropTypes.string,
|
||||
token: PropTypes.string
|
||||
})
|
||||
}
|
||||
|
||||
constructor(props) {
|
||||
super(props);
|
||||
const { navigation } = props;
|
||||
const data = navigation.getParam('data');
|
||||
this.values = data.view.blocks.filter(filterInputFields).map(mapElementToState).reduce(reduceState, {});
|
||||
this.state = {
|
||||
data,
|
||||
loading: false
|
||||
};
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
const { data } = this.state;
|
||||
const { navigation } = this.props;
|
||||
const { viewId } = data;
|
||||
navigation.setParams({ submit: this.submit, cancel: this.cancel });
|
||||
|
||||
EventEmitter.addEventListener(viewId, this.handleUpdate);
|
||||
}
|
||||
|
||||
componentDidUpdate(prevProps) {
|
||||
const { navigation } = this.props;
|
||||
const oldData = prevProps.navigation.getParam('data', {});
|
||||
const newData = navigation.getParam('data', {});
|
||||
if (!isEqual(oldData, newData)) {
|
||||
navigation.push('ModalBlockView', { data: newData });
|
||||
}
|
||||
}
|
||||
|
||||
componentWillUnmount() {
|
||||
const { data } = this.state;
|
||||
const { viewId } = data;
|
||||
EventEmitter.removeListener(viewId, this.handleUpdate);
|
||||
}
|
||||
|
||||
handleUpdate = ({ type, ...data }) => {
|
||||
if ([MODAL_ACTIONS.ERRORS].includes(type)) {
|
||||
const { errors } = data;
|
||||
this.setState({ errors });
|
||||
} else {
|
||||
this.setState({ data });
|
||||
}
|
||||
};
|
||||
|
||||
cancel = async({ closeModal }) => {
|
||||
const { data } = this.state;
|
||||
const { navigation } = this.props;
|
||||
const { appId, viewId, view } = data;
|
||||
this.setState({ loading: true });
|
||||
try {
|
||||
await RocketChat.triggerCancel({
|
||||
appId,
|
||||
viewId,
|
||||
view: {
|
||||
...view,
|
||||
id: viewId,
|
||||
state: groupStateByBlockId(this.values)
|
||||
},
|
||||
isCleared: true
|
||||
});
|
||||
} catch (e) {
|
||||
// do nothing
|
||||
}
|
||||
// handle tablet case
|
||||
if (closeModal) {
|
||||
closeModal();
|
||||
} else {
|
||||
navigation.pop();
|
||||
}
|
||||
this.setState({ loading: false });
|
||||
}
|
||||
|
||||
submit = async() => {
|
||||
const { data } = this.state;
|
||||
const { navigation } = this.props;
|
||||
const { appId, viewId } = data;
|
||||
this.setState({ loading: true });
|
||||
try {
|
||||
await RocketChat.triggerSubmitView({
|
||||
viewId,
|
||||
appId,
|
||||
payload: {
|
||||
view: {
|
||||
id: viewId,
|
||||
state: groupStateByBlockId(this.values)
|
||||
}
|
||||
}
|
||||
});
|
||||
navigation.pop();
|
||||
} catch (e) {
|
||||
// do nothing
|
||||
}
|
||||
this.setState({ loading: false });
|
||||
};
|
||||
|
||||
action = async({ actionId, value, blockId }) => {
|
||||
const { data } = this.state;
|
||||
const { mid, appId, viewId } = data;
|
||||
await RocketChat.triggerBlockAction({
|
||||
container: {
|
||||
type: CONTAINER_TYPES.VIEW,
|
||||
id: viewId
|
||||
},
|
||||
actionId,
|
||||
appId,
|
||||
value,
|
||||
blockId,
|
||||
mid
|
||||
});
|
||||
this.changeState({ actionId, value, blockId });
|
||||
}
|
||||
|
||||
changeState = ({ actionId, value, blockId = 'default' }) => {
|
||||
this.values[actionId] = {
|
||||
blockId,
|
||||
value
|
||||
};
|
||||
};
|
||||
|
||||
render() {
|
||||
const { data, loading, errors } = this.state;
|
||||
const { theme, language } = this.props;
|
||||
const { values } = this;
|
||||
const { view } = data;
|
||||
const { blocks } = view;
|
||||
|
||||
return (
|
||||
<ScrollView
|
||||
style={[
|
||||
styles.container,
|
||||
{ backgroundColor: themes[theme].auxiliaryBackground }
|
||||
]}
|
||||
keyboardShouldPersistTaps='always'
|
||||
>
|
||||
<View style={styles.content}>
|
||||
{
|
||||
React.createElement(
|
||||
modalBlockWithContext({
|
||||
action: this.action,
|
||||
state: this.changeState,
|
||||
...data
|
||||
}),
|
||||
{
|
||||
blocks,
|
||||
errors,
|
||||
language,
|
||||
values
|
||||
}
|
||||
)
|
||||
}
|
||||
</View>
|
||||
{loading ? <ActivityIndicator absolute size='large' theme={theme} /> : null}
|
||||
</ScrollView>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
const mapStateToProps = state => ({
|
||||
language: state.login.user && state.login.user.language
|
||||
});
|
||||
|
||||
export default connect(mapStateToProps)(withTheme(ModalBlockView));
|
|
@ -49,6 +49,7 @@ import {
|
|||
import ModalNavigation from '../../lib/ModalNavigation';
|
||||
import { Review } from '../../utils/review';
|
||||
import RoomClass from '../../lib/methods/subscriptions/room';
|
||||
import { CONTAINER_TYPES } from '../../lib/methods/actions';
|
||||
|
||||
const stateAttrsUpdate = [
|
||||
'joined',
|
||||
|
@ -701,6 +702,21 @@ class RoomView extends React.Component {
|
|||
return isReadOnly(room, user);
|
||||
}
|
||||
|
||||
blockAction = ({
|
||||
actionId, appId, value, blockId, rid, mid
|
||||
}) => RocketChat.triggerBlockAction({
|
||||
blockId,
|
||||
actionId,
|
||||
value,
|
||||
mid,
|
||||
rid,
|
||||
appId,
|
||||
container: {
|
||||
type: CONTAINER_TYPES.MESSAGE,
|
||||
id: mid
|
||||
}
|
||||
});
|
||||
|
||||
renderItem = (item, previousItem) => {
|
||||
const { room, lastOpen, canAutoTranslate } = this.state;
|
||||
const {
|
||||
|
@ -725,6 +741,7 @@ class RoomView extends React.Component {
|
|||
<Message
|
||||
item={item}
|
||||
user={user}
|
||||
rid={room.rid}
|
||||
archived={room.archived}
|
||||
broadcast={room.broadcast}
|
||||
status={item.status}
|
||||
|
@ -751,6 +768,7 @@ class RoomView extends React.Component {
|
|||
navToRoomInfo={this.navToRoomInfo}
|
||||
getCustomEmoji={this.getCustomEmoji}
|
||||
callJitsi={this.callJitsi}
|
||||
blockAction={this.blockAction}
|
||||
/>
|
||||
);
|
||||
|
||||
|
|
|
@ -355,6 +355,8 @@ PODS:
|
|||
- React
|
||||
- RNBootSplash (1.1.0):
|
||||
- React
|
||||
- RNDateTimePicker (2.1.0):
|
||||
- React
|
||||
- RNDeviceInfo (2.3.2):
|
||||
- React
|
||||
- RNFastImage (7.0.2):
|
||||
|
@ -468,6 +470,7 @@ DEPENDENCIES:
|
|||
- rn-fetch-blob (from `../node_modules/rn-fetch-blob`)
|
||||
- RNAudio (from `../node_modules/react-native-audio`)
|
||||
- RNBootSplash (from `../node_modules/react-native-bootsplash`)
|
||||
- "RNDateTimePicker (from `../node_modules/@react-native-community/datetimepicker`)"
|
||||
- RNDeviceInfo (from `../node_modules/react-native-device-info`)
|
||||
- RNFastImage (from `../node_modules/react-native-fast-image`)
|
||||
- RNFirebase (from `../node_modules/react-native-firebase/ios`)
|
||||
|
@ -625,6 +628,8 @@ EXTERNAL SOURCES:
|
|||
:path: "../node_modules/react-native-audio"
|
||||
RNBootSplash:
|
||||
:path: "../node_modules/react-native-bootsplash"
|
||||
RNDateTimePicker:
|
||||
:path: "../node_modules/@react-native-community/datetimepicker"
|
||||
RNDeviceInfo:
|
||||
:path: "../node_modules/react-native-device-info"
|
||||
RNFastImage:
|
||||
|
@ -759,6 +764,7 @@ SPEC CHECKSUMS:
|
|||
rn-fetch-blob: f525a73a78df9ed5d35e67ea65e79d53c15255bc
|
||||
RNAudio: cae2991f2dccb75163f260b60da8051717b959fa
|
||||
RNBootSplash: 73aabec1fc8f968798b655e7271760b17909648e
|
||||
RNDateTimePicker: 9db00606d689f5653f08aa601c81b9d3266a0a19
|
||||
RNDeviceInfo: 17e34f6dd902f08d88cbe2c0b7a01be948d43641
|
||||
RNFastImage: 9b0c22643872bb7494c8d87bbbb66cc4c0d9e7a2
|
||||
RNFirebase: ac0de8b24c6f91ae9459575491ed6a77327619c6
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
../../../../../node_modules/@react-native-community/datetimepicker/ios/RNDateTimePicker.h
|
|
@ -0,0 +1 @@
|
|||
../../../../../node_modules/@react-native-community/datetimepicker/ios/RNDateTimePickerManager.h
|
|
@ -0,0 +1 @@
|
|||
../../../../../node_modules/@react-native-community/datetimepicker/ios/RNDateTimePicker.h
|
|
@ -0,0 +1 @@
|
|||
../../../../../node_modules/@react-native-community/datetimepicker/ios/RNDateTimePickerManager.h
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"name": "RNDateTimePicker",
|
||||
"version": "2.1.0",
|
||||
"summary": "DateTimePicker component for React Native",
|
||||
"description": "DateTimePicker component for React Native",
|
||||
"license": "MIT",
|
||||
"authors": "Martijn Swaagman <mswaagman@godaddy.com> (https://github.com/swaagie)",
|
||||
"homepage": "https://github.com/react-native-community/react-native-datetimepicker#readme",
|
||||
"platforms": {
|
||||
"ios": "8.0"
|
||||
},
|
||||
"source": {
|
||||
"git": "https://github.com/react-native-community/react-native-datetimepicker",
|
||||
"tag": "master"
|
||||
},
|
||||
"source_files": "ios/*.{h,m}",
|
||||
"requires_arc": true,
|
||||
"dependencies": {
|
||||
"React": [
|
||||
|
||||
]
|
||||
}
|
||||
}
|
|
@ -355,6 +355,8 @@ PODS:
|
|||
- React
|
||||
- RNBootSplash (1.1.0):
|
||||
- React
|
||||
- RNDateTimePicker (2.1.0):
|
||||
- React
|
||||
- RNDeviceInfo (2.3.2):
|
||||
- React
|
||||
- RNFastImage (7.0.2):
|
||||
|
@ -468,6 +470,7 @@ DEPENDENCIES:
|
|||
- rn-fetch-blob (from `../node_modules/rn-fetch-blob`)
|
||||
- RNAudio (from `../node_modules/react-native-audio`)
|
||||
- RNBootSplash (from `../node_modules/react-native-bootsplash`)
|
||||
- "RNDateTimePicker (from `../node_modules/@react-native-community/datetimepicker`)"
|
||||
- RNDeviceInfo (from `../node_modules/react-native-device-info`)
|
||||
- RNFastImage (from `../node_modules/react-native-fast-image`)
|
||||
- RNFirebase (from `../node_modules/react-native-firebase/ios`)
|
||||
|
@ -625,6 +628,8 @@ EXTERNAL SOURCES:
|
|||
:path: "../node_modules/react-native-audio"
|
||||
RNBootSplash:
|
||||
:path: "../node_modules/react-native-bootsplash"
|
||||
RNDateTimePicker:
|
||||
:path: "../node_modules/@react-native-community/datetimepicker"
|
||||
RNDeviceInfo:
|
||||
:path: "../node_modules/react-native-device-info"
|
||||
RNFastImage:
|
||||
|
@ -759,6 +764,7 @@ SPEC CHECKSUMS:
|
|||
rn-fetch-blob: f525a73a78df9ed5d35e67ea65e79d53c15255bc
|
||||
RNAudio: cae2991f2dccb75163f260b60da8051717b959fa
|
||||
RNBootSplash: 73aabec1fc8f968798b655e7271760b17909648e
|
||||
RNDateTimePicker: 9db00606d689f5653f08aa601c81b9d3266a0a19
|
||||
RNDeviceInfo: 17e34f6dd902f08d88cbe2c0b7a01be948d43641
|
||||
RNFastImage: 9b0c22643872bb7494c8d87bbbb66cc4c0d9e7a2
|
||||
RNFirebase: ac0de8b24c6f91ae9459575491ed6a77327619c6
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1776,6 +1776,31 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|||
SOFTWARE.
|
||||
|
||||
|
||||
## RNDateTimePicker
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2019 React Native Community
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
|
||||
## RNDeviceInfo
|
||||
|
||||
The MIT License (MIT)
|
||||
|
|
|
@ -1901,6 +1901,37 @@ SOFTWARE.
|
|||
<key>Type</key>
|
||||
<string>PSGroupSpecifier</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>FooterText</key>
|
||||
<string>MIT License
|
||||
|
||||
Copyright (c) 2019 React Native Community
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
</string>
|
||||
<key>License</key>
|
||||
<string>MIT</string>
|
||||
<key>Title</key>
|
||||
<string>RNDateTimePicker</string>
|
||||
<key>Type</key>
|
||||
<string>PSGroupSpecifier</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>FooterText</key>
|
||||
<string>The MIT License (MIT)
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Crashlytics/iOS" "${PODS_ROOT}/Fabric/iOS" "${PODS_ROOT}/FirebaseAnalytics/Frameworks" "${PODS_ROOT}/GoogleAppMeasurement/Frameworks" "${PODS_ROOT}/JitsiMeetSDK/Frameworks"
|
||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) SD_WEBP=1 $(inherited) PB_FIELD_32BIT=1 PB_NO_PACKED_STRUCTS=1 PB_ENABLE_MALLOC=1
|
||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/BugsnagReactNative" "${PODS_ROOT}/Headers/Public/DoubleConversion" "${PODS_ROOT}/Headers/Public/EXAV" "${PODS_ROOT}/Headers/Public/EXAppLoaderProvider" "${PODS_ROOT}/Headers/Public/EXConstants" "${PODS_ROOT}/Headers/Public/EXFileSystem" "${PODS_ROOT}/Headers/Public/EXHaptics" "${PODS_ROOT}/Headers/Public/EXPermissions" "${PODS_ROOT}/Headers/Public/EXWebBrowser" "${PODS_ROOT}/Headers/Public/FBLazyVector" "${PODS_ROOT}/Headers/Public/FBReactNativeSpec" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseCore" "${PODS_ROOT}/Headers/Public/FirebaseCoreDiagnostics" "${PODS_ROOT}/Headers/Public/FirebaseCoreDiagnosticsInterop" "${PODS_ROOT}/Headers/Public/FirebaseInstanceID" "${PODS_ROOT}/Headers/Public/GoogleDataTransport" "${PODS_ROOT}/Headers/Public/GoogleDataTransportCCTSupport" "${PODS_ROOT}/Headers/Public/GoogleUtilities" "${PODS_ROOT}/Headers/Public/KeyCommands" "${PODS_ROOT}/Headers/Public/QBImagePickerController" "${PODS_ROOT}/Headers/Public/RCTRequired" "${PODS_ROOT}/Headers/Public/RCTTypeSafety" "${PODS_ROOT}/Headers/Public/RNAudio" "${PODS_ROOT}/Headers/Public/RNBootSplash" "${PODS_ROOT}/Headers/Public/RNDeviceInfo" "${PODS_ROOT}/Headers/Public/RNFastImage" "${PODS_ROOT}/Headers/Public/RNFirebase" "${PODS_ROOT}/Headers/Public/RNGestureHandler" "${PODS_ROOT}/Headers/Public/RNImageCropPicker" "${PODS_ROOT}/Headers/Public/RNLocalize" "${PODS_ROOT}/Headers/Public/RNReanimated" "${PODS_ROOT}/Headers/Public/RNRootView" "${PODS_ROOT}/Headers/Public/RNScreens" "${PODS_ROOT}/Headers/Public/RNUserDefaults" "${PODS_ROOT}/Headers/Public/RNVectorIcons" "${PODS_ROOT}/Headers/Public/RSKImageCropper" "${PODS_ROOT}/Headers/Public/React-Core" "${PODS_ROOT}/Headers/Public/React-RCTBlob" "${PODS_ROOT}/Headers/Public/React-RCTText" "${PODS_ROOT}/Headers/Public/React-cxxreact" "${PODS_ROOT}/Headers/Public/React-jsi" "${PODS_ROOT}/Headers/Public/React-jsiexecutor" "${PODS_ROOT}/Headers/Public/React-jsinspector" "${PODS_ROOT}/Headers/Public/ReactCommon" "${PODS_ROOT}/Headers/Public/ReactNativeART" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/SDWebImageWebPCoder" "${PODS_ROOT}/Headers/Public/UMBarCodeScannerInterface" "${PODS_ROOT}/Headers/Public/UMCameraInterface" "${PODS_ROOT}/Headers/Public/UMConstantsInterface" "${PODS_ROOT}/Headers/Public/UMCore" "${PODS_ROOT}/Headers/Public/UMFaceDetectorInterface" "${PODS_ROOT}/Headers/Public/UMFileSystemInterface" "${PODS_ROOT}/Headers/Public/UMFontInterface" "${PODS_ROOT}/Headers/Public/UMImageLoaderInterface" "${PODS_ROOT}/Headers/Public/UMPermissionsInterface" "${PODS_ROOT}/Headers/Public/UMReactNativeAdapter" "${PODS_ROOT}/Headers/Public/UMSensorsInterface" "${PODS_ROOT}/Headers/Public/UMTaskManagerInterface" "${PODS_ROOT}/Headers/Public/Yoga" "${PODS_ROOT}/Headers/Public/glog" "${PODS_ROOT}/Headers/Public/libwebp" "${PODS_ROOT}/Headers/Public/nanopb" "${PODS_ROOT}/Headers/Public/react-native-appearance" "${PODS_ROOT}/Headers/Public/react-native-background-timer" "${PODS_ROOT}/Headers/Public/react-native-cameraroll" "${PODS_ROOT}/Headers/Public/react-native-document-picker" "${PODS_ROOT}/Headers/Public/react-native-jitsi-meet" "${PODS_ROOT}/Headers/Public/react-native-keyboard-input" "${PODS_ROOT}/Headers/Public/react-native-keyboard-tracking-view" "${PODS_ROOT}/Headers/Public/react-native-notifications" "${PODS_ROOT}/Headers/Public/react-native-orientation-locker" "${PODS_ROOT}/Headers/Public/react-native-slider" "${PODS_ROOT}/Headers/Public/react-native-video" "${PODS_ROOT}/Headers/Public/react-native-webview" "${PODS_ROOT}/Headers/Public/rn-extensions-share" "${PODS_ROOT}/Headers/Public/rn-fetch-blob" $(inherited) ${PODS_ROOT}/Firebase/CoreOnly/Sources "$(PODS_ROOT)/Headers/Private/React-Core"
|
||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/BugsnagReactNative" "${PODS_ROOT}/Headers/Public/DoubleConversion" "${PODS_ROOT}/Headers/Public/EXAV" "${PODS_ROOT}/Headers/Public/EXAppLoaderProvider" "${PODS_ROOT}/Headers/Public/EXConstants" "${PODS_ROOT}/Headers/Public/EXFileSystem" "${PODS_ROOT}/Headers/Public/EXHaptics" "${PODS_ROOT}/Headers/Public/EXPermissions" "${PODS_ROOT}/Headers/Public/EXWebBrowser" "${PODS_ROOT}/Headers/Public/FBLazyVector" "${PODS_ROOT}/Headers/Public/FBReactNativeSpec" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseCore" "${PODS_ROOT}/Headers/Public/FirebaseCoreDiagnostics" "${PODS_ROOT}/Headers/Public/FirebaseCoreDiagnosticsInterop" "${PODS_ROOT}/Headers/Public/FirebaseInstanceID" "${PODS_ROOT}/Headers/Public/GoogleDataTransport" "${PODS_ROOT}/Headers/Public/GoogleDataTransportCCTSupport" "${PODS_ROOT}/Headers/Public/GoogleUtilities" "${PODS_ROOT}/Headers/Public/KeyCommands" "${PODS_ROOT}/Headers/Public/QBImagePickerController" "${PODS_ROOT}/Headers/Public/RCTRequired" "${PODS_ROOT}/Headers/Public/RCTTypeSafety" "${PODS_ROOT}/Headers/Public/RNAudio" "${PODS_ROOT}/Headers/Public/RNBootSplash" "${PODS_ROOT}/Headers/Public/RNDateTimePicker" "${PODS_ROOT}/Headers/Public/RNDeviceInfo" "${PODS_ROOT}/Headers/Public/RNFastImage" "${PODS_ROOT}/Headers/Public/RNFirebase" "${PODS_ROOT}/Headers/Public/RNGestureHandler" "${PODS_ROOT}/Headers/Public/RNImageCropPicker" "${PODS_ROOT}/Headers/Public/RNLocalize" "${PODS_ROOT}/Headers/Public/RNReanimated" "${PODS_ROOT}/Headers/Public/RNRootView" "${PODS_ROOT}/Headers/Public/RNScreens" "${PODS_ROOT}/Headers/Public/RNUserDefaults" "${PODS_ROOT}/Headers/Public/RNVectorIcons" "${PODS_ROOT}/Headers/Public/RSKImageCropper" "${PODS_ROOT}/Headers/Public/React-Core" "${PODS_ROOT}/Headers/Public/React-RCTBlob" "${PODS_ROOT}/Headers/Public/React-RCTText" "${PODS_ROOT}/Headers/Public/React-cxxreact" "${PODS_ROOT}/Headers/Public/React-jsi" "${PODS_ROOT}/Headers/Public/React-jsiexecutor" "${PODS_ROOT}/Headers/Public/React-jsinspector" "${PODS_ROOT}/Headers/Public/ReactCommon" "${PODS_ROOT}/Headers/Public/ReactNativeART" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/SDWebImageWebPCoder" "${PODS_ROOT}/Headers/Public/UMBarCodeScannerInterface" "${PODS_ROOT}/Headers/Public/UMCameraInterface" "${PODS_ROOT}/Headers/Public/UMConstantsInterface" "${PODS_ROOT}/Headers/Public/UMCore" "${PODS_ROOT}/Headers/Public/UMFaceDetectorInterface" "${PODS_ROOT}/Headers/Public/UMFileSystemInterface" "${PODS_ROOT}/Headers/Public/UMFontInterface" "${PODS_ROOT}/Headers/Public/UMImageLoaderInterface" "${PODS_ROOT}/Headers/Public/UMPermissionsInterface" "${PODS_ROOT}/Headers/Public/UMReactNativeAdapter" "${PODS_ROOT}/Headers/Public/UMSensorsInterface" "${PODS_ROOT}/Headers/Public/UMTaskManagerInterface" "${PODS_ROOT}/Headers/Public/Yoga" "${PODS_ROOT}/Headers/Public/glog" "${PODS_ROOT}/Headers/Public/libwebp" "${PODS_ROOT}/Headers/Public/nanopb" "${PODS_ROOT}/Headers/Public/react-native-appearance" "${PODS_ROOT}/Headers/Public/react-native-background-timer" "${PODS_ROOT}/Headers/Public/react-native-cameraroll" "${PODS_ROOT}/Headers/Public/react-native-document-picker" "${PODS_ROOT}/Headers/Public/react-native-jitsi-meet" "${PODS_ROOT}/Headers/Public/react-native-keyboard-input" "${PODS_ROOT}/Headers/Public/react-native-keyboard-tracking-view" "${PODS_ROOT}/Headers/Public/react-native-notifications" "${PODS_ROOT}/Headers/Public/react-native-orientation-locker" "${PODS_ROOT}/Headers/Public/react-native-slider" "${PODS_ROOT}/Headers/Public/react-native-video" "${PODS_ROOT}/Headers/Public/react-native-webview" "${PODS_ROOT}/Headers/Public/rn-extensions-share" "${PODS_ROOT}/Headers/Public/rn-fetch-blob" $(inherited) ${PODS_ROOT}/Firebase/CoreOnly/Sources "$(PODS_ROOT)/Headers/Private/React-Core"
|
||||
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
|
||||
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BugsnagReactNative" "${PODS_CONFIGURATION_BUILD_DIR}/DoubleConversion" "${PODS_CONFIGURATION_BUILD_DIR}/EXAV" "${PODS_CONFIGURATION_BUILD_DIR}/EXAppLoaderProvider" "${PODS_CONFIGURATION_BUILD_DIR}/EXConstants" "${PODS_CONFIGURATION_BUILD_DIR}/EXFileSystem" "${PODS_CONFIGURATION_BUILD_DIR}/EXHaptics" "${PODS_CONFIGURATION_BUILD_DIR}/EXPermissions" "${PODS_CONFIGURATION_BUILD_DIR}/EXWebBrowser" "${PODS_CONFIGURATION_BUILD_DIR}/FBReactNativeSpec" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreDiagnostics" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID" "${PODS_CONFIGURATION_BUILD_DIR}/Folly" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransportCCTSupport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/KeyCommands" "${PODS_CONFIGURATION_BUILD_DIR}/QBImagePickerController" "${PODS_CONFIGURATION_BUILD_DIR}/RCTTypeSafety" "${PODS_CONFIGURATION_BUILD_DIR}/RNAudio" "${PODS_CONFIGURATION_BUILD_DIR}/RNBootSplash" "${PODS_CONFIGURATION_BUILD_DIR}/RNDeviceInfo" "${PODS_CONFIGURATION_BUILD_DIR}/RNFastImage" "${PODS_CONFIGURATION_BUILD_DIR}/RNFirebase" "${PODS_CONFIGURATION_BUILD_DIR}/RNGestureHandler" "${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker" "${PODS_CONFIGURATION_BUILD_DIR}/RNLocalize" "${PODS_CONFIGURATION_BUILD_DIR}/RNReanimated" "${PODS_CONFIGURATION_BUILD_DIR}/RNRootView" "${PODS_CONFIGURATION_BUILD_DIR}/RNScreens" "${PODS_CONFIGURATION_BUILD_DIR}/RNUserDefaults" "${PODS_CONFIGURATION_BUILD_DIR}/RNVectorIcons" "${PODS_CONFIGURATION_BUILD_DIR}/RSKImageCropper" "${PODS_CONFIGURATION_BUILD_DIR}/React-Core" "${PODS_CONFIGURATION_BUILD_DIR}/React-CoreModules" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTActionSheet" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTAnimation" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTBlob" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTImage" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTLinking" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTNetwork" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTSettings" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTText" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTVibration" "${PODS_CONFIGURATION_BUILD_DIR}/React-cxxreact" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsi" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsiexecutor" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsinspector" "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon" "${PODS_CONFIGURATION_BUILD_DIR}/ReactNativeART" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageWebPCoder" "${PODS_CONFIGURATION_BUILD_DIR}/UMCore" "${PODS_CONFIGURATION_BUILD_DIR}/UMReactNativeAdapter" "${PODS_CONFIGURATION_BUILD_DIR}/Yoga" "${PODS_CONFIGURATION_BUILD_DIR}/glog" "${PODS_CONFIGURATION_BUILD_DIR}/libwebp" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-appearance" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-background-timer" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-cameraroll" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-document-picker" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-jitsi-meet" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-keyboard-input" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-keyboard-tracking-view" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-notifications" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-orientation-locker" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-slider" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-video" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-webview" "${PODS_CONFIGURATION_BUILD_DIR}/rn-extensions-share" "${PODS_CONFIGURATION_BUILD_DIR}/rn-fetch-blob"
|
||||
OTHER_LDFLAGS = $(inherited) -ObjC -l"BugsnagReactNative" -l"DoubleConversion" -l"EXAV" -l"EXAppLoaderProvider" -l"EXConstants" -l"EXFileSystem" -l"EXHaptics" -l"EXPermissions" -l"EXWebBrowser" -l"FBReactNativeSpec" -l"FirebaseCore" -l"FirebaseCoreDiagnostics" -l"FirebaseInstanceID" -l"Folly" -l"GoogleDataTransport" -l"GoogleDataTransportCCTSupport" -l"GoogleUtilities" -l"KeyCommands" -l"QBImagePickerController" -l"RCTTypeSafety" -l"RNAudio" -l"RNBootSplash" -l"RNDeviceInfo" -l"RNFastImage" -l"RNFirebase" -l"RNGestureHandler" -l"RNImageCropPicker" -l"RNLocalize" -l"RNReanimated" -l"RNRootView" -l"RNScreens" -l"RNUserDefaults" -l"RNVectorIcons" -l"RSKImageCropper" -l"React-Core" -l"React-CoreModules" -l"React-RCTActionSheet" -l"React-RCTAnimation" -l"React-RCTBlob" -l"React-RCTImage" -l"React-RCTLinking" -l"React-RCTNetwork" -l"React-RCTSettings" -l"React-RCTText" -l"React-RCTVibration" -l"React-cxxreact" -l"React-jsi" -l"React-jsiexecutor" -l"React-jsinspector" -l"ReactCommon" -l"ReactNativeART" -l"SDWebImage" -l"SDWebImageWebPCoder" -l"UMCore" -l"UMReactNativeAdapter" -l"Yoga" -l"c++" -l"glog" -l"libwebp" -l"nanopb" -l"react-native-appearance" -l"react-native-background-timer" -l"react-native-cameraroll" -l"react-native-document-picker" -l"react-native-jitsi-meet" -l"react-native-keyboard-input" -l"react-native-keyboard-tracking-view" -l"react-native-notifications" -l"react-native-orientation-locker" -l"react-native-slider" -l"react-native-video" -l"react-native-webview" -l"rn-extensions-share" -l"rn-fetch-blob" -l"sqlite3" -l"stdc++" -l"z" -framework "AVFoundation" -framework "Crashlytics" -framework "FIRAnalyticsConnector" -framework "Fabric" -framework "FirebaseAnalytics" -framework "Foundation" -framework "GoogleAppMeasurement" -framework "ImageIO" -framework "JavaScriptCore" -framework "JitsiMeet" -framework "MessageUI" -framework "Photos" -framework "QuartzCore" -framework "Security" -framework "StoreKit" -framework "SystemConfiguration" -framework "UIKit" -framework "WebRTC"
|
||||
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BugsnagReactNative" "${PODS_CONFIGURATION_BUILD_DIR}/DoubleConversion" "${PODS_CONFIGURATION_BUILD_DIR}/EXAV" "${PODS_CONFIGURATION_BUILD_DIR}/EXAppLoaderProvider" "${PODS_CONFIGURATION_BUILD_DIR}/EXConstants" "${PODS_CONFIGURATION_BUILD_DIR}/EXFileSystem" "${PODS_CONFIGURATION_BUILD_DIR}/EXHaptics" "${PODS_CONFIGURATION_BUILD_DIR}/EXPermissions" "${PODS_CONFIGURATION_BUILD_DIR}/EXWebBrowser" "${PODS_CONFIGURATION_BUILD_DIR}/FBReactNativeSpec" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreDiagnostics" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID" "${PODS_CONFIGURATION_BUILD_DIR}/Folly" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransportCCTSupport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/KeyCommands" "${PODS_CONFIGURATION_BUILD_DIR}/QBImagePickerController" "${PODS_CONFIGURATION_BUILD_DIR}/RCTTypeSafety" "${PODS_CONFIGURATION_BUILD_DIR}/RNAudio" "${PODS_CONFIGURATION_BUILD_DIR}/RNBootSplash" "${PODS_CONFIGURATION_BUILD_DIR}/RNDateTimePicker" "${PODS_CONFIGURATION_BUILD_DIR}/RNDeviceInfo" "${PODS_CONFIGURATION_BUILD_DIR}/RNFastImage" "${PODS_CONFIGURATION_BUILD_DIR}/RNFirebase" "${PODS_CONFIGURATION_BUILD_DIR}/RNGestureHandler" "${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker" "${PODS_CONFIGURATION_BUILD_DIR}/RNLocalize" "${PODS_CONFIGURATION_BUILD_DIR}/RNReanimated" "${PODS_CONFIGURATION_BUILD_DIR}/RNRootView" "${PODS_CONFIGURATION_BUILD_DIR}/RNScreens" "${PODS_CONFIGURATION_BUILD_DIR}/RNUserDefaults" "${PODS_CONFIGURATION_BUILD_DIR}/RNVectorIcons" "${PODS_CONFIGURATION_BUILD_DIR}/RSKImageCropper" "${PODS_CONFIGURATION_BUILD_DIR}/React-Core" "${PODS_CONFIGURATION_BUILD_DIR}/React-CoreModules" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTActionSheet" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTAnimation" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTBlob" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTImage" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTLinking" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTNetwork" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTSettings" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTText" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTVibration" "${PODS_CONFIGURATION_BUILD_DIR}/React-cxxreact" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsi" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsiexecutor" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsinspector" "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon" "${PODS_CONFIGURATION_BUILD_DIR}/ReactNativeART" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageWebPCoder" "${PODS_CONFIGURATION_BUILD_DIR}/UMCore" "${PODS_CONFIGURATION_BUILD_DIR}/UMReactNativeAdapter" "${PODS_CONFIGURATION_BUILD_DIR}/Yoga" "${PODS_CONFIGURATION_BUILD_DIR}/glog" "${PODS_CONFIGURATION_BUILD_DIR}/libwebp" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-appearance" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-background-timer" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-cameraroll" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-document-picker" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-jitsi-meet" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-keyboard-input" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-keyboard-tracking-view" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-notifications" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-orientation-locker" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-slider" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-video" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-webview" "${PODS_CONFIGURATION_BUILD_DIR}/rn-extensions-share" "${PODS_CONFIGURATION_BUILD_DIR}/rn-fetch-blob"
|
||||
OTHER_LDFLAGS = $(inherited) -ObjC -l"BugsnagReactNative" -l"DoubleConversion" -l"EXAV" -l"EXAppLoaderProvider" -l"EXConstants" -l"EXFileSystem" -l"EXHaptics" -l"EXPermissions" -l"EXWebBrowser" -l"FBReactNativeSpec" -l"FirebaseCore" -l"FirebaseCoreDiagnostics" -l"FirebaseInstanceID" -l"Folly" -l"GoogleDataTransport" -l"GoogleDataTransportCCTSupport" -l"GoogleUtilities" -l"KeyCommands" -l"QBImagePickerController" -l"RCTTypeSafety" -l"RNAudio" -l"RNBootSplash" -l"RNDateTimePicker" -l"RNDeviceInfo" -l"RNFastImage" -l"RNFirebase" -l"RNGestureHandler" -l"RNImageCropPicker" -l"RNLocalize" -l"RNReanimated" -l"RNRootView" -l"RNScreens" -l"RNUserDefaults" -l"RNVectorIcons" -l"RSKImageCropper" -l"React-Core" -l"React-CoreModules" -l"React-RCTActionSheet" -l"React-RCTAnimation" -l"React-RCTBlob" -l"React-RCTImage" -l"React-RCTLinking" -l"React-RCTNetwork" -l"React-RCTSettings" -l"React-RCTText" -l"React-RCTVibration" -l"React-cxxreact" -l"React-jsi" -l"React-jsiexecutor" -l"React-jsinspector" -l"ReactCommon" -l"ReactNativeART" -l"SDWebImage" -l"SDWebImageWebPCoder" -l"UMCore" -l"UMReactNativeAdapter" -l"Yoga" -l"c++" -l"glog" -l"libwebp" -l"nanopb" -l"react-native-appearance" -l"react-native-background-timer" -l"react-native-cameraroll" -l"react-native-document-picker" -l"react-native-jitsi-meet" -l"react-native-keyboard-input" -l"react-native-keyboard-tracking-view" -l"react-native-notifications" -l"react-native-orientation-locker" -l"react-native-slider" -l"react-native-video" -l"react-native-webview" -l"rn-extensions-share" -l"rn-fetch-blob" -l"sqlite3" -l"stdc++" -l"z" -framework "AVFoundation" -framework "Crashlytics" -framework "FIRAnalyticsConnector" -framework "Fabric" -framework "FirebaseAnalytics" -framework "Foundation" -framework "GoogleAppMeasurement" -framework "ImageIO" -framework "JavaScriptCore" -framework "JitsiMeet" -framework "MessageUI" -framework "Photos" -framework "QuartzCore" -framework "Security" -framework "StoreKit" -framework "SystemConfiguration" -framework "UIKit" -framework "WebRTC"
|
||||
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Crashlytics/iOS" "${PODS_ROOT}/Fabric/iOS" "${PODS_ROOT}/FirebaseAnalytics/Frameworks" "${PODS_ROOT}/GoogleAppMeasurement/Frameworks" "${PODS_ROOT}/JitsiMeetSDK/Frameworks"
|
||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) SD_WEBP=1 $(inherited) PB_FIELD_32BIT=1 PB_NO_PACKED_STRUCTS=1 PB_ENABLE_MALLOC=1
|
||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/BugsnagReactNative" "${PODS_ROOT}/Headers/Public/DoubleConversion" "${PODS_ROOT}/Headers/Public/EXAV" "${PODS_ROOT}/Headers/Public/EXAppLoaderProvider" "${PODS_ROOT}/Headers/Public/EXConstants" "${PODS_ROOT}/Headers/Public/EXFileSystem" "${PODS_ROOT}/Headers/Public/EXHaptics" "${PODS_ROOT}/Headers/Public/EXPermissions" "${PODS_ROOT}/Headers/Public/EXWebBrowser" "${PODS_ROOT}/Headers/Public/FBLazyVector" "${PODS_ROOT}/Headers/Public/FBReactNativeSpec" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseCore" "${PODS_ROOT}/Headers/Public/FirebaseCoreDiagnostics" "${PODS_ROOT}/Headers/Public/FirebaseCoreDiagnosticsInterop" "${PODS_ROOT}/Headers/Public/FirebaseInstanceID" "${PODS_ROOT}/Headers/Public/GoogleDataTransport" "${PODS_ROOT}/Headers/Public/GoogleDataTransportCCTSupport" "${PODS_ROOT}/Headers/Public/GoogleUtilities" "${PODS_ROOT}/Headers/Public/KeyCommands" "${PODS_ROOT}/Headers/Public/QBImagePickerController" "${PODS_ROOT}/Headers/Public/RCTRequired" "${PODS_ROOT}/Headers/Public/RCTTypeSafety" "${PODS_ROOT}/Headers/Public/RNAudio" "${PODS_ROOT}/Headers/Public/RNBootSplash" "${PODS_ROOT}/Headers/Public/RNDeviceInfo" "${PODS_ROOT}/Headers/Public/RNFastImage" "${PODS_ROOT}/Headers/Public/RNFirebase" "${PODS_ROOT}/Headers/Public/RNGestureHandler" "${PODS_ROOT}/Headers/Public/RNImageCropPicker" "${PODS_ROOT}/Headers/Public/RNLocalize" "${PODS_ROOT}/Headers/Public/RNReanimated" "${PODS_ROOT}/Headers/Public/RNRootView" "${PODS_ROOT}/Headers/Public/RNScreens" "${PODS_ROOT}/Headers/Public/RNUserDefaults" "${PODS_ROOT}/Headers/Public/RNVectorIcons" "${PODS_ROOT}/Headers/Public/RSKImageCropper" "${PODS_ROOT}/Headers/Public/React-Core" "${PODS_ROOT}/Headers/Public/React-RCTBlob" "${PODS_ROOT}/Headers/Public/React-RCTText" "${PODS_ROOT}/Headers/Public/React-cxxreact" "${PODS_ROOT}/Headers/Public/React-jsi" "${PODS_ROOT}/Headers/Public/React-jsiexecutor" "${PODS_ROOT}/Headers/Public/React-jsinspector" "${PODS_ROOT}/Headers/Public/ReactCommon" "${PODS_ROOT}/Headers/Public/ReactNativeART" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/SDWebImageWebPCoder" "${PODS_ROOT}/Headers/Public/UMBarCodeScannerInterface" "${PODS_ROOT}/Headers/Public/UMCameraInterface" "${PODS_ROOT}/Headers/Public/UMConstantsInterface" "${PODS_ROOT}/Headers/Public/UMCore" "${PODS_ROOT}/Headers/Public/UMFaceDetectorInterface" "${PODS_ROOT}/Headers/Public/UMFileSystemInterface" "${PODS_ROOT}/Headers/Public/UMFontInterface" "${PODS_ROOT}/Headers/Public/UMImageLoaderInterface" "${PODS_ROOT}/Headers/Public/UMPermissionsInterface" "${PODS_ROOT}/Headers/Public/UMReactNativeAdapter" "${PODS_ROOT}/Headers/Public/UMSensorsInterface" "${PODS_ROOT}/Headers/Public/UMTaskManagerInterface" "${PODS_ROOT}/Headers/Public/Yoga" "${PODS_ROOT}/Headers/Public/glog" "${PODS_ROOT}/Headers/Public/libwebp" "${PODS_ROOT}/Headers/Public/nanopb" "${PODS_ROOT}/Headers/Public/react-native-appearance" "${PODS_ROOT}/Headers/Public/react-native-background-timer" "${PODS_ROOT}/Headers/Public/react-native-cameraroll" "${PODS_ROOT}/Headers/Public/react-native-document-picker" "${PODS_ROOT}/Headers/Public/react-native-jitsi-meet" "${PODS_ROOT}/Headers/Public/react-native-keyboard-input" "${PODS_ROOT}/Headers/Public/react-native-keyboard-tracking-view" "${PODS_ROOT}/Headers/Public/react-native-notifications" "${PODS_ROOT}/Headers/Public/react-native-orientation-locker" "${PODS_ROOT}/Headers/Public/react-native-slider" "${PODS_ROOT}/Headers/Public/react-native-video" "${PODS_ROOT}/Headers/Public/react-native-webview" "${PODS_ROOT}/Headers/Public/rn-extensions-share" "${PODS_ROOT}/Headers/Public/rn-fetch-blob" $(inherited) ${PODS_ROOT}/Firebase/CoreOnly/Sources "$(PODS_ROOT)/Headers/Private/React-Core"
|
||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/BugsnagReactNative" "${PODS_ROOT}/Headers/Public/DoubleConversion" "${PODS_ROOT}/Headers/Public/EXAV" "${PODS_ROOT}/Headers/Public/EXAppLoaderProvider" "${PODS_ROOT}/Headers/Public/EXConstants" "${PODS_ROOT}/Headers/Public/EXFileSystem" "${PODS_ROOT}/Headers/Public/EXHaptics" "${PODS_ROOT}/Headers/Public/EXPermissions" "${PODS_ROOT}/Headers/Public/EXWebBrowser" "${PODS_ROOT}/Headers/Public/FBLazyVector" "${PODS_ROOT}/Headers/Public/FBReactNativeSpec" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseCore" "${PODS_ROOT}/Headers/Public/FirebaseCoreDiagnostics" "${PODS_ROOT}/Headers/Public/FirebaseCoreDiagnosticsInterop" "${PODS_ROOT}/Headers/Public/FirebaseInstanceID" "${PODS_ROOT}/Headers/Public/GoogleDataTransport" "${PODS_ROOT}/Headers/Public/GoogleDataTransportCCTSupport" "${PODS_ROOT}/Headers/Public/GoogleUtilities" "${PODS_ROOT}/Headers/Public/KeyCommands" "${PODS_ROOT}/Headers/Public/QBImagePickerController" "${PODS_ROOT}/Headers/Public/RCTRequired" "${PODS_ROOT}/Headers/Public/RCTTypeSafety" "${PODS_ROOT}/Headers/Public/RNAudio" "${PODS_ROOT}/Headers/Public/RNBootSplash" "${PODS_ROOT}/Headers/Public/RNDateTimePicker" "${PODS_ROOT}/Headers/Public/RNDeviceInfo" "${PODS_ROOT}/Headers/Public/RNFastImage" "${PODS_ROOT}/Headers/Public/RNFirebase" "${PODS_ROOT}/Headers/Public/RNGestureHandler" "${PODS_ROOT}/Headers/Public/RNImageCropPicker" "${PODS_ROOT}/Headers/Public/RNLocalize" "${PODS_ROOT}/Headers/Public/RNReanimated" "${PODS_ROOT}/Headers/Public/RNRootView" "${PODS_ROOT}/Headers/Public/RNScreens" "${PODS_ROOT}/Headers/Public/RNUserDefaults" "${PODS_ROOT}/Headers/Public/RNVectorIcons" "${PODS_ROOT}/Headers/Public/RSKImageCropper" "${PODS_ROOT}/Headers/Public/React-Core" "${PODS_ROOT}/Headers/Public/React-RCTBlob" "${PODS_ROOT}/Headers/Public/React-RCTText" "${PODS_ROOT}/Headers/Public/React-cxxreact" "${PODS_ROOT}/Headers/Public/React-jsi" "${PODS_ROOT}/Headers/Public/React-jsiexecutor" "${PODS_ROOT}/Headers/Public/React-jsinspector" "${PODS_ROOT}/Headers/Public/ReactCommon" "${PODS_ROOT}/Headers/Public/ReactNativeART" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/SDWebImageWebPCoder" "${PODS_ROOT}/Headers/Public/UMBarCodeScannerInterface" "${PODS_ROOT}/Headers/Public/UMCameraInterface" "${PODS_ROOT}/Headers/Public/UMConstantsInterface" "${PODS_ROOT}/Headers/Public/UMCore" "${PODS_ROOT}/Headers/Public/UMFaceDetectorInterface" "${PODS_ROOT}/Headers/Public/UMFileSystemInterface" "${PODS_ROOT}/Headers/Public/UMFontInterface" "${PODS_ROOT}/Headers/Public/UMImageLoaderInterface" "${PODS_ROOT}/Headers/Public/UMPermissionsInterface" "${PODS_ROOT}/Headers/Public/UMReactNativeAdapter" "${PODS_ROOT}/Headers/Public/UMSensorsInterface" "${PODS_ROOT}/Headers/Public/UMTaskManagerInterface" "${PODS_ROOT}/Headers/Public/Yoga" "${PODS_ROOT}/Headers/Public/glog" "${PODS_ROOT}/Headers/Public/libwebp" "${PODS_ROOT}/Headers/Public/nanopb" "${PODS_ROOT}/Headers/Public/react-native-appearance" "${PODS_ROOT}/Headers/Public/react-native-background-timer" "${PODS_ROOT}/Headers/Public/react-native-cameraroll" "${PODS_ROOT}/Headers/Public/react-native-document-picker" "${PODS_ROOT}/Headers/Public/react-native-jitsi-meet" "${PODS_ROOT}/Headers/Public/react-native-keyboard-input" "${PODS_ROOT}/Headers/Public/react-native-keyboard-tracking-view" "${PODS_ROOT}/Headers/Public/react-native-notifications" "${PODS_ROOT}/Headers/Public/react-native-orientation-locker" "${PODS_ROOT}/Headers/Public/react-native-slider" "${PODS_ROOT}/Headers/Public/react-native-video" "${PODS_ROOT}/Headers/Public/react-native-webview" "${PODS_ROOT}/Headers/Public/rn-extensions-share" "${PODS_ROOT}/Headers/Public/rn-fetch-blob" $(inherited) ${PODS_ROOT}/Firebase/CoreOnly/Sources "$(PODS_ROOT)/Headers/Private/React-Core"
|
||||
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
|
||||
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BugsnagReactNative" "${PODS_CONFIGURATION_BUILD_DIR}/DoubleConversion" "${PODS_CONFIGURATION_BUILD_DIR}/EXAV" "${PODS_CONFIGURATION_BUILD_DIR}/EXAppLoaderProvider" "${PODS_CONFIGURATION_BUILD_DIR}/EXConstants" "${PODS_CONFIGURATION_BUILD_DIR}/EXFileSystem" "${PODS_CONFIGURATION_BUILD_DIR}/EXHaptics" "${PODS_CONFIGURATION_BUILD_DIR}/EXPermissions" "${PODS_CONFIGURATION_BUILD_DIR}/EXWebBrowser" "${PODS_CONFIGURATION_BUILD_DIR}/FBReactNativeSpec" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreDiagnostics" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID" "${PODS_CONFIGURATION_BUILD_DIR}/Folly" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransportCCTSupport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/KeyCommands" "${PODS_CONFIGURATION_BUILD_DIR}/QBImagePickerController" "${PODS_CONFIGURATION_BUILD_DIR}/RCTTypeSafety" "${PODS_CONFIGURATION_BUILD_DIR}/RNAudio" "${PODS_CONFIGURATION_BUILD_DIR}/RNBootSplash" "${PODS_CONFIGURATION_BUILD_DIR}/RNDeviceInfo" "${PODS_CONFIGURATION_BUILD_DIR}/RNFastImage" "${PODS_CONFIGURATION_BUILD_DIR}/RNFirebase" "${PODS_CONFIGURATION_BUILD_DIR}/RNGestureHandler" "${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker" "${PODS_CONFIGURATION_BUILD_DIR}/RNLocalize" "${PODS_CONFIGURATION_BUILD_DIR}/RNReanimated" "${PODS_CONFIGURATION_BUILD_DIR}/RNRootView" "${PODS_CONFIGURATION_BUILD_DIR}/RNScreens" "${PODS_CONFIGURATION_BUILD_DIR}/RNUserDefaults" "${PODS_CONFIGURATION_BUILD_DIR}/RNVectorIcons" "${PODS_CONFIGURATION_BUILD_DIR}/RSKImageCropper" "${PODS_CONFIGURATION_BUILD_DIR}/React-Core" "${PODS_CONFIGURATION_BUILD_DIR}/React-CoreModules" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTActionSheet" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTAnimation" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTBlob" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTImage" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTLinking" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTNetwork" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTSettings" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTText" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTVibration" "${PODS_CONFIGURATION_BUILD_DIR}/React-cxxreact" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsi" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsiexecutor" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsinspector" "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon" "${PODS_CONFIGURATION_BUILD_DIR}/ReactNativeART" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageWebPCoder" "${PODS_CONFIGURATION_BUILD_DIR}/UMCore" "${PODS_CONFIGURATION_BUILD_DIR}/UMReactNativeAdapter" "${PODS_CONFIGURATION_BUILD_DIR}/Yoga" "${PODS_CONFIGURATION_BUILD_DIR}/glog" "${PODS_CONFIGURATION_BUILD_DIR}/libwebp" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-appearance" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-background-timer" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-cameraroll" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-document-picker" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-jitsi-meet" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-keyboard-input" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-keyboard-tracking-view" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-notifications" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-orientation-locker" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-slider" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-video" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-webview" "${PODS_CONFIGURATION_BUILD_DIR}/rn-extensions-share" "${PODS_CONFIGURATION_BUILD_DIR}/rn-fetch-blob"
|
||||
OTHER_LDFLAGS = $(inherited) -ObjC -l"BugsnagReactNative" -l"DoubleConversion" -l"EXAV" -l"EXAppLoaderProvider" -l"EXConstants" -l"EXFileSystem" -l"EXHaptics" -l"EXPermissions" -l"EXWebBrowser" -l"FBReactNativeSpec" -l"FirebaseCore" -l"FirebaseCoreDiagnostics" -l"FirebaseInstanceID" -l"Folly" -l"GoogleDataTransport" -l"GoogleDataTransportCCTSupport" -l"GoogleUtilities" -l"KeyCommands" -l"QBImagePickerController" -l"RCTTypeSafety" -l"RNAudio" -l"RNBootSplash" -l"RNDeviceInfo" -l"RNFastImage" -l"RNFirebase" -l"RNGestureHandler" -l"RNImageCropPicker" -l"RNLocalize" -l"RNReanimated" -l"RNRootView" -l"RNScreens" -l"RNUserDefaults" -l"RNVectorIcons" -l"RSKImageCropper" -l"React-Core" -l"React-CoreModules" -l"React-RCTActionSheet" -l"React-RCTAnimation" -l"React-RCTBlob" -l"React-RCTImage" -l"React-RCTLinking" -l"React-RCTNetwork" -l"React-RCTSettings" -l"React-RCTText" -l"React-RCTVibration" -l"React-cxxreact" -l"React-jsi" -l"React-jsiexecutor" -l"React-jsinspector" -l"ReactCommon" -l"ReactNativeART" -l"SDWebImage" -l"SDWebImageWebPCoder" -l"UMCore" -l"UMReactNativeAdapter" -l"Yoga" -l"c++" -l"glog" -l"libwebp" -l"nanopb" -l"react-native-appearance" -l"react-native-background-timer" -l"react-native-cameraroll" -l"react-native-document-picker" -l"react-native-jitsi-meet" -l"react-native-keyboard-input" -l"react-native-keyboard-tracking-view" -l"react-native-notifications" -l"react-native-orientation-locker" -l"react-native-slider" -l"react-native-video" -l"react-native-webview" -l"rn-extensions-share" -l"rn-fetch-blob" -l"sqlite3" -l"stdc++" -l"z" -framework "AVFoundation" -framework "Crashlytics" -framework "FIRAnalyticsConnector" -framework "Fabric" -framework "FirebaseAnalytics" -framework "Foundation" -framework "GoogleAppMeasurement" -framework "ImageIO" -framework "JavaScriptCore" -framework "JitsiMeet" -framework "MessageUI" -framework "Photos" -framework "QuartzCore" -framework "Security" -framework "StoreKit" -framework "SystemConfiguration" -framework "UIKit" -framework "WebRTC"
|
||||
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BugsnagReactNative" "${PODS_CONFIGURATION_BUILD_DIR}/DoubleConversion" "${PODS_CONFIGURATION_BUILD_DIR}/EXAV" "${PODS_CONFIGURATION_BUILD_DIR}/EXAppLoaderProvider" "${PODS_CONFIGURATION_BUILD_DIR}/EXConstants" "${PODS_CONFIGURATION_BUILD_DIR}/EXFileSystem" "${PODS_CONFIGURATION_BUILD_DIR}/EXHaptics" "${PODS_CONFIGURATION_BUILD_DIR}/EXPermissions" "${PODS_CONFIGURATION_BUILD_DIR}/EXWebBrowser" "${PODS_CONFIGURATION_BUILD_DIR}/FBReactNativeSpec" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreDiagnostics" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID" "${PODS_CONFIGURATION_BUILD_DIR}/Folly" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransportCCTSupport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/KeyCommands" "${PODS_CONFIGURATION_BUILD_DIR}/QBImagePickerController" "${PODS_CONFIGURATION_BUILD_DIR}/RCTTypeSafety" "${PODS_CONFIGURATION_BUILD_DIR}/RNAudio" "${PODS_CONFIGURATION_BUILD_DIR}/RNBootSplash" "${PODS_CONFIGURATION_BUILD_DIR}/RNDateTimePicker" "${PODS_CONFIGURATION_BUILD_DIR}/RNDeviceInfo" "${PODS_CONFIGURATION_BUILD_DIR}/RNFastImage" "${PODS_CONFIGURATION_BUILD_DIR}/RNFirebase" "${PODS_CONFIGURATION_BUILD_DIR}/RNGestureHandler" "${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker" "${PODS_CONFIGURATION_BUILD_DIR}/RNLocalize" "${PODS_CONFIGURATION_BUILD_DIR}/RNReanimated" "${PODS_CONFIGURATION_BUILD_DIR}/RNRootView" "${PODS_CONFIGURATION_BUILD_DIR}/RNScreens" "${PODS_CONFIGURATION_BUILD_DIR}/RNUserDefaults" "${PODS_CONFIGURATION_BUILD_DIR}/RNVectorIcons" "${PODS_CONFIGURATION_BUILD_DIR}/RSKImageCropper" "${PODS_CONFIGURATION_BUILD_DIR}/React-Core" "${PODS_CONFIGURATION_BUILD_DIR}/React-CoreModules" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTActionSheet" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTAnimation" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTBlob" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTImage" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTLinking" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTNetwork" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTSettings" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTText" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTVibration" "${PODS_CONFIGURATION_BUILD_DIR}/React-cxxreact" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsi" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsiexecutor" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsinspector" "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon" "${PODS_CONFIGURATION_BUILD_DIR}/ReactNativeART" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageWebPCoder" "${PODS_CONFIGURATION_BUILD_DIR}/UMCore" "${PODS_CONFIGURATION_BUILD_DIR}/UMReactNativeAdapter" "${PODS_CONFIGURATION_BUILD_DIR}/Yoga" "${PODS_CONFIGURATION_BUILD_DIR}/glog" "${PODS_CONFIGURATION_BUILD_DIR}/libwebp" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-appearance" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-background-timer" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-cameraroll" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-document-picker" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-jitsi-meet" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-keyboard-input" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-keyboard-tracking-view" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-notifications" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-orientation-locker" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-slider" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-video" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-webview" "${PODS_CONFIGURATION_BUILD_DIR}/rn-extensions-share" "${PODS_CONFIGURATION_BUILD_DIR}/rn-fetch-blob"
|
||||
OTHER_LDFLAGS = $(inherited) -ObjC -l"BugsnagReactNative" -l"DoubleConversion" -l"EXAV" -l"EXAppLoaderProvider" -l"EXConstants" -l"EXFileSystem" -l"EXHaptics" -l"EXPermissions" -l"EXWebBrowser" -l"FBReactNativeSpec" -l"FirebaseCore" -l"FirebaseCoreDiagnostics" -l"FirebaseInstanceID" -l"Folly" -l"GoogleDataTransport" -l"GoogleDataTransportCCTSupport" -l"GoogleUtilities" -l"KeyCommands" -l"QBImagePickerController" -l"RCTTypeSafety" -l"RNAudio" -l"RNBootSplash" -l"RNDateTimePicker" -l"RNDeviceInfo" -l"RNFastImage" -l"RNFirebase" -l"RNGestureHandler" -l"RNImageCropPicker" -l"RNLocalize" -l"RNReanimated" -l"RNRootView" -l"RNScreens" -l"RNUserDefaults" -l"RNVectorIcons" -l"RSKImageCropper" -l"React-Core" -l"React-CoreModules" -l"React-RCTActionSheet" -l"React-RCTAnimation" -l"React-RCTBlob" -l"React-RCTImage" -l"React-RCTLinking" -l"React-RCTNetwork" -l"React-RCTSettings" -l"React-RCTText" -l"React-RCTVibration" -l"React-cxxreact" -l"React-jsi" -l"React-jsiexecutor" -l"React-jsinspector" -l"ReactCommon" -l"ReactNativeART" -l"SDWebImage" -l"SDWebImageWebPCoder" -l"UMCore" -l"UMReactNativeAdapter" -l"Yoga" -l"c++" -l"glog" -l"libwebp" -l"nanopb" -l"react-native-appearance" -l"react-native-background-timer" -l"react-native-cameraroll" -l"react-native-document-picker" -l"react-native-jitsi-meet" -l"react-native-keyboard-input" -l"react-native-keyboard-tracking-view" -l"react-native-notifications" -l"react-native-orientation-locker" -l"react-native-slider" -l"react-native-video" -l"react-native-webview" -l"rn-extensions-share" -l"rn-fetch-blob" -l"sqlite3" -l"stdc++" -l"z" -framework "AVFoundation" -framework "Crashlytics" -framework "FIRAnalyticsConnector" -framework "Fabric" -framework "FirebaseAnalytics" -framework "Foundation" -framework "GoogleAppMeasurement" -framework "ImageIO" -framework "JavaScriptCore" -framework "JitsiMeet" -framework "MessageUI" -framework "Photos" -framework "QuartzCore" -framework "Security" -framework "StoreKit" -framework "SystemConfiguration" -framework "UIKit" -framework "WebRTC"
|
||||
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
|
||||
|
|
|
@ -1776,6 +1776,31 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|||
SOFTWARE.
|
||||
|
||||
|
||||
## RNDateTimePicker
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2019 React Native Community
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
|
||||
## RNDeviceInfo
|
||||
|
||||
The MIT License (MIT)
|
||||
|
|
|
@ -1901,6 +1901,37 @@ SOFTWARE.
|
|||
<key>Type</key>
|
||||
<string>PSGroupSpecifier</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>FooterText</key>
|
||||
<string>MIT License
|
||||
|
||||
Copyright (c) 2019 React Native Community
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
</string>
|
||||
<key>License</key>
|
||||
<string>MIT</string>
|
||||
<key>Title</key>
|
||||
<string>RNDateTimePicker</string>
|
||||
<key>Type</key>
|
||||
<string>PSGroupSpecifier</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>FooterText</key>
|
||||
<string>The MIT License (MIT)
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Crashlytics/iOS" "${PODS_ROOT}/Fabric/iOS" "${PODS_ROOT}/FirebaseAnalytics/Frameworks" "${PODS_ROOT}/GoogleAppMeasurement/Frameworks" "${PODS_ROOT}/JitsiMeetSDK/Frameworks"
|
||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) SD_WEBP=1 $(inherited) PB_FIELD_32BIT=1 PB_NO_PACKED_STRUCTS=1 PB_ENABLE_MALLOC=1
|
||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/BugsnagReactNative" "${PODS_ROOT}/Headers/Public/DoubleConversion" "${PODS_ROOT}/Headers/Public/EXAV" "${PODS_ROOT}/Headers/Public/EXAppLoaderProvider" "${PODS_ROOT}/Headers/Public/EXConstants" "${PODS_ROOT}/Headers/Public/EXFileSystem" "${PODS_ROOT}/Headers/Public/EXHaptics" "${PODS_ROOT}/Headers/Public/EXPermissions" "${PODS_ROOT}/Headers/Public/EXWebBrowser" "${PODS_ROOT}/Headers/Public/FBLazyVector" "${PODS_ROOT}/Headers/Public/FBReactNativeSpec" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseCore" "${PODS_ROOT}/Headers/Public/FirebaseCoreDiagnostics" "${PODS_ROOT}/Headers/Public/FirebaseCoreDiagnosticsInterop" "${PODS_ROOT}/Headers/Public/FirebaseInstanceID" "${PODS_ROOT}/Headers/Public/GoogleDataTransport" "${PODS_ROOT}/Headers/Public/GoogleDataTransportCCTSupport" "${PODS_ROOT}/Headers/Public/GoogleUtilities" "${PODS_ROOT}/Headers/Public/KeyCommands" "${PODS_ROOT}/Headers/Public/QBImagePickerController" "${PODS_ROOT}/Headers/Public/RCTRequired" "${PODS_ROOT}/Headers/Public/RCTTypeSafety" "${PODS_ROOT}/Headers/Public/RNAudio" "${PODS_ROOT}/Headers/Public/RNBootSplash" "${PODS_ROOT}/Headers/Public/RNDeviceInfo" "${PODS_ROOT}/Headers/Public/RNFastImage" "${PODS_ROOT}/Headers/Public/RNFirebase" "${PODS_ROOT}/Headers/Public/RNGestureHandler" "${PODS_ROOT}/Headers/Public/RNImageCropPicker" "${PODS_ROOT}/Headers/Public/RNLocalize" "${PODS_ROOT}/Headers/Public/RNReanimated" "${PODS_ROOT}/Headers/Public/RNRootView" "${PODS_ROOT}/Headers/Public/RNScreens" "${PODS_ROOT}/Headers/Public/RNUserDefaults" "${PODS_ROOT}/Headers/Public/RNVectorIcons" "${PODS_ROOT}/Headers/Public/RSKImageCropper" "${PODS_ROOT}/Headers/Public/React-Core" "${PODS_ROOT}/Headers/Public/React-RCTBlob" "${PODS_ROOT}/Headers/Public/React-RCTText" "${PODS_ROOT}/Headers/Public/React-cxxreact" "${PODS_ROOT}/Headers/Public/React-jsi" "${PODS_ROOT}/Headers/Public/React-jsiexecutor" "${PODS_ROOT}/Headers/Public/React-jsinspector" "${PODS_ROOT}/Headers/Public/ReactCommon" "${PODS_ROOT}/Headers/Public/ReactNativeART" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/SDWebImageWebPCoder" "${PODS_ROOT}/Headers/Public/UMBarCodeScannerInterface" "${PODS_ROOT}/Headers/Public/UMCameraInterface" "${PODS_ROOT}/Headers/Public/UMConstantsInterface" "${PODS_ROOT}/Headers/Public/UMCore" "${PODS_ROOT}/Headers/Public/UMFaceDetectorInterface" "${PODS_ROOT}/Headers/Public/UMFileSystemInterface" "${PODS_ROOT}/Headers/Public/UMFontInterface" "${PODS_ROOT}/Headers/Public/UMImageLoaderInterface" "${PODS_ROOT}/Headers/Public/UMPermissionsInterface" "${PODS_ROOT}/Headers/Public/UMReactNativeAdapter" "${PODS_ROOT}/Headers/Public/UMSensorsInterface" "${PODS_ROOT}/Headers/Public/UMTaskManagerInterface" "${PODS_ROOT}/Headers/Public/Yoga" "${PODS_ROOT}/Headers/Public/glog" "${PODS_ROOT}/Headers/Public/libwebp" "${PODS_ROOT}/Headers/Public/nanopb" "${PODS_ROOT}/Headers/Public/react-native-appearance" "${PODS_ROOT}/Headers/Public/react-native-background-timer" "${PODS_ROOT}/Headers/Public/react-native-cameraroll" "${PODS_ROOT}/Headers/Public/react-native-document-picker" "${PODS_ROOT}/Headers/Public/react-native-jitsi-meet" "${PODS_ROOT}/Headers/Public/react-native-keyboard-input" "${PODS_ROOT}/Headers/Public/react-native-keyboard-tracking-view" "${PODS_ROOT}/Headers/Public/react-native-notifications" "${PODS_ROOT}/Headers/Public/react-native-orientation-locker" "${PODS_ROOT}/Headers/Public/react-native-slider" "${PODS_ROOT}/Headers/Public/react-native-video" "${PODS_ROOT}/Headers/Public/react-native-webview" "${PODS_ROOT}/Headers/Public/rn-extensions-share" "${PODS_ROOT}/Headers/Public/rn-fetch-blob" $(inherited) ${PODS_ROOT}/Firebase/CoreOnly/Sources "$(PODS_ROOT)/Headers/Private/React-Core"
|
||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/BugsnagReactNative" "${PODS_ROOT}/Headers/Public/DoubleConversion" "${PODS_ROOT}/Headers/Public/EXAV" "${PODS_ROOT}/Headers/Public/EXAppLoaderProvider" "${PODS_ROOT}/Headers/Public/EXConstants" "${PODS_ROOT}/Headers/Public/EXFileSystem" "${PODS_ROOT}/Headers/Public/EXHaptics" "${PODS_ROOT}/Headers/Public/EXPermissions" "${PODS_ROOT}/Headers/Public/EXWebBrowser" "${PODS_ROOT}/Headers/Public/FBLazyVector" "${PODS_ROOT}/Headers/Public/FBReactNativeSpec" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseCore" "${PODS_ROOT}/Headers/Public/FirebaseCoreDiagnostics" "${PODS_ROOT}/Headers/Public/FirebaseCoreDiagnosticsInterop" "${PODS_ROOT}/Headers/Public/FirebaseInstanceID" "${PODS_ROOT}/Headers/Public/GoogleDataTransport" "${PODS_ROOT}/Headers/Public/GoogleDataTransportCCTSupport" "${PODS_ROOT}/Headers/Public/GoogleUtilities" "${PODS_ROOT}/Headers/Public/KeyCommands" "${PODS_ROOT}/Headers/Public/QBImagePickerController" "${PODS_ROOT}/Headers/Public/RCTRequired" "${PODS_ROOT}/Headers/Public/RCTTypeSafety" "${PODS_ROOT}/Headers/Public/RNAudio" "${PODS_ROOT}/Headers/Public/RNBootSplash" "${PODS_ROOT}/Headers/Public/RNDateTimePicker" "${PODS_ROOT}/Headers/Public/RNDeviceInfo" "${PODS_ROOT}/Headers/Public/RNFastImage" "${PODS_ROOT}/Headers/Public/RNFirebase" "${PODS_ROOT}/Headers/Public/RNGestureHandler" "${PODS_ROOT}/Headers/Public/RNImageCropPicker" "${PODS_ROOT}/Headers/Public/RNLocalize" "${PODS_ROOT}/Headers/Public/RNReanimated" "${PODS_ROOT}/Headers/Public/RNRootView" "${PODS_ROOT}/Headers/Public/RNScreens" "${PODS_ROOT}/Headers/Public/RNUserDefaults" "${PODS_ROOT}/Headers/Public/RNVectorIcons" "${PODS_ROOT}/Headers/Public/RSKImageCropper" "${PODS_ROOT}/Headers/Public/React-Core" "${PODS_ROOT}/Headers/Public/React-RCTBlob" "${PODS_ROOT}/Headers/Public/React-RCTText" "${PODS_ROOT}/Headers/Public/React-cxxreact" "${PODS_ROOT}/Headers/Public/React-jsi" "${PODS_ROOT}/Headers/Public/React-jsiexecutor" "${PODS_ROOT}/Headers/Public/React-jsinspector" "${PODS_ROOT}/Headers/Public/ReactCommon" "${PODS_ROOT}/Headers/Public/ReactNativeART" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/SDWebImageWebPCoder" "${PODS_ROOT}/Headers/Public/UMBarCodeScannerInterface" "${PODS_ROOT}/Headers/Public/UMCameraInterface" "${PODS_ROOT}/Headers/Public/UMConstantsInterface" "${PODS_ROOT}/Headers/Public/UMCore" "${PODS_ROOT}/Headers/Public/UMFaceDetectorInterface" "${PODS_ROOT}/Headers/Public/UMFileSystemInterface" "${PODS_ROOT}/Headers/Public/UMFontInterface" "${PODS_ROOT}/Headers/Public/UMImageLoaderInterface" "${PODS_ROOT}/Headers/Public/UMPermissionsInterface" "${PODS_ROOT}/Headers/Public/UMReactNativeAdapter" "${PODS_ROOT}/Headers/Public/UMSensorsInterface" "${PODS_ROOT}/Headers/Public/UMTaskManagerInterface" "${PODS_ROOT}/Headers/Public/Yoga" "${PODS_ROOT}/Headers/Public/glog" "${PODS_ROOT}/Headers/Public/libwebp" "${PODS_ROOT}/Headers/Public/nanopb" "${PODS_ROOT}/Headers/Public/react-native-appearance" "${PODS_ROOT}/Headers/Public/react-native-background-timer" "${PODS_ROOT}/Headers/Public/react-native-cameraroll" "${PODS_ROOT}/Headers/Public/react-native-document-picker" "${PODS_ROOT}/Headers/Public/react-native-jitsi-meet" "${PODS_ROOT}/Headers/Public/react-native-keyboard-input" "${PODS_ROOT}/Headers/Public/react-native-keyboard-tracking-view" "${PODS_ROOT}/Headers/Public/react-native-notifications" "${PODS_ROOT}/Headers/Public/react-native-orientation-locker" "${PODS_ROOT}/Headers/Public/react-native-slider" "${PODS_ROOT}/Headers/Public/react-native-video" "${PODS_ROOT}/Headers/Public/react-native-webview" "${PODS_ROOT}/Headers/Public/rn-extensions-share" "${PODS_ROOT}/Headers/Public/rn-fetch-blob" $(inherited) ${PODS_ROOT}/Firebase/CoreOnly/Sources "$(PODS_ROOT)/Headers/Private/React-Core"
|
||||
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' '@executable_path/../../Frameworks'
|
||||
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BugsnagReactNative" "${PODS_CONFIGURATION_BUILD_DIR}/DoubleConversion" "${PODS_CONFIGURATION_BUILD_DIR}/FBReactNativeSpec" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreDiagnostics" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID" "${PODS_CONFIGURATION_BUILD_DIR}/Folly" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransportCCTSupport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/KeyCommands" "${PODS_CONFIGURATION_BUILD_DIR}/QBImagePickerController" "${PODS_CONFIGURATION_BUILD_DIR}/RCTTypeSafety" "${PODS_CONFIGURATION_BUILD_DIR}/RNAudio" "${PODS_CONFIGURATION_BUILD_DIR}/RNBootSplash" "${PODS_CONFIGURATION_BUILD_DIR}/RNDeviceInfo" "${PODS_CONFIGURATION_BUILD_DIR}/RNFastImage" "${PODS_CONFIGURATION_BUILD_DIR}/RNFirebase" "${PODS_CONFIGURATION_BUILD_DIR}/RNGestureHandler" "${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker" "${PODS_CONFIGURATION_BUILD_DIR}/RNLocalize" "${PODS_CONFIGURATION_BUILD_DIR}/RNReanimated" "${PODS_CONFIGURATION_BUILD_DIR}/RNRootView" "${PODS_CONFIGURATION_BUILD_DIR}/RNScreens" "${PODS_CONFIGURATION_BUILD_DIR}/RNUserDefaults" "${PODS_CONFIGURATION_BUILD_DIR}/RNVectorIcons" "${PODS_CONFIGURATION_BUILD_DIR}/RSKImageCropper" "${PODS_CONFIGURATION_BUILD_DIR}/React-Core" "${PODS_CONFIGURATION_BUILD_DIR}/React-CoreModules" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTActionSheet" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTAnimation" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTBlob" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTImage" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTLinking" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTNetwork" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTSettings" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTText" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTVibration" "${PODS_CONFIGURATION_BUILD_DIR}/React-cxxreact" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsi" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsiexecutor" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsinspector" "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon" "${PODS_CONFIGURATION_BUILD_DIR}/ReactNativeART" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageWebPCoder" "${PODS_CONFIGURATION_BUILD_DIR}/Yoga" "${PODS_CONFIGURATION_BUILD_DIR}/glog" "${PODS_CONFIGURATION_BUILD_DIR}/libwebp" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-appearance" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-background-timer" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-cameraroll" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-document-picker" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-jitsi-meet" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-keyboard-input" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-keyboard-tracking-view" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-notifications" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-orientation-locker" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-slider" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-video" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-webview" "${PODS_CONFIGURATION_BUILD_DIR}/rn-extensions-share" "${PODS_CONFIGURATION_BUILD_DIR}/rn-fetch-blob"
|
||||
OTHER_LDFLAGS = $(inherited) -ObjC -l"BugsnagReactNative" -l"DoubleConversion" -l"FBReactNativeSpec" -l"FirebaseCore" -l"FirebaseCoreDiagnostics" -l"FirebaseInstanceID" -l"Folly" -l"GoogleDataTransport" -l"GoogleDataTransportCCTSupport" -l"GoogleUtilities" -l"KeyCommands" -l"QBImagePickerController" -l"RCTTypeSafety" -l"RNAudio" -l"RNBootSplash" -l"RNDeviceInfo" -l"RNFastImage" -l"RNFirebase" -l"RNGestureHandler" -l"RNImageCropPicker" -l"RNLocalize" -l"RNReanimated" -l"RNRootView" -l"RNScreens" -l"RNUserDefaults" -l"RNVectorIcons" -l"RSKImageCropper" -l"React-Core" -l"React-CoreModules" -l"React-RCTActionSheet" -l"React-RCTAnimation" -l"React-RCTBlob" -l"React-RCTImage" -l"React-RCTLinking" -l"React-RCTNetwork" -l"React-RCTSettings" -l"React-RCTText" -l"React-RCTVibration" -l"React-cxxreact" -l"React-jsi" -l"React-jsiexecutor" -l"React-jsinspector" -l"ReactCommon" -l"ReactNativeART" -l"SDWebImage" -l"SDWebImageWebPCoder" -l"Yoga" -l"c++" -l"glog" -l"libwebp" -l"nanopb" -l"react-native-appearance" -l"react-native-background-timer" -l"react-native-cameraroll" -l"react-native-document-picker" -l"react-native-jitsi-meet" -l"react-native-keyboard-input" -l"react-native-keyboard-tracking-view" -l"react-native-notifications" -l"react-native-orientation-locker" -l"react-native-slider" -l"react-native-video" -l"react-native-webview" -l"rn-extensions-share" -l"rn-fetch-blob" -l"sqlite3" -l"stdc++" -l"z" -framework "AVFoundation" -framework "Crashlytics" -framework "FIRAnalyticsConnector" -framework "Fabric" -framework "FirebaseAnalytics" -framework "Foundation" -framework "GoogleAppMeasurement" -framework "ImageIO" -framework "JavaScriptCore" -framework "JitsiMeet" -framework "MessageUI" -framework "Photos" -framework "QuartzCore" -framework "Security" -framework "StoreKit" -framework "SystemConfiguration" -framework "UIKit" -framework "WebRTC"
|
||||
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BugsnagReactNative" "${PODS_CONFIGURATION_BUILD_DIR}/DoubleConversion" "${PODS_CONFIGURATION_BUILD_DIR}/FBReactNativeSpec" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreDiagnostics" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID" "${PODS_CONFIGURATION_BUILD_DIR}/Folly" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransportCCTSupport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/KeyCommands" "${PODS_CONFIGURATION_BUILD_DIR}/QBImagePickerController" "${PODS_CONFIGURATION_BUILD_DIR}/RCTTypeSafety" "${PODS_CONFIGURATION_BUILD_DIR}/RNAudio" "${PODS_CONFIGURATION_BUILD_DIR}/RNBootSplash" "${PODS_CONFIGURATION_BUILD_DIR}/RNDateTimePicker" "${PODS_CONFIGURATION_BUILD_DIR}/RNDeviceInfo" "${PODS_CONFIGURATION_BUILD_DIR}/RNFastImage" "${PODS_CONFIGURATION_BUILD_DIR}/RNFirebase" "${PODS_CONFIGURATION_BUILD_DIR}/RNGestureHandler" "${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker" "${PODS_CONFIGURATION_BUILD_DIR}/RNLocalize" "${PODS_CONFIGURATION_BUILD_DIR}/RNReanimated" "${PODS_CONFIGURATION_BUILD_DIR}/RNRootView" "${PODS_CONFIGURATION_BUILD_DIR}/RNScreens" "${PODS_CONFIGURATION_BUILD_DIR}/RNUserDefaults" "${PODS_CONFIGURATION_BUILD_DIR}/RNVectorIcons" "${PODS_CONFIGURATION_BUILD_DIR}/RSKImageCropper" "${PODS_CONFIGURATION_BUILD_DIR}/React-Core" "${PODS_CONFIGURATION_BUILD_DIR}/React-CoreModules" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTActionSheet" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTAnimation" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTBlob" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTImage" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTLinking" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTNetwork" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTSettings" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTText" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTVibration" "${PODS_CONFIGURATION_BUILD_DIR}/React-cxxreact" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsi" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsiexecutor" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsinspector" "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon" "${PODS_CONFIGURATION_BUILD_DIR}/ReactNativeART" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageWebPCoder" "${PODS_CONFIGURATION_BUILD_DIR}/Yoga" "${PODS_CONFIGURATION_BUILD_DIR}/glog" "${PODS_CONFIGURATION_BUILD_DIR}/libwebp" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-appearance" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-background-timer" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-cameraroll" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-document-picker" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-jitsi-meet" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-keyboard-input" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-keyboard-tracking-view" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-notifications" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-orientation-locker" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-slider" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-video" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-webview" "${PODS_CONFIGURATION_BUILD_DIR}/rn-extensions-share" "${PODS_CONFIGURATION_BUILD_DIR}/rn-fetch-blob"
|
||||
OTHER_LDFLAGS = $(inherited) -ObjC -l"BugsnagReactNative" -l"DoubleConversion" -l"FBReactNativeSpec" -l"FirebaseCore" -l"FirebaseCoreDiagnostics" -l"FirebaseInstanceID" -l"Folly" -l"GoogleDataTransport" -l"GoogleDataTransportCCTSupport" -l"GoogleUtilities" -l"KeyCommands" -l"QBImagePickerController" -l"RCTTypeSafety" -l"RNAudio" -l"RNBootSplash" -l"RNDateTimePicker" -l"RNDeviceInfo" -l"RNFastImage" -l"RNFirebase" -l"RNGestureHandler" -l"RNImageCropPicker" -l"RNLocalize" -l"RNReanimated" -l"RNRootView" -l"RNScreens" -l"RNUserDefaults" -l"RNVectorIcons" -l"RSKImageCropper" -l"React-Core" -l"React-CoreModules" -l"React-RCTActionSheet" -l"React-RCTAnimation" -l"React-RCTBlob" -l"React-RCTImage" -l"React-RCTLinking" -l"React-RCTNetwork" -l"React-RCTSettings" -l"React-RCTText" -l"React-RCTVibration" -l"React-cxxreact" -l"React-jsi" -l"React-jsiexecutor" -l"React-jsinspector" -l"ReactCommon" -l"ReactNativeART" -l"SDWebImage" -l"SDWebImageWebPCoder" -l"Yoga" -l"c++" -l"glog" -l"libwebp" -l"nanopb" -l"react-native-appearance" -l"react-native-background-timer" -l"react-native-cameraroll" -l"react-native-document-picker" -l"react-native-jitsi-meet" -l"react-native-keyboard-input" -l"react-native-keyboard-tracking-view" -l"react-native-notifications" -l"react-native-orientation-locker" -l"react-native-slider" -l"react-native-video" -l"react-native-webview" -l"rn-extensions-share" -l"rn-fetch-blob" -l"sqlite3" -l"stdc++" -l"z" -framework "AVFoundation" -framework "Crashlytics" -framework "FIRAnalyticsConnector" -framework "Fabric" -framework "FirebaseAnalytics" -framework "Foundation" -framework "GoogleAppMeasurement" -framework "ImageIO" -framework "JavaScriptCore" -framework "JitsiMeet" -framework "MessageUI" -framework "Photos" -framework "QuartzCore" -framework "Security" -framework "StoreKit" -framework "SystemConfiguration" -framework "UIKit" -framework "WebRTC"
|
||||
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Crashlytics/iOS" "${PODS_ROOT}/Fabric/iOS" "${PODS_ROOT}/FirebaseAnalytics/Frameworks" "${PODS_ROOT}/GoogleAppMeasurement/Frameworks" "${PODS_ROOT}/JitsiMeetSDK/Frameworks"
|
||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) SD_WEBP=1 $(inherited) PB_FIELD_32BIT=1 PB_NO_PACKED_STRUCTS=1 PB_ENABLE_MALLOC=1
|
||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/BugsnagReactNative" "${PODS_ROOT}/Headers/Public/DoubleConversion" "${PODS_ROOT}/Headers/Public/EXAV" "${PODS_ROOT}/Headers/Public/EXAppLoaderProvider" "${PODS_ROOT}/Headers/Public/EXConstants" "${PODS_ROOT}/Headers/Public/EXFileSystem" "${PODS_ROOT}/Headers/Public/EXHaptics" "${PODS_ROOT}/Headers/Public/EXPermissions" "${PODS_ROOT}/Headers/Public/EXWebBrowser" "${PODS_ROOT}/Headers/Public/FBLazyVector" "${PODS_ROOT}/Headers/Public/FBReactNativeSpec" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseCore" "${PODS_ROOT}/Headers/Public/FirebaseCoreDiagnostics" "${PODS_ROOT}/Headers/Public/FirebaseCoreDiagnosticsInterop" "${PODS_ROOT}/Headers/Public/FirebaseInstanceID" "${PODS_ROOT}/Headers/Public/GoogleDataTransport" "${PODS_ROOT}/Headers/Public/GoogleDataTransportCCTSupport" "${PODS_ROOT}/Headers/Public/GoogleUtilities" "${PODS_ROOT}/Headers/Public/KeyCommands" "${PODS_ROOT}/Headers/Public/QBImagePickerController" "${PODS_ROOT}/Headers/Public/RCTRequired" "${PODS_ROOT}/Headers/Public/RCTTypeSafety" "${PODS_ROOT}/Headers/Public/RNAudio" "${PODS_ROOT}/Headers/Public/RNBootSplash" "${PODS_ROOT}/Headers/Public/RNDeviceInfo" "${PODS_ROOT}/Headers/Public/RNFastImage" "${PODS_ROOT}/Headers/Public/RNFirebase" "${PODS_ROOT}/Headers/Public/RNGestureHandler" "${PODS_ROOT}/Headers/Public/RNImageCropPicker" "${PODS_ROOT}/Headers/Public/RNLocalize" "${PODS_ROOT}/Headers/Public/RNReanimated" "${PODS_ROOT}/Headers/Public/RNRootView" "${PODS_ROOT}/Headers/Public/RNScreens" "${PODS_ROOT}/Headers/Public/RNUserDefaults" "${PODS_ROOT}/Headers/Public/RNVectorIcons" "${PODS_ROOT}/Headers/Public/RSKImageCropper" "${PODS_ROOT}/Headers/Public/React-Core" "${PODS_ROOT}/Headers/Public/React-RCTBlob" "${PODS_ROOT}/Headers/Public/React-RCTText" "${PODS_ROOT}/Headers/Public/React-cxxreact" "${PODS_ROOT}/Headers/Public/React-jsi" "${PODS_ROOT}/Headers/Public/React-jsiexecutor" "${PODS_ROOT}/Headers/Public/React-jsinspector" "${PODS_ROOT}/Headers/Public/ReactCommon" "${PODS_ROOT}/Headers/Public/ReactNativeART" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/SDWebImageWebPCoder" "${PODS_ROOT}/Headers/Public/UMBarCodeScannerInterface" "${PODS_ROOT}/Headers/Public/UMCameraInterface" "${PODS_ROOT}/Headers/Public/UMConstantsInterface" "${PODS_ROOT}/Headers/Public/UMCore" "${PODS_ROOT}/Headers/Public/UMFaceDetectorInterface" "${PODS_ROOT}/Headers/Public/UMFileSystemInterface" "${PODS_ROOT}/Headers/Public/UMFontInterface" "${PODS_ROOT}/Headers/Public/UMImageLoaderInterface" "${PODS_ROOT}/Headers/Public/UMPermissionsInterface" "${PODS_ROOT}/Headers/Public/UMReactNativeAdapter" "${PODS_ROOT}/Headers/Public/UMSensorsInterface" "${PODS_ROOT}/Headers/Public/UMTaskManagerInterface" "${PODS_ROOT}/Headers/Public/Yoga" "${PODS_ROOT}/Headers/Public/glog" "${PODS_ROOT}/Headers/Public/libwebp" "${PODS_ROOT}/Headers/Public/nanopb" "${PODS_ROOT}/Headers/Public/react-native-appearance" "${PODS_ROOT}/Headers/Public/react-native-background-timer" "${PODS_ROOT}/Headers/Public/react-native-cameraroll" "${PODS_ROOT}/Headers/Public/react-native-document-picker" "${PODS_ROOT}/Headers/Public/react-native-jitsi-meet" "${PODS_ROOT}/Headers/Public/react-native-keyboard-input" "${PODS_ROOT}/Headers/Public/react-native-keyboard-tracking-view" "${PODS_ROOT}/Headers/Public/react-native-notifications" "${PODS_ROOT}/Headers/Public/react-native-orientation-locker" "${PODS_ROOT}/Headers/Public/react-native-slider" "${PODS_ROOT}/Headers/Public/react-native-video" "${PODS_ROOT}/Headers/Public/react-native-webview" "${PODS_ROOT}/Headers/Public/rn-extensions-share" "${PODS_ROOT}/Headers/Public/rn-fetch-blob" $(inherited) ${PODS_ROOT}/Firebase/CoreOnly/Sources "$(PODS_ROOT)/Headers/Private/React-Core"
|
||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/BugsnagReactNative" "${PODS_ROOT}/Headers/Public/DoubleConversion" "${PODS_ROOT}/Headers/Public/EXAV" "${PODS_ROOT}/Headers/Public/EXAppLoaderProvider" "${PODS_ROOT}/Headers/Public/EXConstants" "${PODS_ROOT}/Headers/Public/EXFileSystem" "${PODS_ROOT}/Headers/Public/EXHaptics" "${PODS_ROOT}/Headers/Public/EXPermissions" "${PODS_ROOT}/Headers/Public/EXWebBrowser" "${PODS_ROOT}/Headers/Public/FBLazyVector" "${PODS_ROOT}/Headers/Public/FBReactNativeSpec" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseCore" "${PODS_ROOT}/Headers/Public/FirebaseCoreDiagnostics" "${PODS_ROOT}/Headers/Public/FirebaseCoreDiagnosticsInterop" "${PODS_ROOT}/Headers/Public/FirebaseInstanceID" "${PODS_ROOT}/Headers/Public/GoogleDataTransport" "${PODS_ROOT}/Headers/Public/GoogleDataTransportCCTSupport" "${PODS_ROOT}/Headers/Public/GoogleUtilities" "${PODS_ROOT}/Headers/Public/KeyCommands" "${PODS_ROOT}/Headers/Public/QBImagePickerController" "${PODS_ROOT}/Headers/Public/RCTRequired" "${PODS_ROOT}/Headers/Public/RCTTypeSafety" "${PODS_ROOT}/Headers/Public/RNAudio" "${PODS_ROOT}/Headers/Public/RNBootSplash" "${PODS_ROOT}/Headers/Public/RNDateTimePicker" "${PODS_ROOT}/Headers/Public/RNDeviceInfo" "${PODS_ROOT}/Headers/Public/RNFastImage" "${PODS_ROOT}/Headers/Public/RNFirebase" "${PODS_ROOT}/Headers/Public/RNGestureHandler" "${PODS_ROOT}/Headers/Public/RNImageCropPicker" "${PODS_ROOT}/Headers/Public/RNLocalize" "${PODS_ROOT}/Headers/Public/RNReanimated" "${PODS_ROOT}/Headers/Public/RNRootView" "${PODS_ROOT}/Headers/Public/RNScreens" "${PODS_ROOT}/Headers/Public/RNUserDefaults" "${PODS_ROOT}/Headers/Public/RNVectorIcons" "${PODS_ROOT}/Headers/Public/RSKImageCropper" "${PODS_ROOT}/Headers/Public/React-Core" "${PODS_ROOT}/Headers/Public/React-RCTBlob" "${PODS_ROOT}/Headers/Public/React-RCTText" "${PODS_ROOT}/Headers/Public/React-cxxreact" "${PODS_ROOT}/Headers/Public/React-jsi" "${PODS_ROOT}/Headers/Public/React-jsiexecutor" "${PODS_ROOT}/Headers/Public/React-jsinspector" "${PODS_ROOT}/Headers/Public/ReactCommon" "${PODS_ROOT}/Headers/Public/ReactNativeART" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/SDWebImageWebPCoder" "${PODS_ROOT}/Headers/Public/UMBarCodeScannerInterface" "${PODS_ROOT}/Headers/Public/UMCameraInterface" "${PODS_ROOT}/Headers/Public/UMConstantsInterface" "${PODS_ROOT}/Headers/Public/UMCore" "${PODS_ROOT}/Headers/Public/UMFaceDetectorInterface" "${PODS_ROOT}/Headers/Public/UMFileSystemInterface" "${PODS_ROOT}/Headers/Public/UMFontInterface" "${PODS_ROOT}/Headers/Public/UMImageLoaderInterface" "${PODS_ROOT}/Headers/Public/UMPermissionsInterface" "${PODS_ROOT}/Headers/Public/UMReactNativeAdapter" "${PODS_ROOT}/Headers/Public/UMSensorsInterface" "${PODS_ROOT}/Headers/Public/UMTaskManagerInterface" "${PODS_ROOT}/Headers/Public/Yoga" "${PODS_ROOT}/Headers/Public/glog" "${PODS_ROOT}/Headers/Public/libwebp" "${PODS_ROOT}/Headers/Public/nanopb" "${PODS_ROOT}/Headers/Public/react-native-appearance" "${PODS_ROOT}/Headers/Public/react-native-background-timer" "${PODS_ROOT}/Headers/Public/react-native-cameraroll" "${PODS_ROOT}/Headers/Public/react-native-document-picker" "${PODS_ROOT}/Headers/Public/react-native-jitsi-meet" "${PODS_ROOT}/Headers/Public/react-native-keyboard-input" "${PODS_ROOT}/Headers/Public/react-native-keyboard-tracking-view" "${PODS_ROOT}/Headers/Public/react-native-notifications" "${PODS_ROOT}/Headers/Public/react-native-orientation-locker" "${PODS_ROOT}/Headers/Public/react-native-slider" "${PODS_ROOT}/Headers/Public/react-native-video" "${PODS_ROOT}/Headers/Public/react-native-webview" "${PODS_ROOT}/Headers/Public/rn-extensions-share" "${PODS_ROOT}/Headers/Public/rn-fetch-blob" $(inherited) ${PODS_ROOT}/Firebase/CoreOnly/Sources "$(PODS_ROOT)/Headers/Private/React-Core"
|
||||
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' '@executable_path/../../Frameworks'
|
||||
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BugsnagReactNative" "${PODS_CONFIGURATION_BUILD_DIR}/DoubleConversion" "${PODS_CONFIGURATION_BUILD_DIR}/FBReactNativeSpec" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreDiagnostics" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID" "${PODS_CONFIGURATION_BUILD_DIR}/Folly" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransportCCTSupport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/KeyCommands" "${PODS_CONFIGURATION_BUILD_DIR}/QBImagePickerController" "${PODS_CONFIGURATION_BUILD_DIR}/RCTTypeSafety" "${PODS_CONFIGURATION_BUILD_DIR}/RNAudio" "${PODS_CONFIGURATION_BUILD_DIR}/RNBootSplash" "${PODS_CONFIGURATION_BUILD_DIR}/RNDeviceInfo" "${PODS_CONFIGURATION_BUILD_DIR}/RNFastImage" "${PODS_CONFIGURATION_BUILD_DIR}/RNFirebase" "${PODS_CONFIGURATION_BUILD_DIR}/RNGestureHandler" "${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker" "${PODS_CONFIGURATION_BUILD_DIR}/RNLocalize" "${PODS_CONFIGURATION_BUILD_DIR}/RNReanimated" "${PODS_CONFIGURATION_BUILD_DIR}/RNRootView" "${PODS_CONFIGURATION_BUILD_DIR}/RNScreens" "${PODS_CONFIGURATION_BUILD_DIR}/RNUserDefaults" "${PODS_CONFIGURATION_BUILD_DIR}/RNVectorIcons" "${PODS_CONFIGURATION_BUILD_DIR}/RSKImageCropper" "${PODS_CONFIGURATION_BUILD_DIR}/React-Core" "${PODS_CONFIGURATION_BUILD_DIR}/React-CoreModules" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTActionSheet" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTAnimation" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTBlob" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTImage" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTLinking" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTNetwork" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTSettings" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTText" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTVibration" "${PODS_CONFIGURATION_BUILD_DIR}/React-cxxreact" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsi" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsiexecutor" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsinspector" "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon" "${PODS_CONFIGURATION_BUILD_DIR}/ReactNativeART" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageWebPCoder" "${PODS_CONFIGURATION_BUILD_DIR}/Yoga" "${PODS_CONFIGURATION_BUILD_DIR}/glog" "${PODS_CONFIGURATION_BUILD_DIR}/libwebp" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-appearance" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-background-timer" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-cameraroll" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-document-picker" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-jitsi-meet" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-keyboard-input" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-keyboard-tracking-view" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-notifications" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-orientation-locker" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-slider" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-video" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-webview" "${PODS_CONFIGURATION_BUILD_DIR}/rn-extensions-share" "${PODS_CONFIGURATION_BUILD_DIR}/rn-fetch-blob"
|
||||
OTHER_LDFLAGS = $(inherited) -ObjC -l"BugsnagReactNative" -l"DoubleConversion" -l"FBReactNativeSpec" -l"FirebaseCore" -l"FirebaseCoreDiagnostics" -l"FirebaseInstanceID" -l"Folly" -l"GoogleDataTransport" -l"GoogleDataTransportCCTSupport" -l"GoogleUtilities" -l"KeyCommands" -l"QBImagePickerController" -l"RCTTypeSafety" -l"RNAudio" -l"RNBootSplash" -l"RNDeviceInfo" -l"RNFastImage" -l"RNFirebase" -l"RNGestureHandler" -l"RNImageCropPicker" -l"RNLocalize" -l"RNReanimated" -l"RNRootView" -l"RNScreens" -l"RNUserDefaults" -l"RNVectorIcons" -l"RSKImageCropper" -l"React-Core" -l"React-CoreModules" -l"React-RCTActionSheet" -l"React-RCTAnimation" -l"React-RCTBlob" -l"React-RCTImage" -l"React-RCTLinking" -l"React-RCTNetwork" -l"React-RCTSettings" -l"React-RCTText" -l"React-RCTVibration" -l"React-cxxreact" -l"React-jsi" -l"React-jsiexecutor" -l"React-jsinspector" -l"ReactCommon" -l"ReactNativeART" -l"SDWebImage" -l"SDWebImageWebPCoder" -l"Yoga" -l"c++" -l"glog" -l"libwebp" -l"nanopb" -l"react-native-appearance" -l"react-native-background-timer" -l"react-native-cameraroll" -l"react-native-document-picker" -l"react-native-jitsi-meet" -l"react-native-keyboard-input" -l"react-native-keyboard-tracking-view" -l"react-native-notifications" -l"react-native-orientation-locker" -l"react-native-slider" -l"react-native-video" -l"react-native-webview" -l"rn-extensions-share" -l"rn-fetch-blob" -l"sqlite3" -l"stdc++" -l"z" -framework "AVFoundation" -framework "Crashlytics" -framework "FIRAnalyticsConnector" -framework "Fabric" -framework "FirebaseAnalytics" -framework "Foundation" -framework "GoogleAppMeasurement" -framework "ImageIO" -framework "JavaScriptCore" -framework "JitsiMeet" -framework "MessageUI" -framework "Photos" -framework "QuartzCore" -framework "Security" -framework "StoreKit" -framework "SystemConfiguration" -framework "UIKit" -framework "WebRTC"
|
||||
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BugsnagReactNative" "${PODS_CONFIGURATION_BUILD_DIR}/DoubleConversion" "${PODS_CONFIGURATION_BUILD_DIR}/FBReactNativeSpec" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCore" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseCoreDiagnostics" "${PODS_CONFIGURATION_BUILD_DIR}/FirebaseInstanceID" "${PODS_CONFIGURATION_BUILD_DIR}/Folly" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransportCCTSupport" "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities" "${PODS_CONFIGURATION_BUILD_DIR}/KeyCommands" "${PODS_CONFIGURATION_BUILD_DIR}/QBImagePickerController" "${PODS_CONFIGURATION_BUILD_DIR}/RCTTypeSafety" "${PODS_CONFIGURATION_BUILD_DIR}/RNAudio" "${PODS_CONFIGURATION_BUILD_DIR}/RNBootSplash" "${PODS_CONFIGURATION_BUILD_DIR}/RNDateTimePicker" "${PODS_CONFIGURATION_BUILD_DIR}/RNDeviceInfo" "${PODS_CONFIGURATION_BUILD_DIR}/RNFastImage" "${PODS_CONFIGURATION_BUILD_DIR}/RNFirebase" "${PODS_CONFIGURATION_BUILD_DIR}/RNGestureHandler" "${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker" "${PODS_CONFIGURATION_BUILD_DIR}/RNLocalize" "${PODS_CONFIGURATION_BUILD_DIR}/RNReanimated" "${PODS_CONFIGURATION_BUILD_DIR}/RNRootView" "${PODS_CONFIGURATION_BUILD_DIR}/RNScreens" "${PODS_CONFIGURATION_BUILD_DIR}/RNUserDefaults" "${PODS_CONFIGURATION_BUILD_DIR}/RNVectorIcons" "${PODS_CONFIGURATION_BUILD_DIR}/RSKImageCropper" "${PODS_CONFIGURATION_BUILD_DIR}/React-Core" "${PODS_CONFIGURATION_BUILD_DIR}/React-CoreModules" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTActionSheet" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTAnimation" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTBlob" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTImage" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTLinking" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTNetwork" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTSettings" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTText" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTVibration" "${PODS_CONFIGURATION_BUILD_DIR}/React-cxxreact" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsi" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsiexecutor" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsinspector" "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon" "${PODS_CONFIGURATION_BUILD_DIR}/ReactNativeART" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImageWebPCoder" "${PODS_CONFIGURATION_BUILD_DIR}/Yoga" "${PODS_CONFIGURATION_BUILD_DIR}/glog" "${PODS_CONFIGURATION_BUILD_DIR}/libwebp" "${PODS_CONFIGURATION_BUILD_DIR}/nanopb" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-appearance" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-background-timer" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-cameraroll" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-document-picker" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-jitsi-meet" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-keyboard-input" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-keyboard-tracking-view" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-notifications" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-orientation-locker" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-slider" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-video" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-webview" "${PODS_CONFIGURATION_BUILD_DIR}/rn-extensions-share" "${PODS_CONFIGURATION_BUILD_DIR}/rn-fetch-blob"
|
||||
OTHER_LDFLAGS = $(inherited) -ObjC -l"BugsnagReactNative" -l"DoubleConversion" -l"FBReactNativeSpec" -l"FirebaseCore" -l"FirebaseCoreDiagnostics" -l"FirebaseInstanceID" -l"Folly" -l"GoogleDataTransport" -l"GoogleDataTransportCCTSupport" -l"GoogleUtilities" -l"KeyCommands" -l"QBImagePickerController" -l"RCTTypeSafety" -l"RNAudio" -l"RNBootSplash" -l"RNDateTimePicker" -l"RNDeviceInfo" -l"RNFastImage" -l"RNFirebase" -l"RNGestureHandler" -l"RNImageCropPicker" -l"RNLocalize" -l"RNReanimated" -l"RNRootView" -l"RNScreens" -l"RNUserDefaults" -l"RNVectorIcons" -l"RSKImageCropper" -l"React-Core" -l"React-CoreModules" -l"React-RCTActionSheet" -l"React-RCTAnimation" -l"React-RCTBlob" -l"React-RCTImage" -l"React-RCTLinking" -l"React-RCTNetwork" -l"React-RCTSettings" -l"React-RCTText" -l"React-RCTVibration" -l"React-cxxreact" -l"React-jsi" -l"React-jsiexecutor" -l"React-jsinspector" -l"ReactCommon" -l"ReactNativeART" -l"SDWebImage" -l"SDWebImageWebPCoder" -l"Yoga" -l"c++" -l"glog" -l"libwebp" -l"nanopb" -l"react-native-appearance" -l"react-native-background-timer" -l"react-native-cameraroll" -l"react-native-document-picker" -l"react-native-jitsi-meet" -l"react-native-keyboard-input" -l"react-native-keyboard-tracking-view" -l"react-native-notifications" -l"react-native-orientation-locker" -l"react-native-slider" -l"react-native-video" -l"react-native-webview" -l"rn-extensions-share" -l"rn-fetch-blob" -l"sqlite3" -l"stdc++" -l"z" -framework "AVFoundation" -framework "Crashlytics" -framework "FIRAnalyticsConnector" -framework "Fabric" -framework "FirebaseAnalytics" -framework "Foundation" -framework "GoogleAppMeasurement" -framework "ImageIO" -framework "JavaScriptCore" -framework "JitsiMeet" -framework "MessageUI" -framework "Photos" -framework "QuartzCore" -framework "Security" -framework "StoreKit" -framework "SystemConfiguration" -framework "UIKit" -framework "WebRTC"
|
||||
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
#import <Foundation/Foundation.h>
|
||||
@interface PodsDummy_RNDateTimePicker : NSObject
|
||||
@end
|
||||
@implementation PodsDummy_RNDateTimePicker
|
||||
@end
|
|
@ -0,0 +1,12 @@
|
|||
#ifdef __OBJC__
|
||||
#import <UIKit/UIKit.h>
|
||||
#else
|
||||
#ifndef FOUNDATION_EXPORT
|
||||
#if defined(__cplusplus)
|
||||
#define FOUNDATION_EXPORT extern "C"
|
||||
#else
|
||||
#define FOUNDATION_EXPORT extern
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
APPLICATION_EXTENSION_API_ONLY = YES
|
||||
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/RNDateTimePicker
|
||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/RNDateTimePicker" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/DoubleConversion" "${PODS_ROOT}/Headers/Public/RNDateTimePicker" "${PODS_ROOT}/Headers/Public/React-Core" "${PODS_ROOT}/Headers/Public/React-RCTBlob" "${PODS_ROOT}/Headers/Public/React-RCTText" "${PODS_ROOT}/Headers/Public/React-cxxreact" "${PODS_ROOT}/Headers/Public/React-jsi" "${PODS_ROOT}/Headers/Public/React-jsiexecutor" "${PODS_ROOT}/Headers/Public/React-jsinspector" "${PODS_ROOT}/Headers/Public/Yoga" "${PODS_ROOT}/Headers/Public/glog"
|
||||
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||
PODS_ROOT = ${SRCROOT}
|
||||
PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../node_modules/@react-native-community/datetimepicker
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
|
||||
SKIP_INSTALL = YES
|
||||
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
|
|
@ -26,8 +26,10 @@
|
|||
"@nozbe/watermelondb": "0.15.0",
|
||||
"@react-native-community/art": "^1.0.4",
|
||||
"@react-native-community/cameraroll": "^1.3.0",
|
||||
"@react-native-community/datetimepicker": "^2.1.0",
|
||||
"@react-native-community/slider": "2.0.5",
|
||||
"@rocket.chat/sdk": "1.0.0-alpha.31",
|
||||
"@rocket.chat/sdk": "1.0.0-alpha.41",
|
||||
"@rocket.chat/ui-kit": "^0.2.0-alpha.25",
|
||||
"bugsnag-react-native": "2.23.2",
|
||||
"commonmark": "git+https://github.com/RocketChat/commonmark.js.git",
|
||||
"commonmark-react-renderer": "git+https://github.com/RocketChat/commonmark-react-renderer.git",
|
||||
|
@ -70,11 +72,13 @@
|
|||
"react-native-localize": "1.3.1",
|
||||
"react-native-mime-types": "^2.2.1",
|
||||
"react-native-modal": "11.5.3",
|
||||
"react-native-modalize": "^1.3.6",
|
||||
"react-native-navigation-bar-color": "^1.0.0",
|
||||
"react-native-notifications": "^2.0.6",
|
||||
"react-native-orientation-locker": "1.1.6",
|
||||
"react-native-picker-select": "6.3.3",
|
||||
"react-native-platform-touchable": "^1.1.1",
|
||||
"react-native-popover-view": "^2.0.5",
|
||||
"react-native-progress": "^4.0.3",
|
||||
"react-native-reanimated": "1.4.0",
|
||||
"react-native-responsive-ui": "^1.1.1",
|
||||
|
@ -99,7 +103,7 @@
|
|||
"rn-extensions-share": "^2.3.10",
|
||||
"rn-fetch-blob": "0.11.2",
|
||||
"rn-root-view": "^1.0.3",
|
||||
"rn-user-defaults": "^1.7.0",
|
||||
"rn-user-defaults": "1.7.0",
|
||||
"semver": "6.3.0",
|
||||
"snyk": "1.210.0",
|
||||
"strip-ansi": "5.2.0",
|
||||
|
|
|
@ -0,0 +1,65 @@
|
|||
diff --git a/node_modules/@react-native-community/datetimepicker/ios/RNDateTimePicker.m b/node_modules/@react-native-community/datetimepicker/ios/RNDateTimePicker.m
|
||||
index ad3a9b3..1c347bd 100644
|
||||
--- a/node_modules/@react-native-community/datetimepicker/ios/RNDateTimePicker.m
|
||||
+++ b/node_modules/@react-native-community/datetimepicker/ios/RNDateTimePicker.m
|
||||
@@ -25,6 +25,8 @@ - (instancetype)initWithFrame:(CGRect)frame
|
||||
[self addTarget:self action:@selector(didChange)
|
||||
forControlEvents:UIControlEventValueChanged];
|
||||
_reactMinuteInterval = 1;
|
||||
+ [self performSelector:@selector(setHighlightsToday:)
|
||||
+ withObject:[NSNumber numberWithBool:NO]];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
@@ -38,6 +40,20 @@ - (void)didChange
|
||||
}
|
||||
}
|
||||
|
||||
+-(UIColor *)colorFromHexString:(NSString *)hexString
|
||||
+{
|
||||
+ unsigned rgbValue = 0;
|
||||
+ NSScanner *scanner = [NSScanner scannerWithString:hexString];
|
||||
+ [scanner setScanLocation:1]; // bypass '#' character
|
||||
+ [scanner scanHexInt:&rgbValue];
|
||||
+ return [UIColor colorWithRed:((rgbValue & 0xFF0000) >> 16)/255.0 green:((rgbValue & 0xFF00) >> 8)/255.0 blue:(rgbValue & 0xFF)/255.0 alpha:1.0];
|
||||
+}
|
||||
+
|
||||
+- (void)setColor:(NSString *)color
|
||||
+{
|
||||
+ [self setValue:[self colorFromHexString:color] forKey:@"textColor"];
|
||||
+}
|
||||
+
|
||||
- (void)setDatePickerMode:(UIDatePickerMode)datePickerMode
|
||||
{
|
||||
[super setDatePickerMode:datePickerMode];
|
||||
diff --git a/node_modules/@react-native-community/datetimepicker/ios/RNDateTimePickerManager.m b/node_modules/@react-native-community/datetimepicker/ios/RNDateTimePickerManager.m
|
||||
index 661e1f1..771c0c4 100644
|
||||
--- a/node_modules/@react-native-community/datetimepicker/ios/RNDateTimePickerManager.m
|
||||
+++ b/node_modules/@react-native-community/datetimepicker/ios/RNDateTimePickerManager.m
|
||||
@@ -39,5 +39,6 @@ - (UIView *)view
|
||||
RCT_EXPORT_VIEW_PROPERTY(onChange, RCTBubblingEventBlock)
|
||||
RCT_REMAP_VIEW_PROPERTY(mode, datePickerMode, UIDatePickerMode)
|
||||
RCT_REMAP_VIEW_PROPERTY(timeZoneOffsetInMinutes, timeZone, NSTimeZone)
|
||||
+RCT_REMAP_VIEW_PROPERTY(color, color, NSString)
|
||||
|
||||
@end
|
||||
diff --git a/node_modules/@react-native-community/datetimepicker/src/datetimepicker.ios.js b/node_modules/@react-native-community/datetimepicker/src/datetimepicker.ios.js
|
||||
index 3b25e16..4bf210a 100644
|
||||
--- a/node_modules/@react-native-community/datetimepicker/src/datetimepicker.ios.js
|
||||
+++ b/node_modules/@react-native-community/datetimepicker/src/datetimepicker.ios.js
|
||||
@@ -69,6 +69,7 @@ export default class Picker extends React.Component<IOSNativeProps> {
|
||||
mode,
|
||||
minuteInterval,
|
||||
timeZoneOffsetInMinutes,
|
||||
+ textColor
|
||||
} = this.props;
|
||||
|
||||
invariant(value, 'A date or time should be specified as `value`.');
|
||||
@@ -92,6 +93,7 @@ export default class Picker extends React.Component<IOSNativeProps> {
|
||||
onChange={this._onChange}
|
||||
onStartShouldSetResponder={() => true}
|
||||
onResponderTerminationRequest={() => false}
|
||||
+ color={textColor}
|
||||
/>
|
||||
</View>
|
||||
);
|
|
@ -20,7 +20,7 @@ index 5b7dc21..49f1af5 100644
|
|||
set: function (obj) {
|
||||
this._headers = obj;
|
||||
diff --git a/node_modules/@rocket.chat/sdk/lib/drivers/ddp.js b/node_modules/@rocket.chat/sdk/lib/drivers/ddp.js
|
||||
index e3510c7..e951959 100644
|
||||
index e3510c7..e3216cc 100644
|
||||
--- a/node_modules/@rocket.chat/sdk/lib/drivers/ddp.js
|
||||
+++ b/node_modules/@rocket.chat/sdk/lib/drivers/ddp.js
|
||||
@@ -110,6 +110,7 @@ tiny_events_1.EventEmitter.prototype.removeAllListeners = function (event) {
|
||||
|
@ -50,11 +50,14 @@ index 99eb828..8c99307 100644
|
|||
export declare let department: string;
|
||||
+export declare let customHeaders: object;
|
||||
diff --git a/node_modules/@rocket.chat/sdk/lib/settings.js b/node_modules/@rocket.chat/sdk/lib/settings.js
|
||||
index 822c286..15f2688 100644
|
||||
index 822c286..ce8f805 100644
|
||||
--- a/node_modules/@rocket.chat/sdk/lib/settings.js
|
||||
+++ b/node_modules/@rocket.chat/sdk/lib/settings.js
|
||||
@@ -30,3 +30,4 @@ exports.token = process.env.LIVECHAT_TOKEN || '';
|
||||
@@ -29,4 +29,6 @@ exports.dmCacheMaxAge = 1000 * parseInt(process.env.DM_ROOM_CACHE_MAX_AGE || '10
|
||||
exports.token = process.env.LIVECHAT_TOKEN || '';
|
||||
exports.rid = process.env.LIVECHAT_ROOM || '';
|
||||
exports.department = process.env.LIVECHAT_DEPARTMENT || '';
|
||||
//# sourceMappingURL=settings.js.map
|
||||
+// Headers settings
|
||||
+exports.customHeaders = {};
|
||||
//# sourceMappingURL=settings.js.map
|
||||
\ No newline at end of file
|
|
@ -0,0 +1,30 @@
|
|||
diff --git a/node_modules/react-native-picker-select/src/index.js b/node_modules/react-native-picker-select/src/index.js
|
||||
index 4f50605..6df9757 100644
|
||||
--- a/node_modules/react-native-picker-select/src/index.js
|
||||
+++ b/node_modules/react-native-picker-select/src/index.js
|
||||
@@ -135,7 +135,7 @@ export default class RNPickerSelect extends PureComponent {
|
||||
}
|
||||
|
||||
return {
|
||||
- ...(itemsChanged ? { items } : {}),
|
||||
+ ...(itemsChanged ? { items: !isEqual(selectedItem, {}) ? items.filter(item => item.value !== null) : items } : {}),
|
||||
...(selectedItemChanged ? { selectedItem } : {}),
|
||||
};
|
||||
}
|
||||
@@ -146,6 +146,7 @@ export default class RNPickerSelect extends PureComponent {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
|
||||
+
|
||||
const items = RNPickerSelect.handlePlaceholder({
|
||||
placeholder: this.props.placeholder,
|
||||
}).concat(this.props.items);
|
||||
@@ -157,7 +158,7 @@ export default class RNPickerSelect extends PureComponent {
|
||||
});
|
||||
|
||||
this.state = {
|
||||
- items,
|
||||
+ items: !isEqual(selectedItem, {}) ? items.filter(item => item.value !== null) : items,
|
||||
selectedItem,
|
||||
showPicker: false,
|
||||
animationType: undefined,
|
|
@ -19,7 +19,7 @@ const Separator = ({ title, style, theme }) => (
|
|||
styles.separator,
|
||||
{
|
||||
color: themes[theme].titleText,
|
||||
backgroundColor: themes[theme].auxiliaryBackground
|
||||
backgroundColor: themes[theme].backgroundColor
|
||||
},
|
||||
style
|
||||
]}
|
||||
|
|
|
@ -0,0 +1,431 @@
|
|||
import React from 'react';
|
||||
import { ScrollView, StyleSheet, SafeAreaView } from 'react-native';
|
||||
|
||||
import { UiKitMessage } from '../../app/containers/UIKit';
|
||||
import StoriesSeparator from './StoriesSeparator';
|
||||
|
||||
// eslint-disable-next-line react/prop-types
|
||||
const Separator = ({ title }) => <StoriesSeparator title={title} theme='light' />;
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
container: {
|
||||
flex: 1,
|
||||
backgroundColor: '#fff'
|
||||
},
|
||||
padding: {
|
||||
paddingHorizontal: 16
|
||||
}
|
||||
});
|
||||
|
||||
export default () => (
|
||||
<SafeAreaView style={styles.container}>
|
||||
<ScrollView style={[styles.container, styles.padding]} keyboardShouldPersistTaps='always'>
|
||||
<Separator title='Section' />
|
||||
{
|
||||
UiKitMessage([{
|
||||
type: 'section',
|
||||
text: {
|
||||
type: 'mrkdwn',
|
||||
text: 'Section'
|
||||
}
|
||||
}])
|
||||
}
|
||||
|
||||
<Separator title='Section + Overflow' />
|
||||
{
|
||||
UiKitMessage([
|
||||
{
|
||||
type: 'section',
|
||||
text: {
|
||||
type: 'mrkdwn',
|
||||
text: 'Section + Overflow'
|
||||
},
|
||||
accessory: {
|
||||
type: 'overflow',
|
||||
options: [
|
||||
{
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
text: 'Option 1',
|
||||
emoji: true
|
||||
},
|
||||
value: 'value-0'
|
||||
},
|
||||
{
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
text: 'Option 2',
|
||||
emoji: true
|
||||
},
|
||||
value: 'value-1'
|
||||
},
|
||||
{
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
text: 'Option 3',
|
||||
emoji: true
|
||||
},
|
||||
value: 'value-2'
|
||||
},
|
||||
{
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
text: 'Option 4',
|
||||
emoji: true
|
||||
},
|
||||
value: 'value-3'
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
])
|
||||
}
|
||||
|
||||
<Separator title='Section + image' />
|
||||
{
|
||||
UiKitMessage([{
|
||||
type: 'section',
|
||||
text: {
|
||||
type: 'mrkdwn',
|
||||
text: 'Section + Image'
|
||||
},
|
||||
accessory: {
|
||||
type: 'image',
|
||||
imageUrl: 'https://raw.githubusercontent.com/RocketChat/Rocket.Chat.Artwork/master/Logos/icon-circle-256.png',
|
||||
altText: 'plants'
|
||||
}
|
||||
}])
|
||||
}
|
||||
|
||||
<Separator title='Section + button' />
|
||||
{
|
||||
UiKitMessage([{
|
||||
type: 'section',
|
||||
text: {
|
||||
type: 'mrkdwn',
|
||||
text: 'Section + button'
|
||||
},
|
||||
accessory: {
|
||||
type: 'button',
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
text: 'button'
|
||||
}
|
||||
}
|
||||
}])
|
||||
}
|
||||
|
||||
<Separator title='Section + Select' />
|
||||
{
|
||||
UiKitMessage([{
|
||||
type: 'section',
|
||||
text: {
|
||||
type: 'mrkdwn',
|
||||
text: 'Section + select'
|
||||
},
|
||||
accessory: {
|
||||
type: 'static_select',
|
||||
options: [
|
||||
{
|
||||
value: 1,
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
text: 'button'
|
||||
}
|
||||
}, {
|
||||
value: 2,
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
text: 'second button'
|
||||
}
|
||||
}]
|
||||
}
|
||||
}])
|
||||
}
|
||||
|
||||
<Separator title='Section + DatePicker' />
|
||||
{
|
||||
UiKitMessage([{
|
||||
type: 'section',
|
||||
text: {
|
||||
type: 'mrkdwn',
|
||||
text: 'Section + DatePicker'
|
||||
},
|
||||
accessory: {
|
||||
type: 'datepicker',
|
||||
initial_date: '1990-04-28',
|
||||
placeholder: {
|
||||
type: 'plain_text',
|
||||
text: 'Select a date',
|
||||
emoji: true
|
||||
}
|
||||
}
|
||||
}])
|
||||
}
|
||||
|
||||
<Separator title='Section + Multi Select' />
|
||||
{
|
||||
UiKitMessage([{
|
||||
type: 'section',
|
||||
text: {
|
||||
type: 'mrkdwn',
|
||||
text: 'Section + select'
|
||||
},
|
||||
accessory: {
|
||||
type: 'multi_static_select',
|
||||
options: [{
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
text: 'button'
|
||||
},
|
||||
value: 1
|
||||
}, {
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
text: 'opt 1'
|
||||
},
|
||||
value: 2
|
||||
}, {
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
text: 'opt 2'
|
||||
},
|
||||
value: 3
|
||||
}, {
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
text: 'opt 3'
|
||||
},
|
||||
value: 4
|
||||
}]
|
||||
}
|
||||
}])
|
||||
}
|
||||
|
||||
<Separator title='Image' />
|
||||
{
|
||||
UiKitMessage([{
|
||||
type: 'image',
|
||||
title: {
|
||||
type: 'plain_text',
|
||||
text: 'Example Image',
|
||||
emoji: true
|
||||
},
|
||||
imageUrl: 'https://raw.githubusercontent.com/RocketChat/Rocket.Chat.Artwork/master/Logos/icon-circle-256.png',
|
||||
altText: 'Example Image'
|
||||
}])
|
||||
}
|
||||
|
||||
<Separator title='Context' />
|
||||
{
|
||||
UiKitMessage([{
|
||||
type: 'context',
|
||||
elements: [{
|
||||
type: 'image',
|
||||
title: {
|
||||
type: 'plain_text',
|
||||
text: 'Example Image',
|
||||
emoji: true
|
||||
},
|
||||
imageUrl: 'https://raw.githubusercontent.com/RocketChat/Rocket.Chat.Artwork/master/Logos/icon-circle-256.png',
|
||||
altText: 'Example Image'
|
||||
},
|
||||
{
|
||||
type: 'mrkdwn',
|
||||
text: 'context'
|
||||
}
|
||||
]
|
||||
}])
|
||||
}
|
||||
|
||||
<Separator title='Action - Buttons' />
|
||||
{
|
||||
UiKitMessage([{
|
||||
type: 'actions',
|
||||
elements: [
|
||||
{
|
||||
type: 'button',
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
emoji: true,
|
||||
text: 'Approve'
|
||||
},
|
||||
style: 'primary',
|
||||
value: 'click_me_123'
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
emoji: true,
|
||||
text: 'Deny'
|
||||
},
|
||||
style: 'danger',
|
||||
value: 'click_me_123'
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
emoji: true,
|
||||
text: 'Deny'
|
||||
},
|
||||
style: 'danger',
|
||||
value: 'click_me_123'
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
emoji: true,
|
||||
text: 'Deny'
|
||||
},
|
||||
style: 'danger',
|
||||
value: 'click_me_123'
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
emoji: true,
|
||||
text: 'Deny'
|
||||
},
|
||||
style: 'danger',
|
||||
value: 'click_me_123'
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
emoji: true,
|
||||
text: 'Deny'
|
||||
},
|
||||
style: 'danger',
|
||||
value: 'click_me_123'
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
emoji: true,
|
||||
text: 'Deny'
|
||||
},
|
||||
style: 'danger',
|
||||
value: 'click_me_123'
|
||||
}
|
||||
]
|
||||
}])
|
||||
}
|
||||
|
||||
<Separator title='Fields' />
|
||||
{
|
||||
UiKitMessage([
|
||||
{
|
||||
type: 'section',
|
||||
fields: [
|
||||
{
|
||||
type: 'plain_text',
|
||||
text: '*this is plain_text text*',
|
||||
emoji: true
|
||||
},
|
||||
{
|
||||
type: 'plain_text',
|
||||
text: '*this is plain_text text*',
|
||||
emoji: true
|
||||
},
|
||||
{
|
||||
type: 'plain_text',
|
||||
text: '*this is plain_text text*',
|
||||
emoji: true
|
||||
},
|
||||
{
|
||||
type: 'plain_text',
|
||||
text: '*this is plain_text text*',
|
||||
emoji: true
|
||||
},
|
||||
{
|
||||
type: 'plain_text',
|
||||
text: '*this is plain_text text*',
|
||||
emoji: true
|
||||
}
|
||||
]
|
||||
}])
|
||||
}
|
||||
|
||||
<Separator title='Action - Select' />
|
||||
{
|
||||
UiKitMessage([{
|
||||
type: 'actions',
|
||||
elements: [
|
||||
{
|
||||
type: 'conversations_select',
|
||||
placeholder: {
|
||||
type: 'plain_text',
|
||||
text: 'Select a conversation',
|
||||
emoji: true
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'channels_select',
|
||||
placeholder: {
|
||||
type: 'plain_text',
|
||||
text: 'Select a channel',
|
||||
emoji: true
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'users_select',
|
||||
placeholder: {
|
||||
type: 'plain_text',
|
||||
text: 'Select a user',
|
||||
emoji: true
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'static_select',
|
||||
placeholder: {
|
||||
type: 'plain_text',
|
||||
text: 'Select an item',
|
||||
emoji: true
|
||||
},
|
||||
options: [
|
||||
{
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
text: 'Excellent item 1',
|
||||
emoji: true
|
||||
},
|
||||
value: 'value-0'
|
||||
},
|
||||
{
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
text: 'Fantastic item 2',
|
||||
emoji: true
|
||||
},
|
||||
value: 'value-1'
|
||||
},
|
||||
{
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
text: 'Nifty item 3',
|
||||
emoji: true
|
||||
},
|
||||
value: 'value-2'
|
||||
},
|
||||
{
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
text: 'Pretty good item 4',
|
||||
emoji: true
|
||||
},
|
||||
value: 'value-3'
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}])
|
||||
}
|
||||
</ScrollView>
|
||||
</SafeAreaView>
|
||||
);
|
|
@ -0,0 +1,564 @@
|
|||
import React from 'react';
|
||||
import { ScrollView, StyleSheet, SafeAreaView } from 'react-native';
|
||||
|
||||
import { UiKitModal, UiKitComponent } from '../../app/containers/UIKit';
|
||||
import { KitContext, defaultContext } from '../../app/containers/UIKit/utils';
|
||||
import StoriesSeparator from './StoriesSeparator';
|
||||
|
||||
// eslint-disable-next-line react/prop-types
|
||||
const Separator = ({ title }) => <StoriesSeparator title={title} theme='light' />;
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
container: {
|
||||
flex: 1,
|
||||
backgroundColor: '#fff'
|
||||
},
|
||||
padding: {
|
||||
paddingHorizontal: 16
|
||||
}
|
||||
});
|
||||
|
||||
export default () => (
|
||||
<SafeAreaView style={styles.container}>
|
||||
<ScrollView style={[styles.container, styles.padding]} keyboardShouldPersistTaps='always'>
|
||||
<Separator title='Modal - Section and Selects' />
|
||||
{
|
||||
UiKitModal([
|
||||
{
|
||||
type: 'section',
|
||||
text: {
|
||||
type: 'mrkdwn',
|
||||
text: '*Rocket.Chat is free, unlimited and open source* 🚀\nIf you have any doubt ask to @rocketcat'
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'divider'
|
||||
},
|
||||
{
|
||||
type: 'section',
|
||||
fields: [
|
||||
{
|
||||
type: 'mrkdwn',
|
||||
text: '*Text 1*\nDescription, Mussum Ipsum, cacilds vidis litro'
|
||||
},
|
||||
{
|
||||
type: 'mrkdwn',
|
||||
text: '*Text 2*\nDescription, Mussum Ipsum, cacilds vidis litro'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
type: 'section',
|
||||
fields: [
|
||||
{
|
||||
type: 'mrkdwn',
|
||||
text: '*Text 3*\nDescription, Mussum Ipsum, cacilds vidis litro'
|
||||
},
|
||||
{
|
||||
type: 'mrkdwn',
|
||||
text: '*Text 4*\nDescription, Mussum Ipsum, cacilds vidis litro'
|
||||
}
|
||||
]
|
||||
}
|
||||
])
|
||||
}
|
||||
|
||||
<Separator title='Modal - Section Accessories' />
|
||||
{
|
||||
UiKitModal([
|
||||
{
|
||||
type: 'section',
|
||||
text: {
|
||||
type: 'mrkdwn',
|
||||
text: '*Bruno Quadros*,\nPlease review your details for your *travel expense*.\nExpense no. *DA921*.'
|
||||
},
|
||||
accessory: {
|
||||
type: 'image',
|
||||
imageUrl: 'https://raw.githubusercontent.com/RocketChat/Rocket.Chat.Artwork/master/Logos/icon-circle-256.png'
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'divider'
|
||||
},
|
||||
{
|
||||
type: 'section',
|
||||
text: {
|
||||
type: 'mrkdwn',
|
||||
text: '*Date:*\n11/02/2020'
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'section',
|
||||
text: {
|
||||
type: 'mrkdwn',
|
||||
text: '*Category:*\nTravel'
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'section',
|
||||
text: {
|
||||
type: 'mrkdwn',
|
||||
text: '*Cost:*\n$150.00 USD'
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'section',
|
||||
text: {
|
||||
type: 'mrkdwn',
|
||||
text: '*Notes:*\nWebSummit Conference'
|
||||
}
|
||||
}
|
||||
])
|
||||
}
|
||||
|
||||
<Separator title='Modal - Form Input' />
|
||||
{
|
||||
UiKitModal([
|
||||
{
|
||||
type: 'input',
|
||||
element: {
|
||||
type: 'plain_text_input'
|
||||
},
|
||||
label: {
|
||||
type: 'plain_text',
|
||||
text: 'Outgoing Title',
|
||||
emoji: true
|
||||
},
|
||||
hint: {
|
||||
type: 'plain_text',
|
||||
text: 'Pick something unique!',
|
||||
emoji: true
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'input',
|
||||
element: {
|
||||
type: 'datepicker',
|
||||
initial_date: '1990-04-28',
|
||||
placeholder: {
|
||||
type: 'plain_text',
|
||||
text: 'Select a date',
|
||||
emoji: true
|
||||
}
|
||||
},
|
||||
label: {
|
||||
type: 'plain_text',
|
||||
text: 'Set a date',
|
||||
emoji: true
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'input',
|
||||
element: {
|
||||
type: 'multi_static_select',
|
||||
options: [{
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
text: 'John'
|
||||
},
|
||||
value: 1
|
||||
}, {
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
text: 'Dog'
|
||||
},
|
||||
value: 2
|
||||
}]
|
||||
},
|
||||
label: {
|
||||
type: 'plain_text',
|
||||
text: 'Share with...',
|
||||
emoji: true
|
||||
}
|
||||
}
|
||||
])
|
||||
}
|
||||
|
||||
<Separator title='Modal - Form TextArea' />
|
||||
{
|
||||
UiKitModal([
|
||||
{
|
||||
type: 'context',
|
||||
elements: [{
|
||||
type: 'mrkdwn',
|
||||
text: 'Task: ZOL-994'
|
||||
}]
|
||||
},
|
||||
{
|
||||
type: 'section',
|
||||
text: {
|
||||
type: 'mrkdwn',
|
||||
text: 'Update Spec final assets'
|
||||
},
|
||||
accessory: {
|
||||
type: 'button',
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
text: 'Change'
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'divider'
|
||||
},
|
||||
{
|
||||
type: 'input',
|
||||
element: {
|
||||
type: 'plain_text_input',
|
||||
multiline: true
|
||||
},
|
||||
placeholder: {
|
||||
type: 'plain_text',
|
||||
text: 'Write Something',
|
||||
emoji: true
|
||||
},
|
||||
label: {
|
||||
type: 'plain_text',
|
||||
text: 'Notes',
|
||||
emoji: true
|
||||
},
|
||||
hint: {
|
||||
type: 'plain_text',
|
||||
text: 'Please take the time to compose something short',
|
||||
emoji: true
|
||||
},
|
||||
description: {
|
||||
type: 'plain_text',
|
||||
text: 'Describe your update',
|
||||
emoji: true
|
||||
}
|
||||
}
|
||||
])
|
||||
}
|
||||
|
||||
<Separator title='Modal - Images' />
|
||||
{
|
||||
UiKitModal([
|
||||
{
|
||||
type: 'image',
|
||||
title: {
|
||||
type: 'plain_text',
|
||||
text: 'Example Image',
|
||||
emoji: true
|
||||
},
|
||||
imageUrl: 'https://raw.githubusercontent.com/RocketChat/Rocket.Chat.Artwork/master/Logos/icon-circle-256.png',
|
||||
alt_text: 'Example Image'
|
||||
},
|
||||
{
|
||||
type: 'section',
|
||||
text: {
|
||||
type: 'mrkdwn',
|
||||
text: 'How could be the life in Mars?'
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'context',
|
||||
elements: [
|
||||
{
|
||||
type: 'image',
|
||||
imageUrl: 'https://raw.githubusercontent.com/RocketChat/Rocket.Chat.Artwork/master/Logos/icon-circle-256.png'
|
||||
},
|
||||
{
|
||||
type: 'mrkdwn',
|
||||
text: 'November 25, 2019'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
type: 'section',
|
||||
text: {
|
||||
type: 'mrkdwn',
|
||||
text: '*Next stop, Mars!*\nMussum Ipsum, cacilds vidis litro abertis. Admodum accumsan disputationi eu sit. Vide electram sadipscing et per. Diuretics paradis num copo é motivis de denguis. Mais vale um bebadis conhecidiss, que um alcoolatra anonimis. Aenean aliquam molestie leo, vitae iaculis nisl.'
|
||||
}
|
||||
}
|
||||
])
|
||||
}
|
||||
|
||||
<Separator title='Modal - Actions' />
|
||||
{
|
||||
UiKitModal([{
|
||||
type: 'input',
|
||||
element: {
|
||||
type: 'plain_text_input'
|
||||
},
|
||||
label: {
|
||||
type: 'plain_text',
|
||||
text: 'Title',
|
||||
emoji: true
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'section',
|
||||
text: {
|
||||
type: 'mrkdwn',
|
||||
text: 'Details'
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'section',
|
||||
accessory: {
|
||||
type: 'static_select',
|
||||
options: [
|
||||
{
|
||||
value: 1,
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
text: 'TypeL Task'
|
||||
}
|
||||
}, {
|
||||
value: 2,
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
text: 'second button'
|
||||
}
|
||||
}]
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'section',
|
||||
accessory: {
|
||||
type: 'static_select',
|
||||
options: [
|
||||
{
|
||||
value: 1,
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
text: 'Project: Space (winter)'
|
||||
}
|
||||
}, {
|
||||
value: 2,
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
text: 'second button'
|
||||
}
|
||||
}]
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'section',
|
||||
accessory: {
|
||||
type: 'static_select',
|
||||
options: [
|
||||
{
|
||||
value: 1,
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
text: 'Priority (optional)'
|
||||
}
|
||||
}, {
|
||||
value: 2,
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
text: 'second button'
|
||||
}
|
||||
}]
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'section',
|
||||
accessory: {
|
||||
type: 'static_select',
|
||||
options: [
|
||||
{
|
||||
value: 1,
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
text: 'Assinee (optional)'
|
||||
}
|
||||
}, {
|
||||
value: 2,
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
text: 'second button'
|
||||
}
|
||||
}]
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'input',
|
||||
element: {
|
||||
type: 'plain_text_input',
|
||||
multiline: true
|
||||
},
|
||||
placeholder: {
|
||||
type: 'plain_text',
|
||||
text: 'Write Something',
|
||||
emoji: true
|
||||
},
|
||||
label: {
|
||||
type: 'plain_text',
|
||||
text: 'Description',
|
||||
emoji: true
|
||||
}
|
||||
}])
|
||||
}
|
||||
|
||||
<Separator title='Modal - Contexts and Dividers' />
|
||||
{
|
||||
UiKitModal([
|
||||
{
|
||||
type: 'context',
|
||||
elements: [{
|
||||
type: 'mrkdwn',
|
||||
text: 'Due today'
|
||||
}]
|
||||
},
|
||||
{
|
||||
type: 'divider'
|
||||
},
|
||||
{
|
||||
type: 'section',
|
||||
text: {
|
||||
type: 'mrkdwn',
|
||||
text: 'Finish interface componests (3 hours)'
|
||||
},
|
||||
accessory: {
|
||||
blockId: 'overflow-1',
|
||||
type: 'overflow',
|
||||
options: [
|
||||
{
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
text: 'Details',
|
||||
emoji: true
|
||||
},
|
||||
value: 'value-0'
|
||||
},
|
||||
{
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
text: 'Remove',
|
||||
emoji: true
|
||||
},
|
||||
value: 'value-1'
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'section',
|
||||
text: {
|
||||
type: 'mrkdwn',
|
||||
text: 'English Class (1 hour)'
|
||||
},
|
||||
accessory: {
|
||||
blockId: 'overflow-2',
|
||||
type: 'overflow',
|
||||
options: [
|
||||
{
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
text: 'Details',
|
||||
emoji: true
|
||||
},
|
||||
value: 'value-0'
|
||||
},
|
||||
{
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
text: 'Remove',
|
||||
emoji: true
|
||||
},
|
||||
value: 'value-1'
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'section',
|
||||
text: {
|
||||
type: 'mrkdwn',
|
||||
text: 'Send an email to John (15min)'
|
||||
},
|
||||
accessory: {
|
||||
blockId: 'overflow-3',
|
||||
type: 'overflow',
|
||||
options: [
|
||||
{
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
text: 'Details',
|
||||
emoji: true
|
||||
},
|
||||
value: 'value-0'
|
||||
},
|
||||
{
|
||||
text: {
|
||||
type: 'plain_text',
|
||||
text: 'Remove',
|
||||
emoji: true
|
||||
},
|
||||
value: 'value-1'
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
])
|
||||
}
|
||||
|
||||
<Separator title='Modal - Input with error' />
|
||||
<KitContext.Provider value={{ ...defaultContext, errors: { 'input-test': 'error test' } }}>
|
||||
<UiKitComponent
|
||||
render={UiKitModal}
|
||||
blocks={[{
|
||||
type: 'input',
|
||||
element: {
|
||||
type: 'plain_text_input',
|
||||
actionId: 'input-test'
|
||||
},
|
||||
label: {
|
||||
type: 'plain_text',
|
||||
text: 'Label',
|
||||
emoji: true
|
||||
}
|
||||
}]}
|
||||
/>
|
||||
</KitContext.Provider>
|
||||
|
||||
<Separator title='Modal - Multilne with error' />
|
||||
<KitContext.Provider value={{ ...defaultContext, errors: { 'input-test': 'error test' } }}>
|
||||
<UiKitComponent
|
||||
render={UiKitModal}
|
||||
blocks={[{
|
||||
type: 'input',
|
||||
element: {
|
||||
type: 'plain_text_input',
|
||||
multiline: true,
|
||||
actionId: 'input-test'
|
||||
},
|
||||
label: {
|
||||
type: 'plain_text',
|
||||
text: 'Label',
|
||||
emoji: true
|
||||
}
|
||||
}]}
|
||||
/>
|
||||
</KitContext.Provider>
|
||||
|
||||
<Separator title='Modal - DatePicker with error' />
|
||||
<KitContext.Provider value={{ ...defaultContext, errors: { 'input-test': 'error test' } }}>
|
||||
<UiKitComponent
|
||||
render={UiKitModal}
|
||||
blocks={[{
|
||||
type: 'input',
|
||||
element: {
|
||||
type: 'datepicker',
|
||||
initial_date: '1990-04-28',
|
||||
actionId: 'input-test',
|
||||
placeholder: {
|
||||
type: 'plain_text',
|
||||
text: 'Select a date',
|
||||
emoji: true
|
||||
}
|
||||
},
|
||||
label: {
|
||||
type: 'plain_text',
|
||||
text: 'Label',
|
||||
emoji: true
|
||||
}
|
||||
}]}
|
||||
/>
|
||||
</KitContext.Provider>
|
||||
</ScrollView>
|
||||
</SafeAreaView>
|
||||
);
|
|
@ -6,6 +6,8 @@ import { storiesOf } from '@storybook/react-native';
|
|||
|
||||
import RoomItem from './RoomItem';
|
||||
import Message from './Message';
|
||||
import UiKitMessage from './UiKitMessage';
|
||||
import UiKitModal from './UiKitModal';
|
||||
// import RoomViewHeader from './RoomViewHeader';
|
||||
|
||||
// Change here to see themed storybook
|
||||
|
@ -25,9 +27,15 @@ const store = createStore(reducers);
|
|||
|
||||
storiesOf('RoomItem', module)
|
||||
.addDecorator(story => <Provider store={store}>{story()}</Provider>)
|
||||
.add('list', () => <RoomItem theme={theme} />);
|
||||
.add('list roomitem', () => <RoomItem theme={theme} />);
|
||||
storiesOf('Message', module)
|
||||
.add('list', () => <Message theme={theme} />);
|
||||
.add('list message', () => <Message theme={theme} />);
|
||||
|
||||
storiesOf('UiKitMessage', module)
|
||||
.add('list uikitmessage', () => <UiKitMessage theme={theme} />);
|
||||
storiesOf('UiKitModal', module)
|
||||
.add('list UiKitModal', () => <UiKitModal theme={theme} />);
|
||||
|
||||
// FIXME: I couldn't make these pass on jest :(
|
||||
// storiesOf('RoomViewHeader', module)
|
||||
// .add('list', () => <RoomViewHeader theme='black' />);
|
||||
|
|
36
yarn.lock
36
yarn.lock
|
@ -1549,6 +1549,13 @@
|
|||
wcwidth "^1.0.1"
|
||||
ws "^1.1.0"
|
||||
|
||||
"@react-native-community/datetimepicker@^2.1.0":
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@react-native-community/datetimepicker/-/datetimepicker-2.1.0.tgz#4e3413462cbbe5c48fab6cebd422835031cdf7b9"
|
||||
integrity sha512-InktUrx0/4JTy1YsgswljgID7oB3L8wkFobRhnLGWPExSsNHeecGW2/nBP31ZaOPHcjVWhpOQMZt0zDpKfGE/Q==
|
||||
dependencies:
|
||||
invariant "^2.2.4"
|
||||
|
||||
"@react-native-community/slider@2.0.5":
|
||||
version "2.0.5"
|
||||
resolved "https://registry.yarnpkg.com/@react-native-community/slider/-/slider-2.0.5.tgz#2efd009ff083e4321fc9f0ebf380a3d3f5d8121f"
|
||||
|
@ -1622,10 +1629,10 @@
|
|||
resolved "https://registry.yarnpkg.com/@redux-saga/types/-/types-1.1.0.tgz#0e81ce56b4883b4b2a3001ebe1ab298b84237204"
|
||||
integrity sha512-afmTuJrylUU/0OtqzaRkbyYFFNgCF73Bvel/sw90pvGrWIZ+vyoIJqA6eMSoA6+nb443kTmulmBtC9NerXboNg==
|
||||
|
||||
"@rocket.chat/sdk@1.0.0-alpha.31":
|
||||
version "1.0.0-alpha.31"
|
||||
resolved "https://registry.yarnpkg.com/@rocket.chat/sdk/-/sdk-1.0.0-alpha.31.tgz#d810645f0894d384d27737efe6ee18955db7c9a7"
|
||||
integrity sha512-+ScMW4+Ik8n0WK1suqAI03ZFivwzwyJZeLnOXtX9hDzpRN4UOXCGh/dAhlTjS3/oaF3lmwjF00s4+UUMZBN51w==
|
||||
"@rocket.chat/sdk@1.0.0-alpha.41":
|
||||
version "1.0.0-alpha.41"
|
||||
resolved "https://registry.yarnpkg.com/@rocket.chat/sdk/-/sdk-1.0.0-alpha.41.tgz#8fcae2885786bec56a56b6d9a8cccaa365b77364"
|
||||
integrity sha512-jQ+/exEQMOv+bwH+yzPTC0oJGIKj/AlMc95IvWAn/vHDLjjS3aGzpIpZhBwsMOBVvb/5N8rnq6kEleCkEJk28g==
|
||||
dependencies:
|
||||
js-sha256 "^0.9.0"
|
||||
lru-cache "^4.1.1"
|
||||
|
@ -1633,6 +1640,11 @@
|
|||
tiny-events "^1.0.1"
|
||||
universal-websocket-client "^1.0.2"
|
||||
|
||||
"@rocket.chat/ui-kit@^0.2.0-alpha.25":
|
||||
version "0.2.0-alpha.26"
|
||||
resolved "https://registry.yarnpkg.com/@rocket.chat/ui-kit/-/ui-kit-0.2.0-alpha.26.tgz#139e337bc8e751ecd5e61e7a07e563792c37d002"
|
||||
integrity sha512-UBsuntc/W/s545WJGUZlG2TyrrCI59REhRWcgIR/Ueb3qkh/DuhdtK6zjVH1y0M+tLlkrIgtEAsoatj55nkWVA==
|
||||
|
||||
"@snyk/composer-lockfile-parser@1.0.3":
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@snyk/composer-lockfile-parser/-/composer-lockfile-parser-1.0.3.tgz#4b703883ec36f3cec63c64355031e06698c771f5"
|
||||
|
@ -9430,6 +9442,11 @@ react-native-modal@^9.0.0:
|
|||
prop-types "^15.6.2"
|
||||
react-native-animatable "^1.2.4"
|
||||
|
||||
react-native-modalize@^1.3.6:
|
||||
version "1.3.6"
|
||||
resolved "https://registry.yarnpkg.com/react-native-modalize/-/react-native-modalize-1.3.6.tgz#1a8651f673dbaccb9ebef908688bbd72b7790470"
|
||||
integrity sha512-omYD+bPpugO7XPZ4pvPIaltw8d4Es0ZcRfu8VVslYAJT74t5IxSd6NrtL3nw/i+TKZo+CTdK4d0hbgBiyt+mMw==
|
||||
|
||||
react-native-navigation-bar-color@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/react-native-navigation-bar-color/-/react-native-navigation-bar-color-1.0.0.tgz#04ff752a58049af93ceea9ccf266b8d3fbc6514a"
|
||||
|
@ -9460,6 +9477,13 @@ react-native-platform-touchable@^1.1.1:
|
|||
resolved "https://registry.yarnpkg.com/react-native-platform-touchable/-/react-native-platform-touchable-1.1.1.tgz#fde4acc65eea585d28b164d0c3716a42129a68e4"
|
||||
integrity sha1-/eSsxl7qWF0osWTQw3FqQhKaaOQ=
|
||||
|
||||
react-native-popover-view@^2.0.5:
|
||||
version "2.0.5"
|
||||
resolved "https://registry.yarnpkg.com/react-native-popover-view/-/react-native-popover-view-2.0.5.tgz#402767a7ef791cb5ec5c035f51755e579b0eaee3"
|
||||
integrity sha512-F/GJxaRdmpHPX/rXBgeGkKRB3t7v8rS5ysEclSNcXtBe00rkhCNq74h0WKomQDPM1LYPETZ76mXIfHylEU7Awg==
|
||||
dependencies:
|
||||
react-native-safe-area-view "^0.14.6"
|
||||
|
||||
react-native-progress@^4.0.3:
|
||||
version "4.0.3"
|
||||
resolved "https://registry.yarnpkg.com/react-native-progress/-/react-native-progress-4.0.3.tgz#0020a9ce9fa5cb14c7aac8f993b31f27a7ff2150"
|
||||
|
@ -9480,7 +9504,7 @@ react-native-responsive-ui@^1.1.1:
|
|||
dependencies:
|
||||
lodash "^4.17.4"
|
||||
|
||||
react-native-safe-area-view@^0.14.1:
|
||||
react-native-safe-area-view@^0.14.1, react-native-safe-area-view@^0.14.6:
|
||||
version "0.14.8"
|
||||
resolved "https://registry.yarnpkg.com/react-native-safe-area-view/-/react-native-safe-area-view-0.14.8.tgz#ef33c46ff8164ae77acad48c3039ec9c34873e5b"
|
||||
integrity sha512-MtRSIcZNstxv87Jet+UsPhEd1tpGe8cVskDXlP657x6rHpSrbrc+y13ZNXrwAgGNNhqQNX7UJT68ZIq//ZRmvw==
|
||||
|
@ -10242,7 +10266,7 @@ rn-root-view@^1.0.3:
|
|||
resolved "https://registry.yarnpkg.com/rn-root-view/-/rn-root-view-1.0.3.tgz#a2cddc717278cb2175fb29b7c006e407b7f0d0e2"
|
||||
integrity sha512-BIKm8hY5q8+pxK9B5ugYjqutoI9xn2JfxIZKWoaFmAl1bOIM4oXjwFQrRM1e6lFgzz99MN6Mf2dK3Alsywnvvw==
|
||||
|
||||
rn-user-defaults@^1.7.0:
|
||||
rn-user-defaults@1.7.0:
|
||||
version "1.7.0"
|
||||
resolved "https://registry.yarnpkg.com/rn-user-defaults/-/rn-user-defaults-1.7.0.tgz#8d1b79657dec3977e8f8983814b8591821f77236"
|
||||
integrity sha512-Qo6sIH8wldmQ0oOMMvljec4WOa/a1Up1pdatoXZGaPG1gl8OKgKH5HPKyddcABYtxPeBUTPVzCxP/6S6wPCqGQ==
|
||||
|
|
Loading…
Reference in New Issue