
Все сталкивались с нормальной операцией копирования в буфер обмена в мобильных приложениях, и все знают, что нужно делать после копирования…
Да! тост-сообщение
Так почему же нам нужно каждый раз выполнять эти два действия одно за другим?
Хватит, поздоровайтесь с react-native-clipboard-toast — React Native Clipboard API с компонентом анимированного всплывающего сообщения
один пакет, который содержит копию в буфер обмена и показывает всплывающее сообщение.

Установить
npm install react-native-clipboard-toast
or
yarn add react-native-clipboard-toast
Теперь мы можем начать работу над коротким примером
import * as React from 'react';
import { StyleSheet, View, Text, Clipboard, Image } from 'react-native';
import ClipboardToast from 'react-native-clipboard-toast';
export default function App() {
const [copiedText, setCopiedText] = React.useState('Nothing to show, copy by clicking on some button');
const fetchCopiedText = async () => {
const text = await Clipboard.getString();
setCopiedText(text);
};
return (
<View style={styles.container}>
<View style={styles.buttonContainer}>
<ClipboardToast
textToShow={'Text example'}
textToCopy={'Regular Text'}
toastText={'Text copied to clipboard!'}
id={'resular'}
containerStyle={styles.clipboardToastContainer}
textStyle={[styles.clipboardText, { color: '#FE434C' }]}
accessibilityLabel={'click me to copy'}
toastOnShow={fetchCopiedText}
/>
</View>
<Text
style={{ flex: 1, fontSize: 22, width: 300, textAlign: 'center' }}
>{`Copied Text:\n${copiedText}`}</Text>
</View>
);
}
const styles = StyleSheet.create({
container: {
backgroundColor: '#FFFeee',
alignItems: 'center',
flex: 1,
flexDirection: 'column',
paddingVertical: 25,
},
buttonContainer: {
width: 250,
flex: 1,
justifyContent: 'center',
},
clipboardToastContainer: {
backgroundColor: '#DDDDDD',
padding: 10,
borderRadius: 5,
},
clipboardText: {
fontSize: 18,
textAlign: 'center',
},
});
Пример с простым нижним (по умолчанию) тостом,
фокусируемся на Clipboard
<ClipboardToast
textToShow={'Text example'}
textToCopy={'Regular Text'}
toastText={'Text copied to clipboard!'}
id={'resular'}
containerStyle={styles.clipboardToastContainer}
textStyle={[styles.clipboardText, { color: '#FE434C' }]}
accessibilityLabel={'click me to copy'}
toastOnShow={fetchCopiedText}
/>
Теперь мы можем добавить некоторые изменения:
положение всплывающего уведомления (по умолчанию — внизу, варианты: «внизу», «в центре» и «вверху»),
длительность всплывающего уведомления (по умолчанию 750 миллисекунд)
цвет фона всплывающего окна, и мы можем добавить задержку всплывающего уведомления
Мы добавляем свойства в ClipboardToast.
<ClipboardToast
textToShow={'Text example'}
textToCopy={'Regular Text'}
toastText={'Text copied to clipboard!'}
id={'resular'}
containerStyle={styles.clipboardToastContainer}
textStyle={[styles.clipboardText, { color: '#FE434C' }]}
accessibilityLabel={'click me to copy'}
toastOnShow={fetchCopiedText}
toastPosition={'top'}
toastDuration={2000}
toastBackground={'green'}
delay={500}
/>
Получаем новый тост длительностью 2 секунды, позиция сверху, зеленый цвет фона и небольшая задержка в полсекунды.
Если вы считаете эту запись в блоге полезной, поделитесь ею с другом. 💁🏼♂️
Если вы обнаружите какие-либо трудности, не стесняйтесь добавлять свои комментарии.
Это Idanlevi1 😊