etendo-ui-library 1.3.97 → 1.3.98
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-native/components/inputBase/file-search-input/FileSearchInput.d.ts +1 -1
- package/dist-native/components/inputBase/file-search-input/FileSearchInput.js +1 -1
- package/dist-native/components/inputBase/file-search-input/FileSearchInput.styles.d.ts +10 -2
- package/dist-native/components/inputBase/file-search-input/FileSearchInput.styles.js +1 -1
- package/dist-native/components/inputBase/file-search-input/FileSearchInput.types.d.ts +2 -1
- package/dist-web/components/inputBase/file-search-input/FileSearchInput.d.ts +1 -1
- package/dist-web/components/inputBase/file-search-input/FileSearchInput.js +58 -33
- package/dist-web/components/inputBase/file-search-input/FileSearchInput.styles.d.ts +10 -2
- package/dist-web/components/inputBase/file-search-input/FileSearchInput.styles.js +14 -4
- package/dist-web/components/inputBase/file-search-input/FileSearchInput.types.d.ts +2 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { FileSearchInputProps } from './FileSearchInput.types';
|
|
3
|
-
declare const FileSearchInput: ({ value, placeholder, onChangeText, onSubmit, setFile, onFileUploaded, uploadConfig, maxFileSize, ...inputBaseProps }: FileSearchInputProps) => React.JSX.Element;
|
|
3
|
+
declare const FileSearchInput: ({ value, placeholder, onChangeText, onSubmit, setFile, onFileUploaded, onError, uploadConfig, maxFileSize, ...inputBaseProps }: FileSearchInputProps) => React.JSX.Element;
|
|
4
4
|
export default FileSearchInput;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _InputBase=_interopRequireDefault(require("../InputBase"));var _FileSearchInput=require("./FileSearchInput.styles");var _colors=require("../../../styles/colors");var _CheckCircleIcon=require("../../../assets/images/icons/CheckCircleIcon");var _Clipboard=require("../../../assets/images/icons/Clipboard");var _DeleteIcon=require("../../../assets/images/icons/DeleteIcon");var _FileIcon=require("../../../assets/images/icons/FileIcon");var _button=require("../../button");var _secondaryComponents=require("../../secondaryComponents");var _functions_utils=require("../../../helpers/functions_utils");var _FileSearchInput2=require("./FileSearchInput.constants");var _excluded=["value","placeholder","onChangeText","onSubmit","setFile","onFileUploaded","uploadConfig","maxFileSize"];var _this=this,_jsxFileName="/home/jenkins/agent/workspace/etendo_ui_library_develop/etendo_ui_library/src/components/inputBase/file-search-input/FileSearchInput.tsx";function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap(),t=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?t:r;})(e);}function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&Object.prototype.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u];}return n.default=e,t&&t.set(e,n),n;}var DocumentPicker=null;if(!(0,_functions_utils.isWebPlatform)()){try{import('react-native-document-picker').then(function(module){DocumentPicker=module.default;}).catch(function(error){console.error('Cannot load DocumentPicker',error);});}catch(error){console.error('Error importing DocumentPicker',error);}}var FileSearchInput=function FileSearchInput(_ref){var value=_ref.value,placeholder=_ref.placeholder,onChangeText=_ref.onChangeText,onSubmit=_ref.onSubmit,setFile=_ref.setFile,onFileUploaded=_ref.onFileUploaded,uploadConfig=_ref.uploadConfig,_ref$maxFileSize=_ref.maxFileSize,maxFileSize=_ref$maxFileSize===void 0?512:_ref$maxFileSize,inputBaseProps=(0,_objectWithoutProperties2.default)(_ref,_excluded);var _useState=(0,_react.useState)(0),_useState2=(0,_slicedToArray2.default)(_useState,2),progress=_useState2[0],setProgress=_useState2[1];var _useState3=(0,_react.useState)(null),_useState4=(0,_slicedToArray2.default)(_useState3,2),file=_useState4[0],setLocalFile=_useState4[1];var _useState5=(0,_react.useState)(false),_useState6=(0,_slicedToArray2.default)(_useState5,2),loadingFile=_useState6[0],setLoadingFile=_useState6[1];var _useState7=(0,_react.useState)(false),_useState8=(0,_slicedToArray2.default)(_useState7,2),isFileValid=_useState8[0],setIsFileValid=_useState8[1];var _useState9=(0,_react.useState)('none'),_useState10=(0,_slicedToArray2.default)(_useState9,2),fileStatus=_useState10[0],setFileStatus=_useState10[1];var dropAreaRef=(0,_react.useRef)(null);var fileInputRef=(0,_react.useRef)(null);var resetProgress=function resetProgress(){setLocalFile(null);setIsFileValid(false);setLoadingFile(false);setProgress(0);setFileStatus("none");};var handleDragOver=function handleDragOver(event){event.preventDefault();};var handleDrop=function handleDrop(event){event.preventDefault();var files=event.dataTransfer.files;if(files.length>0){var droppedFile=files[0];validateAndLoadFile(droppedFile);if(!!setFile)setFile(droppedFile);setLocalFile(droppedFile);}};var completeProgress=function completeProgress(){setProgress(100);animateProgress(100);setLoadingFile(false);setIsFileValid(true);setTimeout(function(){setFileStatus("loaded");setProgress(0);},100);};var animateProgress=function animateProgress(toValue){setProgress(toValue);};var startLoading=function startLoading(pickedFile){setLoadingFile(true);if(!!setFile)pickedFile;setLocalFile(pickedFile);setProgress(25);animateProgress(25);};var validateAndLoadFile=function(){var _ref2=(0,_asyncToGenerator2.default)(function*(pickedFile){resetProgress();if(!!setFile)setFile(pickedFile);if(maxFileSize&&pickedFile.size>maxFileSize*1024*1024){setIsFileValid(false);setLoadingFile(false);setLocalFile(null);return false;}if(!_FileSearchInput2.SUPPORTED_MIME_TYPES.includes(pickedFile.type)){setIsFileValid(false);setLoadingFile(false);return false;}setIsFileValid(true);startLoading(pickedFile);try{if(!!uploadFile)yield uploadFile(pickedFile);}catch(error){console.error('Error uploading file:',error);setFileStatus('error');}return true;});return function validateAndLoadFile(_x){return _ref2.apply(this,arguments);};}();var handleFileButtonClick=function(){var _ref3=(0,_asyncToGenerator2.default)(function*(){if((0,_functions_utils.isWebPlatform)()){fileInputRef.current.click();}else{if(!DocumentPicker){console.error('DocumentPicker is not available on this platform.');return;}try{var response=yield DocumentPicker.pick({type:[DocumentPicker.types.allFiles]});var pickedFile={name:response[0].name,size:response[0].size,type:response[0].type,uri:response[0].uri};validateAndLoadFile(pickedFile);}catch(err){if(!DocumentPicker.isCancel(err)){console.error(err);}}}});return function handleFileButtonClick(){return _ref3.apply(this,arguments);};}();var handleSendMessage=function handleSendMessage(){if(!loadingFile&&value.trim()!==''){onSubmit==null?void 0:onSubmit(value,isFileValid?file:null);resetProgress();if(!!setFile)setFile(null);setLocalFile(null);setIsFileValid(false);}else{var errorMessage='Please wait for the file to finish loading.';if(value.trim()===''){errorMessage='Message cannot be empty.';}else if(file&&!isFileValid){errorMessage="File size should not exceed "+maxFileSize+" MB.";}}};var rightButtons=[];if(!!uploadConfig){rightButtons.push(_react.default.createElement(_button.Button,{width:48,typeStyle:"white",onPress:handleFileButtonClick,iconLeft:_react.default.createElement(_Clipboard.ClipboardIcon,{style:{width:24,height:24},fill:_colors.PRIMARY_100,__self:_this,__source:{fileName:_jsxFileName,lineNumber:205,columnNumber:11}}),__self:_this,__source:{fileName:_jsxFileName,lineNumber:200,columnNumber:7}}));}var handleFileSelect=function(){var _ref4=(0,_asyncToGenerator2.default)(function*(event){var file=event.target.files[0];if(file){if(yield validateAndLoadFile(file)){startLoading(file);if(!!setFile)setFile(file);setLocalFile(file);}}event.target.value=null;});return function handleFileSelect(_x2){return _ref4.apply(this,arguments);};}();var uploadFile=function(){var _ref5=(0,_asyncToGenerator2.default)(function*(pickedFile){if(!!uploadConfig){var formData=new FormData();formData.append("file",pickedFile);try{var response=yield fetch(uploadConfig.url,{method:uploadConfig.method,body:formData,headers:uploadConfig.headers});if(response.ok){var data=yield response.json();if(!!onFileUploaded){onFileUploaded(data);}setFileStatus('loaded');}else{throw new Error('Failed to upload file');}}catch(error){console.error('Error uploading file:',error);setFileStatus('error');}}});return function uploadFile(_x3){return _ref5.apply(this,arguments);};}();var handleCancelFile=function handleCancelFile(){resetProgress();animateProgress(0);if(!!setFile)setFile(null);setFileStatus("canceled");if(fileInputRef.current){fileInputRef.current.value=null;}};(0,_react.useEffect)(function(){if(fileStatus==="loaded"){completeProgress();}},[fileStatus]);return _react.default.createElement(_reactNative.SafeAreaView,{style:_FileSearchInput.styles.container,__self:_this,__source:{fileName:_jsxFileName,lineNumber:271,columnNumber:5}},file&&isFileValid&&fileStatus!=="canceled"&&_react.default.createElement(_reactNative.View,{style:_FileSearchInput.styles.fileNameContainer,__self:_this,__source:{fileName:_jsxFileName,lineNumber:274,columnNumber:9}},_react.default.createElement(_reactNative.View,{style:_FileSearchInput.styles.fileNameLoadedLeftContainer,__self:_this,__source:{fileName:_jsxFileName,lineNumber:275,columnNumber:11}},_react.default.createElement(_FileIcon.FileIcon,{style:_FileSearchInput.styles.fileIcon,__self:_this,__source:{fileName:_jsxFileName,lineNumber:277,columnNumber:13}}),_react.default.createElement(_reactNative.View,{style:{height:(0,_functions_utils.isWebPlatform)()?undefined:28,width:"85%"},__self:_this,__source:{fileName:_jsxFileName,lineNumber:279,columnNumber:13}},_react.default.createElement(_reactNative.Text,{style:_FileSearchInput.styles.fileNameText,numberOfLines:1,ellipsizeMode:"tail",__self:_this,__source:{fileName:_jsxFileName,lineNumber:280,columnNumber:15}},file.name),progress>0&&_react.default.createElement(_reactNative.View,{style:_FileSearchInput.styles.progressBarContainer,__self:_this,__source:{fileName:_jsxFileName,lineNumber:284,columnNumber:17}},_react.default.createElement(_secondaryComponents.SkeletonItem,{width:progress+"%",height:8,color:_colors.NEUTRAL_1000,borderRadius:16,__self:_this,__source:{fileName:_jsxFileName,lineNumber:285,columnNumber:19}})))),_react.default.createElement(_reactNative.View,{style:_FileSearchInput.styles.fileNameRightContainer,__self:_this,__source:{fileName:_jsxFileName,lineNumber:290,columnNumber:11}},fileStatus==='loaded'&&_react.default.createElement(_CheckCircleIcon.CheckCircleIcon,{style:_FileSearchInput.styles.checkCircleIcon,fill:_colors.SUCCESS_600,__self:_this,__source:{fileName:_jsxFileName,lineNumber:292,columnNumber:15}}),_react.default.createElement(_reactNative.TouchableOpacity,{onPress:handleCancelFile,__self:_this,__source:{fileName:_jsxFileName,lineNumber:297,columnNumber:13}},_react.default.createElement(_DeleteIcon.DeleteIcon,{style:_FileSearchInput.styles.deleteIcon,__self:_this,__source:{fileName:_jsxFileName,lineNumber:298,columnNumber:15}})))),_react.default.createElement(_reactNative.View,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:304,columnNumber:7}},(0,_functions_utils.isWebPlatform)()?_react.default.createElement("div",{ref:dropAreaRef,onDrop:handleDrop,onDragOver:handleDragOver,onDragEnter:handleDragOver,onDragLeave:handleDragOver,__self:_this,__source:{fileName:_jsxFileName,lineNumber:306,columnNumber:11}},_react.default.createElement(_InputBase.default,(0,_extends2.default)({},inputBaseProps,{value:value,onChangeText:onChangeText,onSubmit:handleSendMessage,rightButtons:rightButtons,isLoading:loadingFile,placeholder:placeholder,__self:_this,__source:{fileName:_jsxFileName,lineNumber:313,columnNumber:13}})),_react.default.createElement("input",{type:"file",ref:fileInputRef,style:{display:'none'},onChange:handleFileSelect,__self:_this,__source:{fileName:_jsxFileName,lineNumber:322,columnNumber:13}})):_react.default.createElement(_InputBase.default,(0,_extends2.default)({},inputBaseProps,{value:value,onChangeText:onChangeText,onSubmit:handleSendMessage,rightButtons:rightButtons,isLoading:loadingFile,placeholder:placeholder,__self:_this,__source:{fileName:_jsxFileName,lineNumber:330,columnNumber:11}}))));};var _default=exports.default=FileSearchInput;
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _InputBase=_interopRequireDefault(require("../InputBase"));var _FileSearchInput=require("./FileSearchInput.styles");var _colors=require("../../../styles/colors");var _CheckCircleIcon=require("../../../assets/images/icons/CheckCircleIcon");var _Clipboard=require("../../../assets/images/icons/Clipboard");var _DeleteIcon=require("../../../assets/images/icons/DeleteIcon");var _FileIcon=require("../../../assets/images/icons/FileIcon");var _button=require("../../button");var _secondaryComponents=require("../../secondaryComponents");var _functions_utils=require("../../../helpers/functions_utils");var _FileSearchInput2=require("./FileSearchInput.constants");var _excluded=["value","placeholder","onChangeText","onSubmit","setFile","onFileUploaded","onError","uploadConfig","maxFileSize"];var _this=this,_jsxFileName="/home/jenkins/agent/workspace/etendo_ui_library_develop/etendo_ui_library/src/components/inputBase/file-search-input/FileSearchInput.tsx";function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap(),t=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?t:r;})(e);}function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&Object.prototype.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u];}return n.default=e,t&&t.set(e,n),n;}var DocumentPicker=null;if(!(0,_functions_utils.isWebPlatform)()){try{import('react-native-document-picker').then(function(module){DocumentPicker=module.default;}).catch(function(error){console.error('Cannot load DocumentPicker',error);});}catch(error){console.error('Error importing DocumentPicker',error);}}var FileSearchInput=function FileSearchInput(_ref){var value=_ref.value,placeholder=_ref.placeholder,onChangeText=_ref.onChangeText,onSubmit=_ref.onSubmit,setFile=_ref.setFile,onFileUploaded=_ref.onFileUploaded,onError=_ref.onError,uploadConfig=_ref.uploadConfig,_ref$maxFileSize=_ref.maxFileSize,maxFileSize=_ref$maxFileSize===void 0?512:_ref$maxFileSize,inputBaseProps=(0,_objectWithoutProperties2.default)(_ref,_excluded);var _useState=(0,_react.useState)(0),_useState2=(0,_slicedToArray2.default)(_useState,2),progress=_useState2[0],setProgress=_useState2[1];var _useState3=(0,_react.useState)(null),_useState4=(0,_slicedToArray2.default)(_useState3,2),file=_useState4[0],setLocalFile=_useState4[1];var _useState5=(0,_react.useState)(false),_useState6=(0,_slicedToArray2.default)(_useState5,2),loadingFile=_useState6[0],setLoadingFile=_useState6[1];var _useState7=(0,_react.useState)(false),_useState8=(0,_slicedToArray2.default)(_useState7,2),isFileValid=_useState8[0],setIsFileValid=_useState8[1];var _useState9=(0,_react.useState)('none'),_useState10=(0,_slicedToArray2.default)(_useState9,2),fileStatus=_useState10[0],setFileStatus=_useState10[1];var dropAreaRef=(0,_react.useRef)(null);var fileInputRef=(0,_react.useRef)(null);var abortControllerRef=(0,_react.useRef)(null);var resetProgress=function resetProgress(){setLocalFile(null);setIsFileValid(false);setLoadingFile(false);setProgress(0);setFileStatus("none");};var handleDragOver=function handleDragOver(event){event.preventDefault();};var handleDrop=function handleDrop(event){event.preventDefault();var files=event.dataTransfer.files;if(files.length>0){var droppedFile=files[0];validateAndLoadFile(droppedFile);if(!!setFile)setFile(droppedFile);setLocalFile(droppedFile);}};var completeProgress=function completeProgress(){setProgress(100);animateProgress(100);setLoadingFile(false);setIsFileValid(true);setTimeout(function(){setFileStatus("loaded");setProgress(0);},100);};var animateProgress=function animateProgress(toValue){setProgress(toValue);};var startLoading=function startLoading(pickedFile){setLoadingFile(true);if(!!setFile)pickedFile;setLocalFile(pickedFile);setProgress(25);animateProgress(25);};var validateAndLoadFile=function(){var _ref2=(0,_asyncToGenerator2.default)(function*(pickedFile){resetProgress();if(!!setFile)setFile(pickedFile);if(maxFileSize&&pickedFile.size>maxFileSize*1024*1024){setIsFileValid(false);setLoadingFile(false);setLocalFile(null);return false;}if(!_FileSearchInput2.SUPPORTED_MIME_TYPES.includes(pickedFile.type)){setIsFileValid(false);setLoadingFile(false);return false;}setIsFileValid(true);startLoading(pickedFile);try{if(!!uploadFile)yield uploadFile(pickedFile);}catch(error){console.error('Error uploading file:',error);setFileStatus('error');onError==null?void 0:onError(error);}return true;});return function validateAndLoadFile(_x){return _ref2.apply(this,arguments);};}();var handleFileButtonClick=function(){var _ref3=(0,_asyncToGenerator2.default)(function*(){if((0,_functions_utils.isWebPlatform)()){fileInputRef.current.click();}else{if(!DocumentPicker){console.error('DocumentPicker is not available on this platform.');return;}try{var response=yield DocumentPicker.pick({type:[DocumentPicker.types.allFiles]});var pickedFile={name:response[0].name,size:response[0].size,type:response[0].type,uri:response[0].uri};validateAndLoadFile(pickedFile);}catch(error){if(!DocumentPicker.isCancel(error)){console.error(error);onError==null?void 0:onError(error);}}}});return function handleFileButtonClick(){return _ref3.apply(this,arguments);};}();var handleSendMessage=function handleSendMessage(){if(!loadingFile&&value.trim()!==''){onSubmit==null?void 0:onSubmit(value,isFileValid?file:null);resetProgress();if(!!setFile)setFile(null);setLocalFile(null);setIsFileValid(false);}else{var errorMessage='Please wait for the file to finish loading.';if(value.trim()===''){errorMessage='Message cannot be empty.';}else if(file&&!isFileValid){errorMessage="File size should not exceed "+maxFileSize+" MB.";}}};var rightButtons=[];if(!!uploadConfig){rightButtons.push(_react.default.createElement(_button.Button,{width:48,typeStyle:"white",onPress:handleFileButtonClick,iconLeft:_react.default.createElement(_Clipboard.ClipboardIcon,{style:{width:24,height:24},fill:_colors.PRIMARY_100,__self:_this,__source:{fileName:_jsxFileName,lineNumber:209,columnNumber:11}}),__self:_this,__source:{fileName:_jsxFileName,lineNumber:204,columnNumber:7}}));}var handleFileSelect=function(){var _ref4=(0,_asyncToGenerator2.default)(function*(event){var file=event.target.files[0];if(file){if(yield validateAndLoadFile(file)){startLoading(file);if(!!setFile)setFile(file);setLocalFile(file);}}event.target.value=null;});return function handleFileSelect(_x2){return _ref4.apply(this,arguments);};}();var uploadFile=function(){var _ref5=(0,_asyncToGenerator2.default)(function*(pickedFile){if(!!uploadConfig){var formData=new FormData();formData.append("file",pickedFile);abortControllerRef.current=new AbortController();var signal=abortControllerRef.current.signal;try{var response=yield fetch(uploadConfig.url,{method:uploadConfig.method,body:formData,headers:uploadConfig.headers,signal:signal});if(response.ok){completeProgress();setFileStatus('loaded');if(!!onFileUploaded){var data=yield response.json();onFileUploaded(data);}}else{throw new Error('Failed to upload file');}}catch(error){if(error.name==='AbortError'){console.error('File upload cancelled');onError==null?void 0:onError(error.error);setFileStatus('canceled');}else{console.error('Error uploading file:',error);onError==null?void 0:onError(error.error);setFileStatus('error');}}}});return function uploadFile(_x3){return _ref5.apply(this,arguments);};}();var handleCancelFile=function handleCancelFile(){if(abortControllerRef.current){abortControllerRef.current.abort();}resetProgress();animateProgress(0);if(!!setFile)setFile(null);setFileStatus("canceled");if(fileInputRef.current){fileInputRef.current.value=null;}};(0,_react.useEffect)(function(){return function(){if(abortControllerRef.current){abortControllerRef.current.abort();}};},[]);(0,_react.useEffect)(function(){if(fileStatus==="loaded"){completeProgress();}},[fileStatus]);return _react.default.createElement(_reactNative.SafeAreaView,{style:_FileSearchInput.styles.container,__self:_this,__source:{fileName:_jsxFileName,lineNumber:300,columnNumber:5}},file&&isFileValid&&fileStatus!=="canceled"&&_react.default.createElement(_reactNative.View,{style:_FileSearchInput.styles.fileNameContainer,__self:_this,__source:{fileName:_jsxFileName,lineNumber:303,columnNumber:9}},_react.default.createElement(_reactNative.View,{style:_FileSearchInput.styles.fileNameLoadedLeftContainer,__self:_this,__source:{fileName:_jsxFileName,lineNumber:304,columnNumber:11}},_react.default.createElement(_FileIcon.FileIcon,{style:_FileSearchInput.styles.fileIcon,__self:_this,__source:{fileName:_jsxFileName,lineNumber:306,columnNumber:13}}),_react.default.createElement(_reactNative.View,{style:_FileSearchInput.styles.fileContent,__self:_this,__source:{fileName:_jsxFileName,lineNumber:308,columnNumber:13}},_react.default.createElement(_reactNative.Text,{style:_FileSearchInput.styles.fileNameText,numberOfLines:1,ellipsizeMode:"tail",__self:_this,__source:{fileName:_jsxFileName,lineNumber:309,columnNumber:15}},file.name),progress>0&&_react.default.createElement(_reactNative.View,{style:_FileSearchInput.styles.progressBarContainer,__self:_this,__source:{fileName:_jsxFileName,lineNumber:313,columnNumber:17}},_react.default.createElement(_secondaryComponents.SkeletonItem,{width:progress+"%",height:8,color:_colors.NEUTRAL_1000,borderRadius:16,__self:_this,__source:{fileName:_jsxFileName,lineNumber:314,columnNumber:19}})))),_react.default.createElement(_reactNative.View,{style:_FileSearchInput.styles.fileNameRightContainer,__self:_this,__source:{fileName:_jsxFileName,lineNumber:319,columnNumber:11}},fileStatus==='loaded'&&_react.default.createElement(_CheckCircleIcon.CheckCircleIcon,{style:_FileSearchInput.styles.checkCircleIcon,fill:_colors.SUCCESS_600,__self:_this,__source:{fileName:_jsxFileName,lineNumber:321,columnNumber:15}}),_react.default.createElement(_reactNative.TouchableOpacity,{onPress:handleCancelFile,__self:_this,__source:{fileName:_jsxFileName,lineNumber:326,columnNumber:13}},_react.default.createElement(_DeleteIcon.DeleteIcon,{style:_FileSearchInput.styles.deleteIcon,__self:_this,__source:{fileName:_jsxFileName,lineNumber:327,columnNumber:15}})))),_react.default.createElement(_reactNative.View,{__self:_this,__source:{fileName:_jsxFileName,lineNumber:333,columnNumber:7}},(0,_functions_utils.isWebPlatform)()?_react.default.createElement("div",{ref:dropAreaRef,onDrop:handleDrop,onDragOver:handleDragOver,onDragEnter:handleDragOver,onDragLeave:handleDragOver,__self:_this,__source:{fileName:_jsxFileName,lineNumber:335,columnNumber:11}},_react.default.createElement(_InputBase.default,(0,_extends2.default)({},inputBaseProps,{value:value,onChangeText:onChangeText,onSubmit:handleSendMessage,rightButtons:rightButtons,isLoading:loadingFile,placeholder:placeholder,__self:_this,__source:{fileName:_jsxFileName,lineNumber:342,columnNumber:13}})),_react.default.createElement("input",{type:"file",ref:fileInputRef,style:{display:'none'},onChange:handleFileSelect,__self:_this,__source:{fileName:_jsxFileName,lineNumber:351,columnNumber:13}})):_react.default.createElement(_InputBase.default,(0,_extends2.default)({},inputBaseProps,{value:value,onChangeText:onChangeText,onSubmit:handleSendMessage,rightButtons:rightButtons,isLoading:loadingFile,placeholder:placeholder,__self:_this,__source:{fileName:_jsxFileName,lineNumber:359,columnNumber:11}}))));};var _default=exports.default=FileSearchInput;
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
export declare const mediaQueryWidths: {
|
|
2
|
+
MOBILE: number;
|
|
3
|
+
TABLET: number;
|
|
4
|
+
DESKTOP: number;
|
|
5
|
+
};
|
|
1
6
|
export declare const styles: {
|
|
2
7
|
container: {
|
|
3
8
|
width: "100%";
|
|
@@ -33,7 +38,7 @@ export declare const styles: {
|
|
|
33
38
|
alignItems: "center";
|
|
34
39
|
flexDirection: "row";
|
|
35
40
|
gap: number;
|
|
36
|
-
width: "85%";
|
|
41
|
+
width: "95%" | "85%";
|
|
37
42
|
};
|
|
38
43
|
checkCircleIcon: {
|
|
39
44
|
height: number;
|
|
@@ -58,6 +63,10 @@ export declare const styles: {
|
|
|
58
63
|
loadingText: {
|
|
59
64
|
fontSize: number;
|
|
60
65
|
};
|
|
66
|
+
fileContent: {
|
|
67
|
+
height: number | undefined;
|
|
68
|
+
width: "90%" | "97.25%";
|
|
69
|
+
};
|
|
61
70
|
fileNameText: {
|
|
62
71
|
color: string;
|
|
63
72
|
fontWeight: "500";
|
|
@@ -75,7 +84,6 @@ export declare const styles: {
|
|
|
75
84
|
fileContainer: {
|
|
76
85
|
height: number | undefined;
|
|
77
86
|
width: "100%";
|
|
78
|
-
backgroundColor: string;
|
|
79
87
|
};
|
|
80
88
|
progressBarFill: {
|
|
81
89
|
backgroundColor: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:true});exports.styles=void 0;var _reactNative=require("react-native");var _colors=require("../../../styles/colors");var styles=exports.styles=_reactNative.StyleSheet.create({container:{width:"100%"},inputContainer:{flex:1},fileNameContainer:{alignItems:'center',backgroundColor:_colors.NEUTRAL_50,borderColor:_colors.NEUTRAL_400,borderRadius:8,borderWidth:1,flexDirection:"row",gap:4,justifyContent:"space-between",marginBottom:4,paddingHorizontal:8,height:64},fileNameLeftContainer:{flexDirection:"row",gap:4},fileNameRightContainer:{flexDirection:"row"},fileNameLeftContent:{height:24,width:"100%"},fileNameLoadedLeftContainer:{alignItems:"center",flexDirection:"row",gap:4,width:"85%"},checkCircleIcon:{height:24,width:24,marginRight:8},errorIcon:{height:20,width:20},deleteIcon:{height:20,width:20},loadingContainer:{alignItems:"center",justifyContent:"center",paddingHorizontal:8,paddingVertical:16,width:"100%"},loadingText:{fontSize:14},fileNameText:{color:_colors.NEUTRAL_1000,fontWeight:"500",fontSize:_reactNative.Platform.OS==="web"?14:16,paddingBottom:_reactNative.Platform.OS==="web"?4:undefined,overflow:'hidden',whiteSpace:'nowrap',width:"100%",marginLeft:_reactNative.Platform.OS==="web"?undefined:8},fileIcon:{height:36,width:36},fileContainer:{height:_reactNative.Platform.OS==="web"?undefined:28,width:"100%"
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:true});exports.styles=exports.mediaQueryWidths=void 0;var _reactNative=require("react-native");var _colors=require("../../../styles/colors");var _functions_utils=require("../../../helpers/functions_utils");var windowWidth=_reactNative.Dimensions.get('window').width;var mediaQueryWidths=exports.mediaQueryWidths={MOBILE:480,TABLET:768,DESKTOP:1280};var styles=exports.styles=_reactNative.StyleSheet.create({container:{width:"100%"},inputContainer:{flex:1},fileNameContainer:{alignItems:'center',backgroundColor:_colors.NEUTRAL_50,borderColor:_colors.NEUTRAL_400,borderRadius:8,borderWidth:1,flexDirection:"row",gap:4,justifyContent:"space-between",marginBottom:4,paddingHorizontal:8,height:64},fileNameLeftContainer:{flexDirection:"row",gap:4},fileNameRightContainer:{flexDirection:"row"},fileNameLeftContent:{height:24,width:"100%"},fileNameLoadedLeftContainer:{alignItems:"center",flexDirection:"row",gap:4,width:windowWidth>=mediaQueryWidths.TABLET?"95%":"85%"},checkCircleIcon:{height:24,width:24,marginRight:8},errorIcon:{height:20,width:20},deleteIcon:{height:20,width:20},loadingContainer:{alignItems:"center",justifyContent:"center",paddingHorizontal:8,paddingVertical:16,width:"100%"},loadingText:{fontSize:14},fileContent:{height:(0,_functions_utils.isWebPlatform)()?undefined:28,width:windowWidth>=mediaQueryWidths.TABLET?"97.25%":"90%"},fileNameText:{color:_colors.NEUTRAL_1000,fontWeight:"500",fontSize:_reactNative.Platform.OS==="web"?14:16,paddingBottom:_reactNative.Platform.OS==="web"?4:undefined,overflow:'hidden',whiteSpace:'nowrap',width:"100%",marginLeft:_reactNative.Platform.OS==="web"?undefined:8},fileIcon:{height:36,width:36},fileContainer:{height:_reactNative.Platform.OS==="web"?undefined:28,width:"100%"},progressBarFill:{backgroundColor:_colors.NEUTRAL_100,borderRadius:10},progressBarContainer:{backgroundColor:_colors.NEUTRAL_300,borderRadius:16,marginLeft:_reactNative.Platform.OS==="web"?undefined:8,width:"100%"},progressBar:{backgroundColor:_colors.NEUTRAL_1000,borderRadius:2}});
|
|
@@ -10,9 +10,10 @@ export interface FileSearchInputProps extends IInputBase {
|
|
|
10
10
|
value: string;
|
|
11
11
|
onChangeText: (text: string) => void;
|
|
12
12
|
onSubmit: (message: string, file?: any) => void;
|
|
13
|
-
placeholder
|
|
13
|
+
placeholder?: string;
|
|
14
14
|
setFile?: (file: any) => void;
|
|
15
15
|
onFileUploaded?: (object: any) => void;
|
|
16
|
+
onError?: (error: any) => void;
|
|
16
17
|
maxFileSize?: number;
|
|
17
18
|
uploadConfig?: UploadConfig | undefined;
|
|
18
19
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { FileSearchInputProps } from './FileSearchInput.types';
|
|
3
|
-
declare const FileSearchInput: ({ value, placeholder, onChangeText, onSubmit, setFile, onFileUploaded, uploadConfig, maxFileSize, ...inputBaseProps }: FileSearchInputProps) => React.JSX.Element;
|
|
3
|
+
declare const FileSearchInput: ({ value, placeholder, onChangeText, onSubmit, setFile, onFileUploaded, onError, uploadConfig, maxFileSize, ...inputBaseProps }: FileSearchInputProps) => React.JSX.Element;
|
|
4
4
|
export default FileSearchInput;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
-
var _excluded = ["value", "placeholder", "onChangeText", "onSubmit", "setFile", "onFileUploaded", "uploadConfig", "maxFileSize"];
|
|
2
|
+
var _excluded = ["value", "placeholder", "onChangeText", "onSubmit", "setFile", "onFileUploaded", "onError", "uploadConfig", "maxFileSize"];
|
|
3
3
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
4
4
|
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
|
|
5
5
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
@@ -53,6 +53,7 @@ var FileSearchInput = function FileSearchInput(_ref) {
|
|
|
53
53
|
onSubmit = _ref.onSubmit,
|
|
54
54
|
setFile = _ref.setFile,
|
|
55
55
|
onFileUploaded = _ref.onFileUploaded,
|
|
56
|
+
onError = _ref.onError,
|
|
56
57
|
uploadConfig = _ref.uploadConfig,
|
|
57
58
|
_ref$maxFileSize = _ref.maxFileSize,
|
|
58
59
|
maxFileSize = _ref$maxFileSize === void 0 ? 512 : _ref$maxFileSize,
|
|
@@ -82,6 +83,7 @@ var FileSearchInput = function FileSearchInput(_ref) {
|
|
|
82
83
|
// References
|
|
83
84
|
var dropAreaRef = useRef(null);
|
|
84
85
|
var fileInputRef = useRef(null);
|
|
86
|
+
var abortControllerRef = useRef(null);
|
|
85
87
|
|
|
86
88
|
// Function to reset progress bar
|
|
87
89
|
var resetProgress = function resetProgress() {
|
|
@@ -170,16 +172,17 @@ var FileSearchInput = function FileSearchInput(_ref) {
|
|
|
170
172
|
_context.next = 17;
|
|
171
173
|
return uploadFile(pickedFile);
|
|
172
174
|
case 17:
|
|
173
|
-
_context.next =
|
|
175
|
+
_context.next = 24;
|
|
174
176
|
break;
|
|
175
177
|
case 19:
|
|
176
178
|
_context.prev = 19;
|
|
177
179
|
_context.t0 = _context["catch"](13);
|
|
178
180
|
console.error('Error uploading file:', _context.t0);
|
|
179
181
|
setFileStatus('error');
|
|
180
|
-
|
|
181
|
-
return _context.abrupt("return", true);
|
|
182
|
+
onError === null || onError === void 0 || onError(_context.t0);
|
|
182
183
|
case 24:
|
|
184
|
+
return _context.abrupt("return", true);
|
|
185
|
+
case 25:
|
|
183
186
|
case "end":
|
|
184
187
|
return _context.stop();
|
|
185
188
|
}
|
|
@@ -233,6 +236,7 @@ var FileSearchInput = function FileSearchInput(_ref) {
|
|
|
233
236
|
_context2.t0 = _context2["catch"](7);
|
|
234
237
|
if (!DocumentPicker.isCancel(_context2.t0)) {
|
|
235
238
|
console.error(_context2.t0);
|
|
239
|
+
onError === null || onError === void 0 || onError(_context2.t0);
|
|
236
240
|
}
|
|
237
241
|
case 18:
|
|
238
242
|
case "end":
|
|
@@ -314,58 +318,70 @@ var FileSearchInput = function FileSearchInput(_ref) {
|
|
|
314
318
|
return _ref4.apply(this, arguments);
|
|
315
319
|
};
|
|
316
320
|
}();
|
|
317
|
-
|
|
318
|
-
// Function to upload a file to a server
|
|
319
321
|
var uploadFile = /*#__PURE__*/function () {
|
|
320
322
|
var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(pickedFile) {
|
|
321
|
-
var formData, response, data;
|
|
323
|
+
var formData, signal, response, data;
|
|
322
324
|
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
323
325
|
while (1) switch (_context4.prev = _context4.next) {
|
|
324
326
|
case 0:
|
|
325
327
|
if (!uploadConfig) {
|
|
326
|
-
_context4.next =
|
|
328
|
+
_context4.next = 25;
|
|
327
329
|
break;
|
|
328
330
|
}
|
|
329
331
|
formData = new FormData();
|
|
330
332
|
formData.append("file", pickedFile);
|
|
331
|
-
|
|
332
|
-
|
|
333
|
+
abortControllerRef.current = new AbortController();
|
|
334
|
+
signal = abortControllerRef.current.signal;
|
|
335
|
+
_context4.prev = 5;
|
|
336
|
+
_context4.next = 8;
|
|
333
337
|
return fetch(uploadConfig.url, {
|
|
334
338
|
method: uploadConfig.method,
|
|
335
339
|
body: formData,
|
|
336
|
-
headers: uploadConfig.headers
|
|
340
|
+
headers: uploadConfig.headers,
|
|
341
|
+
signal: signal
|
|
337
342
|
});
|
|
338
|
-
case
|
|
343
|
+
case 8:
|
|
339
344
|
response = _context4.sent;
|
|
340
345
|
if (!response.ok) {
|
|
341
|
-
_context4.next =
|
|
346
|
+
_context4.next = 19;
|
|
347
|
+
break;
|
|
348
|
+
}
|
|
349
|
+
completeProgress();
|
|
350
|
+
setFileStatus('loaded');
|
|
351
|
+
if (!onFileUploaded) {
|
|
352
|
+
_context4.next = 17;
|
|
342
353
|
break;
|
|
343
354
|
}
|
|
344
|
-
_context4.next =
|
|
355
|
+
_context4.next = 15;
|
|
345
356
|
return response.json();
|
|
346
|
-
case
|
|
357
|
+
case 15:
|
|
347
358
|
data = _context4.sent;
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
setFileStatus('loaded');
|
|
352
|
-
_context4.next = 16;
|
|
359
|
+
onFileUploaded(data);
|
|
360
|
+
case 17:
|
|
361
|
+
_context4.next = 20;
|
|
353
362
|
break;
|
|
354
|
-
case
|
|
363
|
+
case 19:
|
|
355
364
|
throw new Error('Failed to upload file');
|
|
356
|
-
case
|
|
357
|
-
_context4.next =
|
|
365
|
+
case 20:
|
|
366
|
+
_context4.next = 25;
|
|
358
367
|
break;
|
|
359
|
-
case 18:
|
|
360
|
-
_context4.prev = 18;
|
|
361
|
-
_context4.t0 = _context4["catch"](3);
|
|
362
|
-
console.error('Error uploading file:', _context4.t0);
|
|
363
|
-
setFileStatus('error');
|
|
364
368
|
case 22:
|
|
369
|
+
_context4.prev = 22;
|
|
370
|
+
_context4.t0 = _context4["catch"](5);
|
|
371
|
+
if (_context4.t0.name === 'AbortError') {
|
|
372
|
+
console.error('File upload cancelled');
|
|
373
|
+
onError === null || onError === void 0 || onError(_context4.t0.error);
|
|
374
|
+
setFileStatus('canceled');
|
|
375
|
+
} else {
|
|
376
|
+
console.error('Error uploading file:', _context4.t0);
|
|
377
|
+
onError === null || onError === void 0 || onError(_context4.t0.error);
|
|
378
|
+
setFileStatus('error');
|
|
379
|
+
}
|
|
380
|
+
case 25:
|
|
365
381
|
case "end":
|
|
366
382
|
return _context4.stop();
|
|
367
383
|
}
|
|
368
|
-
}, _callee4, null, [[
|
|
384
|
+
}, _callee4, null, [[5, 22]]);
|
|
369
385
|
}));
|
|
370
386
|
return function uploadFile(_x3) {
|
|
371
387
|
return _ref5.apply(this, arguments);
|
|
@@ -374,6 +390,9 @@ var FileSearchInput = function FileSearchInput(_ref) {
|
|
|
374
390
|
|
|
375
391
|
// Function to handle file deletion
|
|
376
392
|
var handleCancelFile = function handleCancelFile() {
|
|
393
|
+
if (abortControllerRef.current) {
|
|
394
|
+
abortControllerRef.current.abort();
|
|
395
|
+
}
|
|
377
396
|
resetProgress();
|
|
378
397
|
animateProgress(0);
|
|
379
398
|
if (!!setFile) setFile(null);
|
|
@@ -383,6 +402,15 @@ var FileSearchInput = function FileSearchInput(_ref) {
|
|
|
383
402
|
}
|
|
384
403
|
};
|
|
385
404
|
|
|
405
|
+
// Initialize reference
|
|
406
|
+
useEffect(function () {
|
|
407
|
+
return function () {
|
|
408
|
+
if (abortControllerRef.current) {
|
|
409
|
+
abortControllerRef.current.abort();
|
|
410
|
+
}
|
|
411
|
+
};
|
|
412
|
+
}, []);
|
|
413
|
+
|
|
386
414
|
// Effect to complete progress
|
|
387
415
|
useEffect(function () {
|
|
388
416
|
if (fileStatus === "loaded") {
|
|
@@ -398,10 +426,7 @@ var FileSearchInput = function FileSearchInput(_ref) {
|
|
|
398
426
|
}, /*#__PURE__*/React.createElement(FileIcon, {
|
|
399
427
|
style: styles.fileIcon
|
|
400
428
|
}), /*#__PURE__*/React.createElement(View, {
|
|
401
|
-
style:
|
|
402
|
-
height: isWebPlatform() ? undefined : 28,
|
|
403
|
-
width: "85%"
|
|
404
|
-
}
|
|
429
|
+
style: styles.fileContent
|
|
405
430
|
}, /*#__PURE__*/React.createElement(Text, {
|
|
406
431
|
style: styles.fileNameText,
|
|
407
432
|
numberOfLines: 1,
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
export declare const mediaQueryWidths: {
|
|
2
|
+
MOBILE: number;
|
|
3
|
+
TABLET: number;
|
|
4
|
+
DESKTOP: number;
|
|
5
|
+
};
|
|
1
6
|
export declare const styles: {
|
|
2
7
|
container: {
|
|
3
8
|
width: "100%";
|
|
@@ -33,7 +38,7 @@ export declare const styles: {
|
|
|
33
38
|
alignItems: "center";
|
|
34
39
|
flexDirection: "row";
|
|
35
40
|
gap: number;
|
|
36
|
-
width: "85%";
|
|
41
|
+
width: "95%" | "85%";
|
|
37
42
|
};
|
|
38
43
|
checkCircleIcon: {
|
|
39
44
|
height: number;
|
|
@@ -58,6 +63,10 @@ export declare const styles: {
|
|
|
58
63
|
loadingText: {
|
|
59
64
|
fontSize: number;
|
|
60
65
|
};
|
|
66
|
+
fileContent: {
|
|
67
|
+
height: number | undefined;
|
|
68
|
+
width: "90%" | "97.25%";
|
|
69
|
+
};
|
|
61
70
|
fileNameText: {
|
|
62
71
|
color: string;
|
|
63
72
|
fontWeight: "500";
|
|
@@ -75,7 +84,6 @@ export declare const styles: {
|
|
|
75
84
|
fileContainer: {
|
|
76
85
|
height: number | undefined;
|
|
77
86
|
width: "100%";
|
|
78
|
-
backgroundColor: string;
|
|
79
87
|
};
|
|
80
88
|
progressBarFill: {
|
|
81
89
|
backgroundColor: string;
|
|
@@ -1,5 +1,12 @@
|
|
|
1
|
-
import { StyleSheet, Platform } from "react-native-web";
|
|
1
|
+
import { StyleSheet, Platform, Dimensions } from "react-native-web";
|
|
2
2
|
import { NEUTRAL_100, NEUTRAL_1000, NEUTRAL_300, NEUTRAL_400, NEUTRAL_50 } from "../../../styles/colors";
|
|
3
|
+
import { isWebPlatform } from "../../../helpers/functions_utils";
|
|
4
|
+
var windowWidth = Dimensions.get('window').width;
|
|
5
|
+
export var mediaQueryWidths = {
|
|
6
|
+
MOBILE: 480,
|
|
7
|
+
TABLET: 768,
|
|
8
|
+
DESKTOP: 1280
|
|
9
|
+
};
|
|
3
10
|
export var styles = StyleSheet.create({
|
|
4
11
|
container: {
|
|
5
12
|
width: "100%"
|
|
@@ -35,7 +42,7 @@ export var styles = StyleSheet.create({
|
|
|
35
42
|
alignItems: "center",
|
|
36
43
|
flexDirection: "row",
|
|
37
44
|
gap: 4,
|
|
38
|
-
width: "85%"
|
|
45
|
+
width: windowWidth >= mediaQueryWidths.TABLET ? "95%" : "85%"
|
|
39
46
|
},
|
|
40
47
|
checkCircleIcon: {
|
|
41
48
|
height: 24,
|
|
@@ -60,6 +67,10 @@ export var styles = StyleSheet.create({
|
|
|
60
67
|
loadingText: {
|
|
61
68
|
fontSize: 14
|
|
62
69
|
},
|
|
70
|
+
fileContent: {
|
|
71
|
+
height: isWebPlatform() ? undefined : 28,
|
|
72
|
+
width: windowWidth >= mediaQueryWidths.TABLET ? "97.25%" : "90%"
|
|
73
|
+
},
|
|
63
74
|
fileNameText: {
|
|
64
75
|
color: NEUTRAL_1000,
|
|
65
76
|
fontWeight: "500",
|
|
@@ -76,8 +87,7 @@ export var styles = StyleSheet.create({
|
|
|
76
87
|
},
|
|
77
88
|
fileContainer: {
|
|
78
89
|
height: Platform.OS === "web" ? undefined : 28,
|
|
79
|
-
width: "100%"
|
|
80
|
-
backgroundColor: "red"
|
|
90
|
+
width: "100%"
|
|
81
91
|
},
|
|
82
92
|
progressBarFill: {
|
|
83
93
|
backgroundColor: NEUTRAL_100,
|
|
@@ -10,9 +10,10 @@ export interface FileSearchInputProps extends IInputBase {
|
|
|
10
10
|
value: string;
|
|
11
11
|
onChangeText: (text: string) => void;
|
|
12
12
|
onSubmit: (message: string, file?: any) => void;
|
|
13
|
-
placeholder
|
|
13
|
+
placeholder?: string;
|
|
14
14
|
setFile?: (file: any) => void;
|
|
15
15
|
onFileUploaded?: (object: any) => void;
|
|
16
|
+
onError?: (error: any) => void;
|
|
16
17
|
maxFileSize?: number;
|
|
17
18
|
uploadConfig?: UploadConfig | undefined;
|
|
18
19
|
}
|