forked from sheetjs/docs.sheetjs.com
		
	
		
			
				
	
	
		
			30 lines
		
	
	
		
			1022 B
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			1022 B
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
#import <Foundation/Foundation.h>
 | 
						|
#import <React/RCTUtils.h>
 | 
						|
 | 
						|
#import "RCTDocumentPicker.h"
 | 
						|
 | 
						|
@implementation RCTDocumentPicker
 | 
						|
 | 
						|
RCT_EXPORT_MODULE();
 | 
						|
 | 
						|
RCT_EXPORT_METHOD(PickAndRead:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject)
 | 
						|
{
 | 
						|
  RCTExecuteOnMainQueue(^{
 | 
						|
    NSOpenPanel *panel = [NSOpenPanel openPanel];
 | 
						|
    [panel setCanChooseDirectories:NO];
 | 
						|
    [panel setAllowsMultipleSelection:NO];
 | 
						|
    [panel setMessage:@"Select a spreadsheet to read"];
 | 
						|
 | 
						|
    [panel beginWithCompletionHandler:^(NSInteger result){
 | 
						|
      if (result == NSModalResponseOK) {
 | 
						|
        NSURL *selected = [[panel URLs] objectAtIndex:0];
 | 
						|
        NSFileHandle *hFile = [NSFileHandle fileHandleForReadingFromURL:selected error:nil];
 | 
						|
        if(hFile) {
 | 
						|
          NSData *data = [hFile readDataToEndOfFile];
 | 
						|
          resolve([data base64EncodedStringWithOptions:0]);
 | 
						|
        } else reject(@"read_failure", @"Could not read selected file!", nil);
 | 
						|
      } else reject(@"select_failure", @"No file selected!", nil);
 | 
						|
    }];
 | 
						|
  });
 | 
						|
}
 | 
						|
@end |