import * as Updates from "expo-updates"; import React, { useState } from "react"; import { Button, FlatList, NativeModules, Pressable, StyleSheet, Text, TextInput, View, } from "react-native"; const { KeyenceModule } = NativeModules; export default function App() { KeyenceModule.hello().then(console.log).catch(console.error); const [buffer, setBuffer] = useState(""); const [items, setItems] = useState([]); const [status, setStatus] = useState(""); const [updates, setUpdates] = useState(""); const handleChange = (text: string) => { // Scanner "types" characters then appends Enter (\n) if (text.endsWith("\n")) { const code = text.trim(); // Remove newline handleScan(code); setBuffer(""); // Reset for next scan } else { setBuffer(text); } }; async function checkServerUpdate() { setUpdates("Checking for updates..."); try { const cacheBuster = `?t=${Date.now()}`; const res = await Updates.checkForUpdateAsync(); console.log("Update check result:", res); if (res.isAvailable) { setUpdates("Update available! Downloading..."); const fetchResult = await Updates.fetchUpdateAsync(); console.log("Fetch result:", fetchResult); if (fetchResult.isNew) { setUpdates("Update downloaded! Reloading app..."); // Add a small delay to ensure everything is ready setTimeout(() => { Updates.reloadAsync(); }, 1000); } else { setUpdates("Update download completed but no new bundle?"); } } else { setUpdates("No new update available."); } } catch (e: any) { console.error("Update error:", e); setUpdates(`Update failed: ${e.message}`); } } const handleScan = (code: string) => { //console.log("Scanned:", code); if (code.toUpperCase().startsWith("LOC")) { console.log("Triggered relocate to lane"); performRelocate(code); } else { setItems((prev) => [...prev, code]); setStatus(`Added: ${code}`); } }; const performRelocate = (locationCode: string) => { if (items.length === 0) { setStatus(`Relocate to ${locationCode} requested, but no items`); return; } // Do your API call or whatever the "relocate" means console.log("Relocating", items, "to", locationCode); setStatus(`Moved ${items.length} items to ${locationCode}`); setItems([]); }; return ( But maybe later i will be