mattermost-mobile/ios/Mattermost/OnPasteEventManager.m
Ewe Tek Min 0d1fd78263 MM-9599 Paste image from clipboard (#3084)
* Show image paste menu

* Get pasted image

* Add more info for file

* Add custom text input and add extension

* Dismiss contextual menu after paste image

* Group image info together

* Add max file check

* Fix max file size text

* Add PropTypes

* Add support for gif and tiff

* add onchange null check

* Use onPaste event

* Move get image info logic

* Clean up listener when no observer

* Add android upload

* Copy file from google docs

* Clean up file after upload

* Prevent text pasted in textbox if it's content uri

* Rename paste file thread

* Move on paste listener logic

* Remove the redundant data in ios

* Get realpath of item

* Clean up

* Only download for image

* Rename to custom text input

* Update RNPasteableEditTextOnPasteListener.java

* Handle for download image failed

* Fix eslint

* Fix test

* Allow multiple images to be pasted

* Remove additional null check

* Add managed control for Android

* Disable only copy, cut and paste

* Accept image in Android edit text

* Add comment for custom text input

* Do not upload when more than max file

* Stop uplaod when exceed file size

* Fix crash when clip data is null

* Return error to JS

* Move download file logic

* Remove console

* Add some tests

* Add test for handleUploadImages

* Add test for file_upload_item

* Use ImageCacheManager to cache remote images

* Fix crashes from one note

* Remove commented code

* Update test
2019-09-16 20:10:14 -03:00

47 lines
1.1 KiB
Objective-C

//
// PasteEventManager.m
// Mattermost
//
// Created by Tek Min Ewe on 05/08/2019.
// Copyright © 2019 Facebook. All rights reserved.
//
#import "OnPasteEventManager.h"
@implementation OnPasteEventManager {
bool hasListeners;
}
RCT_EXPORT_MODULE();
-(void)startObserving {
hasListeners = YES;
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onPaste:) name:@"onPaste" object:nil];
}
-(void)stopObserving {
hasListeners = NO;
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
-(NSArray<NSString *>*)supportedEvents {
return @[@"onPaste"];
}
-(void)onPaste:(NSNotification *)data {
if (!hasListeners) {
return;
}
[self sendEventWithName:@"onPaste" body:data.userInfo[@"data"]];
}
+(void)pasteImage:(NSArray<NSDictionary *> *)data {
[[NSNotificationCenter defaultCenter] postNotificationName:@"onPaste" object:data userInfo:@{
@"data": data
}];
}
@end