@@ -6,18 +6,16 @@ import {
66import React , { useState } from 'react' ;
77import {
88 Button ,
9- FlatList ,
10- Modal ,
119 SafeAreaView ,
1210 ScrollView ,
1311 StyleSheet ,
1412 Text ,
1513 View ,
1614} from 'react-native' ;
1715
18- import useBluetoothDevices from './useBluetoothDevices ' ;
19- import useFilePicker from './useFilePicker ' ;
20- import useFirmwareUpdate from './useFirmwareUpdate ' ;
16+ import useFilePicker from '../hooks/useFilePicker ' ;
17+ import useFirmwareUpdate from '../hooks/useFirmwareUpdate ' ;
18+ import { useSelectedDevice } from '../context/selectedDevice ' ;
2119
2220const styles = StyleSheet . create ( {
2321 root : {
@@ -27,29 +25,21 @@ const styles = StyleSheet.create({
2725 block : {
2826 marginBottom : 16 ,
2927 } ,
30-
31- list : {
32- padding : 16 ,
33- } ,
3428} ) ;
3529
36- export default function App ( ) {
37- const [ devicesListVisible , setDevicesListVisible ] = useState ( false ) ;
38- const [ selectedDeviceId , setSelectedDeviceId ] = useState < string | null > ( null ) ;
39- const [ selectedDeviceName , setSelectedDeviceName ] = useState < string | null > (
40- null
41- ) ;
30+ const Update = ( ) => {
31+ const { selectedDevice } = useSelectedDevice ( ) ;
32+
4233 const [ fileType , setFileType ] = useState < UpgradeFileType > (
4334 UpgradeFileType . BIN
4435 ) ;
4536 const [ upgradeMode , setUpgradeMode ] = useState < UpgradeMode | undefined > (
4637 undefined
4738 ) ;
4839
49- const { devices, error : scanError } = useBluetoothDevices ( ) ;
5040 const { selectedFile, filePickerError, pickFile } = useFilePicker ( ) ;
5141 const { cancelUpdate, runUpdate, progress, state } = useFirmwareUpdate (
52- selectedDeviceId ,
42+ selectedDevice ?. deviceId || null ,
5343 selectedFile ?. uri || null ,
5444 fileType ,
5545 upgradeMode
@@ -61,41 +51,14 @@ export default function App() {
6151 < Text style = { styles . block } > Step 1 - Select Device to Update</ Text >
6252
6353 < View style = { styles . block } >
64- { selectedDeviceId && (
54+ { selectedDevice ?. deviceId && (
6555 < >
6656 < Text > Selected:</ Text >
67- < Text > { selectedDeviceName } </ Text >
57+ < Text > { selectedDevice . deviceName } </ Text >
6858 </ >
6959 ) }
70- < Button
71- onPress = { ( ) => setDevicesListVisible ( true ) }
72- title = "Select Device"
73- />
7460 </ View >
7561
76- < Modal visible = { devicesListVisible } >
77- < FlatList
78- contentContainerStyle = { styles . list }
79- data = { devices }
80- keyExtractor = { ( { id } ) => id }
81- renderItem = { ( { item } ) => (
82- < View >
83- < Text > { item . name || item . id } </ Text >
84-
85- < Button
86- title = "Select"
87- onPress = { ( ) => {
88- setSelectedDeviceId ( item . id ) ;
89- setSelectedDeviceName ( item . name ) ;
90- setDevicesListVisible ( false ) ;
91- } }
92- />
93- </ View >
94- ) }
95- ListHeaderComponent = { ( ) => < Text > { scanError } </ Text > }
96- />
97- </ Modal >
98-
9962 < Text style = { styles . block } > Step 2 - Select Update File</ Text >
10063
10164 < View style = { styles . block } >
@@ -154,13 +117,13 @@ export default function App() {
154117 </ Text >
155118
156119 < Button
157- disabled = { ! selectedFile || ! selectedDeviceId }
120+ disabled = { ! selectedFile || ! selectedDevice ?. deviceId }
158121 onPress = { ( ) => selectedFile && runUpdate ( ) }
159122 title = "Start Update"
160123 />
161124
162125 < Button
163- disabled = { ! selectedFile || ! selectedDeviceId }
126+ disabled = { ! selectedFile || ! selectedDevice ?. deviceId }
164127 onPress = { ( ) => cancelUpdate ( ) }
165128 title = "Cancel Update"
166129 />
@@ -169,3 +132,5 @@ export default function App() {
169132 </ SafeAreaView >
170133 ) ;
171134}
135+
136+ export default Update ;
0 commit comments