import React, {useState} from 'react'; import {Modal, Text, TouchableOpacity, View} from 'react-native'; import {TextInput} from 'react-native-gesture-handler'; import Icon from 'react-native-vector-icons/Feather'; import {db} from '../../../App'; import {opacity, ph, pv, SIZE, WEIGHT} from '../../common/common'; import {useTracked} from '../../provider'; import {getElevation, ToastEvent} from '../../utils/utils'; export const AddTopicDialog = ({ visible, close = () => {}, notebookID, toEdit = null, }) => { const [state, dispatch] = useTracked(); const {colors} = state; const [titleFocused, setTitleFocused] = useState(false); let title = null; const addNewTopic = async () => { if (!title) return ToastEvent.show('Title is required', 'error', 3000, () => {}, ''); db.addTopicToNotebook(notebookID, title); ToastEvent.show('New topic added', 'success', 3000, () => {}, ''); close(true); }; return ( (refs = [])}> close()} style={{ width: '100%', height: '100%', position: 'absolute', }} /> {toEdit ? 'Edit Topic' : 'Add New Topic'} { setTitleFocused(true); }} onBlur={() => { setTitleFocused(false); }} defaultValue={toEdit ? toEdit.title : null} onChangeText={value => { title = value; }} placeholder="Enter title of topic" placeholderTextColor={colors.icon} /> await addNewTopic()} style={{ paddingVertical: pv, paddingHorizontal: ph, borderRadius: 5, width: '45%', justifyContent: 'center', alignItems: 'center', borderColor: colors.accent, backgroundColor: colors.accent, borderWidth: 1, }}> Add close()} style={{ paddingVertical: pv, paddingHorizontal: ph, borderRadius: 5, width: '45%', justifyContent: 'center', alignItems: 'center', backgroundColor: colors.nav, }}> Cancel ); };