@@ -35,20 +35,35 @@ export const Settings = memo(() => {
3535 return cameraUploadParentQuery . data !== null
3636 } , [ cameraUploadParentQuery . data , cameraUploadParentQuery . status , cameraUpload . enabled ] )
3737
38- const toggleEnabled = useCallback ( async ( enable : boolean ) => {
39- setCameraUploadState ( prev => ( {
40- ...prev ,
41- enabled : enable ,
42- version : ( prev . version ?? 0 ) + 1 ,
43- enabledTimestamp : Date . now ( )
44- } ) )
38+ const toggleEnabled = useCallback (
39+ async ( enable : boolean ) => {
40+ if ( ! permissions ?. granted || ! cameraUploadParentExists || cameraUpload . albums . length === 0 ) {
41+ enable = false
4542
46- if ( enable ) {
47- setTimeout ( ( ) => {
48- foregroundCameraUpload . run ( ) . catch ( console . error )
49- } , 1000 )
50- }
51- } , [ ] )
43+ if ( ! permissions ?. granted ) {
44+ alerts . error ( translateMemoized ( "photos.settings.index.errors.noPermissions" ) )
45+ } else if ( cameraUpload . albums . length === 0 ) {
46+ alerts . error ( translateMemoized ( "photos.settings.index.errors.noAlbumsSelected" ) )
47+ } else {
48+ alerts . error ( translateMemoized ( "photos.settings.index.errors.invalidCloudDirectory" ) )
49+ }
50+ }
51+
52+ setCameraUploadState ( prev => ( {
53+ ...prev ,
54+ enabled : enable ,
55+ version : ( prev . version ?? 0 ) + 1 ,
56+ enabledTimestamp : Date . now ( )
57+ } ) )
58+
59+ if ( enable ) {
60+ setTimeout ( ( ) => {
61+ foregroundCameraUpload . run ( ) . catch ( console . error )
62+ } , 1000 )
63+ }
64+ } ,
65+ [ permissions ?. granted , cameraUploadParentExists , cameraUpload . albums . length ]
66+ )
5267
5368 const toggleCellular = useCallback ( ( ) => {
5469 setCameraUploadState ( prev => ( {
@@ -182,7 +197,9 @@ export const Settings = memo(() => {
182197 rightView : (
183198 < View testID = "photos.settings.enabled" >
184199 < Toggle
185- value = { cameraUpload . enabled && permissions ?. granted && cameraUploadParentExists }
200+ value = {
201+ cameraUpload . enabled && permissions ?. granted && cameraUploadParentExists && cameraUpload . albums . length > 0
202+ }
186203 onValueChange = { toggleEnabled }
187204 />
188205 </ View >
0 commit comments