-
Notifications
You must be signed in to change notification settings - Fork 3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into update-react-native-svg
- Loading branch information
Showing
26 changed files
with
507 additions
and
464 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,26 +1,9 @@ | ||
--- | ||
permalink: /404.html | ||
layout: default | ||
lhn_content: '404' | ||
--- | ||
|
||
<style type="text/css" media="screen"> | ||
.container { | ||
margin: 10px auto; | ||
max-width: 600px; | ||
text-align: center; | ||
} | ||
|
||
h1 { | ||
margin: 30px 0; | ||
font-size: 4em; | ||
line-height: 1; | ||
letter-spacing: -1px; | ||
} | ||
</style> | ||
|
||
<div class="container"> | ||
<h1>404</h1> | ||
|
||
<p><strong>Page not found :(</strong></p> | ||
<p>The requested page could not be found.</p> | ||
<div class="centered-content with-lhn"> | ||
<img id="icon" src="/assets/images/circle-hourglass.svg" /> | ||
<strong>Hmm it's not here...</strong> | ||
<div>That page is nowhere to be found.</div> | ||
</div> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
// | ||
// OriginImageRequestHandler.h | ||
// NewExpensify | ||
// | ||
// Created by ntdiary on 2022/8/8. | ||
// | ||
|
||
#import <React/RCTURLRequestHandler.h> | ||
|
||
@interface OriginImageRequestHandler : NSObject <RCTURLRequestHandler> | ||
|
||
@end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,131 @@ | ||
// | ||
// OriginImageRequestHandler.mm | ||
// NewExpensify | ||
// | ||
// Created by ntdiary on 2022/8/8. | ||
// | ||
// Use this handler to parse images uri returned by react-native-image-picker | ||
// instead of the default `RCTImageLoader.mm` | ||
// See https://github.com/facebook/react-native/issues/33760#issuecomment-1196562161 | ||
|
||
#import <Foundation/Foundation.h> | ||
#import <ReactCommon/RCTTurboModule.h> | ||
|
||
#import <MobileCoreServices/MobileCoreServices.h> | ||
#import <React/RCTUtils.h> | ||
|
||
#import "OriginImageRequestHandler.h" | ||
|
||
@interface OriginImageRequestHandler() <RCTTurboModule> | ||
|
||
@end | ||
|
||
@implementation OriginImageRequestHandler | ||
{ | ||
NSOperationQueue *_fileQueue; | ||
} | ||
|
||
RCT_EXPORT_MODULE() | ||
|
||
- (void)invalidate | ||
{ | ||
[_fileQueue cancelAllOperations]; | ||
_fileQueue = nil; | ||
} | ||
|
||
/** | ||
* Only used for parsing the png/jpg image in the application home directory | ||
*/ | ||
- (BOOL)canHandleRequest:(NSURLRequest *)request | ||
{ | ||
return [request.URL.scheme caseInsensitiveCompare:@"file"] == NSOrderedSame | ||
&& RCTIsLocalAssetURL(request.URL) | ||
&& !RCTIsBundleAssetURL(request.URL); | ||
} | ||
|
||
|
||
/** | ||
* Send a network request and call the delegate with the response data. | ||
*/ | ||
- (NSOperation *)sendRequest:(NSURLRequest *)request | ||
withDelegate:(id<RCTURLRequestDelegate>)delegate | ||
{ | ||
// Lazy setup | ||
if (!_fileQueue) { | ||
_fileQueue = [NSOperationQueue new]; | ||
_fileQueue.maxConcurrentOperationCount = 4; | ||
} | ||
|
||
__weak __block NSBlockOperation *weakOp; | ||
__block NSBlockOperation *op = [NSBlockOperation blockOperationWithBlock:^{ | ||
|
||
// Get content length | ||
NSError *error = nil; | ||
NSFileManager *fileManager = [NSFileManager new]; | ||
NSDictionary<NSString *, id> *fileAttributes = [fileManager attributesOfItemAtPath:request.URL.path error:&error]; | ||
if (!fileAttributes) { | ||
[delegate URLRequest:weakOp didCompleteWithError:error]; | ||
return; | ||
} | ||
|
||
// Get mime type | ||
NSString *fileExtension = [request.URL pathExtension]; | ||
NSString *UTI = (__bridge_transfer NSString *)UTTypeCreatePreferredIdentifierForTag( | ||
kUTTagClassFilenameExtension, (__bridge CFStringRef)fileExtension, NULL); | ||
NSString *contentType = (__bridge_transfer NSString *)UTTypeCopyPreferredTagWithClass( | ||
(__bridge CFStringRef)UTI, kUTTagClassMIMEType); | ||
|
||
// Send response | ||
NSURLResponse *response = [[NSURLResponse alloc] initWithURL:request.URL | ||
MIMEType:contentType | ||
expectedContentLength:[fileAttributes[NSFileSize] ?: @-1 integerValue] | ||
textEncodingName:nil]; | ||
|
||
[delegate URLRequest:weakOp didReceiveResponse:response]; | ||
|
||
// Load data | ||
NSData *data = [NSData dataWithContentsOfURL:request.URL | ||
options:NSDataReadingMappedIfSafe | ||
error:&error]; | ||
if (data) { | ||
[delegate URLRequest:weakOp didReceiveData:data]; | ||
} | ||
[delegate URLRequest:weakOp didCompleteWithError:error]; | ||
}]; | ||
|
||
weakOp = op; | ||
[_fileQueue addOperation:op]; | ||
return op; | ||
} | ||
|
||
/** | ||
* Cancel the request | ||
*/ | ||
- (void)cancelRequest:(NSOperation *)op | ||
{ | ||
[op cancel]; | ||
} | ||
|
||
/** | ||
* Should return nullptr. This method may be used later to support C++ TurboModules. | ||
* See https://reactnative.dev/docs/new-architecture-app-modules-ios | ||
*/ | ||
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule: | ||
(const facebook::react::ObjCTurboModule::InitParams &)params | ||
{ | ||
return nullptr; | ||
} | ||
|
||
/** | ||
* Should have higher priority than RCTImageLoader.mm | ||
*/ | ||
- (float)handlerPriority | ||
{ | ||
return 4; | ||
} | ||
|
||
@end | ||
|
||
Class OriginImageRequestHandlerCls(void) { | ||
return OriginImageRequestHandler.class; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.