/
Muip
/
ProBody
Обзор
Документация
Войти
/
Muip
/
ProBody
Код
Запросы
0
Задачи
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
components/Collapsible.tsx
41 строка
1 KB
chmerev
new
14 авг 2024, 12:02
14 авг 2024, 12:02
595f266
Код
Авторство
О чём код?
import Ionicons from '@expo/vector-icons/Ionicons'; import { PropsWithChildren, useState } from 'react'; import { StyleSheet, TouchableOpacity, useColorScheme } from 'react-native'; import { ThemedText } from '@/components/ThemedText'; import { ThemedView } from '@/components/ThemedView'; import Colors from '../constants/Colors'; export function Collapsible({ children, title }: PropsWithChildren & { title: string }) { const [isOpen, setIsOpen] = useState(false); const theme = useColorScheme() ?? 'light'; return ( <ThemedView> <TouchableOpacity style={styles.heading} onPress={() => setIsOpen((value) => !value)} activeOpacity={0.8}> <Ionicons name={isOpen ? 'chevron-down' : 'chevron-forward-outline'} size={18} color={theme === 'light' ? Colors.accent : Colors.black} /> <ThemedText type="defaultSemiBold">{title}</ThemedText> </TouchableOpacity> {isOpen && <ThemedView style={styles.content}>{children}</ThemedView>} </ThemedView> ); } const styles = StyleSheet.create({ heading: { flexDirection: 'row', alignItems: 'center', gap: 6, }, content: { marginTop: 6, marginLeft: 24, }, });