import React, { useState, useEffect } from "react"; import { View, Text, TouchableOpacity, FlatList, KeyboardAvoidingView, TextInput, Platform, Keyboard, } from "react-native"; import { useAllTrainDiagram } from "../stateBox/useAllTrainDiagram"; import { customTrainDataDetector } from "./custom-train-data"; import { getTrainType } from "../lib/getTrainType"; import { SheetManager } from "react-native-actions-sheet"; import { useNavigation } from "@react-navigation/native"; import { BigButton } from "./atom/BigButton"; export default function AllTrainDiagramView() { const { navigate } = useNavigation(); const { keyList } = useAllTrainDiagram(); const [input, setInput] = useState(""); // 文字入力 const [keyBoardVisible, setKeyBoardVisible] = useState(false); useEffect(() => { const showSubscription = Keyboard.addListener("keyboardDidShow", () => { setKeyBoardVisible(true); }); const hideSubscription = Keyboard.addListener("keyboardDidHide", () => { setKeyBoardVisible(false); }); return () => { showSubscription.remove(); hideSubscription.remove(); }; }, []); const openTrainInfo = (d) => { const train = customTrainDataDetector(d); let TrainNumber = ""; if (train.trainNumDistance != undefined) { const timeInfo = parseInt(d.replace("M", "").replace("D", "")) - train.trainNumDistance; TrainNumber = timeInfo + "号"; } const type = getTrainType(train.type).data; const limited = `${type}:${train.trainName}${TrainNumber}`; const payload = { data: { trainNum: d, limited }, navigate, from: "AllTrainIDList", }; SheetManager.show("EachTrainInfo", { payload, }); }; return ( d.includes(input))} renderItem={({ item }) => } keyExtractor={(item) => item} //initialNumToRender={100} /> setKeyBoardVisible(true)} onEndEditing={() => {}} onChange={(ret) => setInput(ret.nativeEvent.text)} value={input} style={{ flex: 1 }} /> navigate("menu")} string="閉じる" style={{ display: Platform.OS === "ios" ? "flex" : keyBoardVisible ? "none" : "flex", }} /> ); } const Item = ({ id, openTrainInfo }) => { return ( openTrainInfo(id)} > {id} ); };