@corva/ui 3.75.0-23 → 3.75.0-24
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/cjs-bundle/components/PostPreviewDialog/index.js +1 -1
- package/cjs-bundle/components/PostPreviewDialog/index.js.map +1 -1
- package/components/PostPreviewDialog/__tests__/PostPreviewDialog.test.d.ts +2 -0
- package/components/PostPreviewDialog/__tests__/PostPreviewDialog.test.d.ts.map +1 -0
- package/components/PostPreviewDialog/index.d.ts +2 -28
- package/components/PostPreviewDialog/index.js +1 -1
- package/components/PostPreviewDialog/index.js.map +1 -1
- package/mcp-server/server.mjs +1 -1
- package/package.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("@babel/runtime/helpers/
|
|
1
|
+
"use strict";var e=require("@babel/runtime/helpers/defineProperty"),i=require("@babel/runtime/helpers/slicedToArray"),l=require("react"),t=require("prop-types"),r=require("@material-ui/core/styles"),a=require("@material-ui/core/Paper"),n=require("@material-ui/core/DialogActions"),o=require("@material-ui/core/DialogContent"),s=require("@material-ui/core/DialogTitle"),d=require("@material-ui/core/Button"),c=require("@material-ui/core/Typography"),u=require("@material-ui/core/Input"),f=require("@material-ui/core/RootRef"),m=require("@material-ui/core/colors/grey"),p=require("@material-ui/icons/Delete"),g=require("@material-ui/core"),h=require("../../utils/fileExtension.js"),j=require("./styles.css.js"),v=require("../FileTypeIcon.js"),x=require("../EmojiIconButton.js"),y=require("../FileUploadIconButton.js"),b=require("../FailedFileUploading.js"),N=require("../UserMention/index.js"),U=require("../../utils/mobileDetect.js"),D=require("react/jsx-runtime");function q(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var P=q(e),F=q(i),w=q(t),C=q(a),E=q(n),S=q(o),O=q(s),B=q(d),R=q(c),I=q(u),k=q(f),T=q(m),z=q(p);function A(e,i){var l=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);i&&(t=t.filter((function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable}))),l.push.apply(l,t)}return l}function W(e){for(var i=1;i<arguments.length;i++){var l=null!=arguments[i]?arguments[i]:{};i%2?A(Object(l),!0).forEach((function(i){P.default(e,i,l[i])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(l)):A(Object(l)).forEach((function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(l,i))}))}return e}var _="PostPreviewDialog",M=T.default[200],K=T.default[400],L=function(e){return D.jsxs(C.default,{className:e.classes.messageWrapper,children:[D.jsx(I.default,{"data-testid":"".concat(_,"_messageInput"),inputRef:e.inputEl,inputComponent:N,inputProps:{withLightTheme:!1,onChange:e.handleMessageChange,companyId:e.companyId,suggestionsPortalHost:e.rootRef.current},placeholder:"Add a message about the file...",fullWidth:!0,disableUnderline:!0,multiline:!0,rows:"3",className:e.classes.textFieldRoot,value:e.comment,onKeyDown:e.handleKeyDown}),D.jsxs("div",{className:j.cPostPreviewDialogMessageAdditionalFieldsWrapper,children:[D.jsx("div",{children:e.additionalFields}),D.jsxs("div",{className:j.cPostPreviewDialogMessageActionFields,children:[!e.fileUrl&&D.jsx(y.default,{htmlColor:T.default[400],openPreviewDialogOnUpload:!1,disableRipple:!0,onFinish:e.handleFileUpload,onError:e.handleFileUploadingError,inputId:"preview-dialog-file-upload"}),D.jsx(x,{handleSelectEmoji:e.handleSelectEmoji,emojiIconClassName:e.classes.additionalActionButton,htmlColor:T.default[400],disableRipple:!0})]})]})]})},H=function(e){return h.getIsImage(e.fileName)?D.jsxs("div",{children:[D.jsxs("div",{className:j.cPostPreviewDialogFileName,children:[D.jsx(R.default,{"data-testid":"".concat(_,"_fileName"),variant:"subtitle2",noWrap:!0,gutterBottom:!0,children:e.fileName}),D.jsx(z.default,{"data-testid":"".concat(_,"_deleteButton"),color:"action",onClick:e.handleFileDelete,className:e.classes.deleteButton})]}),D.jsx("div",{className:j.cPostPreviewDialogFileImageFileWrapper,children:D.jsx("img",{"data-testid":"".concat(_,"_previewImage"),className:j.cPostPreviewDialogFileImage,src:e.fileUrl,alt:"Uploaded file"})})]}):D.jsxs("div",{className:j.cPostPreviewDialogFileDownload,style:{backgroundColor:M,border:"1px solid ".concat(K)},children:[D.jsx(v,{fileName:e.fileName}),D.jsxs("div",{className:j.cPostPreviewDialogFileDownloadText,children:[D.jsx(R.default,{"data-testid":"".concat(_,"_fileName"),variant:"subtitle2",noWrap:!0,children:e.fileName}),D.jsx(z.default,{"data-testid":"".concat(_,"_deleteButton"),color:"action",onClick:e.handleFileDelete,className:e.classes.deleteButton})]})]})},G=[];function J(e){var i=e.title,t=void 0===i?"Share a file":i,r=e.open,a=e.fileUrl,n=void 0===a?"":a,o=e.fileName,s=void 0===o?"":o,d=e.fileSize,c=void 0===d?null:d,u=e.handleShare,f=e.handleClose,m=e.classes,p=e.additionalFields,h=void 0===p?G:p,j=e.requiredFields,v=void 0===j?G:j,x=e.message,y=void 0===x?"":x,N=e.companyId,q=void 0===N?null:N,P=e.okButtonText,w=void 0===P?"Post":P,C=e.cancelButtonText,R=void 0===C?"Cancel":C,I=l.useState((function(){return{comment:y,fileUrl:n,fileSize:c,fileName:s,fileUploadingError:null}})),T=F.default(I,2),z=T[0],A=T[1],M=l.useRef(null),K=l.useRef(null),J=l.useRef({open:r,fileUrl:n,fileSize:c,fileName:s});l.useLayoutEffect((function(){var e=J.current;J.current={open:r,fileUrl:n,fileSize:c,fileName:s};var i=!e.open&&r&&!z.comment&&y,l=n!==e.fileUrl||c!==e.fileSize||s!==e.fileName;(i||l)&&A((function(e){return W(W(W({},e),i?{comment:y}:{}),l?{fileUrl:n,fileSize:c,fileName:s}:{})}))}),[r,n,c,s,y,z.comment]);var Q=function(){return u(z.comment,z.fileUrl,z.fileSize,z.fileName)},V=l.useCallback((function(e){return A((function(i){return W(W({},i),{},{comment:"".concat(i.comment).concat(e.native)})}))}),[]),X=l.useCallback((function(e,i,l){return A((function(t){return W(W({},t),{},{fileUrl:e,fileName:i,fileSize:l,fileUploadingError:null})}))}),[]),Y=l.useCallback((function(e){return A((function(i){return W(W({},i),{},{fileUrl:null,fileName:null,fileSize:null,fileUploadingError:e})}))}),[]);return D.jsx(k.default,{rootRef:K,children:D.jsxs(g.Dialog,{fullScreen:U.isNativeDetected,open:r,onClose:f,onBackdropClick:f,onEntered:function(){return M.current.focus()},children:[D.jsx(O.default,{children:t}),D.jsxs(S.default,{classes:{root:!U.isNativeDetected&&m.dialogContentRoot},children:[D.jsx(L,{inputEl:M,comment:z.comment,handleMessageChange:function(e){return A((function(i){return W(W({},i),{},{comment:e})}))},handleKeyDown:function(e){"Enter"===e.key&&Q()},handleFileUpload:X,handleSelectEmoji:V,handleFileUploadingError:Y,additionalFields:h,fileUrl:z.fileUrl,classes:m,companyId:q,rootRef:K}),z.fileUploadingError&&D.jsx(b,{errorMessage:z.fileUploadingError,className:m.fileUploadingError}),z.fileUrl&&D.jsx(H,{fileName:z.fileName,fileUrl:z.fileUrl,handleFileDelete:function(){return A((function(e){return W(W({},e),{},{fileUrl:"",fileSize:null,fileName:""})}))},handleFileUploadingError:Y,classes:m})]}),D.jsxs(E.default,{className:m.dialogActions,children:[D.jsx(B.default,{"data-testid":"".concat(_,"_cancelButton"),color:"primary",onClick:f,children:R}),D.jsx(B.default,{"data-testid":"".concat(_,"_okButton"),color:"primary",variant:"contained",disabled:!z.fileUrl&&!z.comment||!v.every(Boolean),onClick:Q,children:w})]})]})})}J.propTypes={title:w.default.string,open:w.default.bool.isRequired,fileUrl:w.default.string,fileName:w.default.string,fileSize:w.default.number,handleShare:w.default.func.isRequired,handleClose:w.default.func.isRequired,classes:w.default.shape({}).isRequired,additionalFields:w.default.arrayOf(w.default.node),requiredFields:w.default.arrayOf(w.default.string),message:w.default.string,companyId:w.default.number,okButtonText:w.default.string,cancelButtonText:w.default.string};var Q=r.withStyles((function(e){return{dialogContentRoot:{minWidth:500},textFieldRoot:{marginBottom:20},textInput:{paddingTop:2},messageWrapper:{padding:"18.5px 14px",border:"solid 1px ".concat(e.palette.primary.main),boxShadow:"none"},dialogActions:{padding:"24px 24px",margin:0},deleteButton:{color:"#DADADA",cursor:"pointer"},fileUploadingError:{marginTop:10}}}))(l.memo(J));module.exports=Q;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/PostPreviewDialog/index.js"],"sourcesContent":["import { createRef, PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport Paper from '@material-ui/core/Paper';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport Button from '@material-ui/core/Button';\nimport Typography from '@material-ui/core/Typography';\nimport Input from '@material-ui/core/Input';\nimport RootRef from '@material-ui/core/RootRef';\nimport grey from '@material-ui/core/colors/grey';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport { Dialog } from '@material-ui/core';\n\nimport { getIsImage } from '../../utils/fileExtension';\n\nimport styles from './styles.css';\n\nimport FileTypeIcon from '~/components/FileTypeIcon';\nimport EmojiIconButton from '~/components/EmojiIconButton';\nimport FileUploadIconButton from '~/components/FileUploadIconButton';\nimport FailedFileUploading from '~/components/FailedFileUploading';\nimport UserMention from '~/components/UserMention';\nimport { isNativeDetected } from '~/utils/mobileDetect';\n\nconst PAGE_NAME = 'PostPreviewDialog';\n\nconst grey200 = grey[200];\nconst grey400 = grey[400];\n\nconst muiStyles = theme => ({\n dialogContentRoot: { minWidth: 500 },\n textFieldRoot: { marginBottom: 20 },\n textInput: { paddingTop: 2 },\n messageWrapper: {\n padding: '18.5px 14px',\n border: `solid 1px ${theme.palette.primary.main}`,\n boxShadow: 'none',\n },\n dialogActions: {\n padding: '24px 24px',\n margin: 0,\n },\n deleteButton: {\n color: '#DADADA',\n cursor: 'pointer',\n },\n fileUploadingError: {\n marginTop: 10,\n },\n});\n\n/* eslint-disable react/prop-types */\nconst Message = props => (\n <Paper className={props.classes.messageWrapper}>\n <Input\n data-testid={`${PAGE_NAME}_messageInput`}\n inputRef={props.inputEl}\n inputComponent={UserMention}\n inputProps={{\n withLightTheme: false,\n onChange: props.handleMessageChange,\n companyId: props.companyId,\n suggestionsPortalHost: props.rootRef.current,\n }}\n placeholder=\"Add a message about the file...\"\n fullWidth\n disableUnderline\n multiline\n rows=\"3\"\n className={props.classes.textFieldRoot}\n value={props.comment}\n onKeyDown={props.handleKeyDown}\n />\n <div className={styles.cPostPreviewDialogMessageAdditionalFieldsWrapper}>\n <div>{props.additionalFields}</div>\n <div className={styles.cPostPreviewDialogMessageActionFields}>\n {!props.fileUrl && (\n <FileUploadIconButton\n htmlColor={grey[400]}\n openPreviewDialogOnUpload={false}\n disableRipple\n onFinish={props.handleFileUpload}\n onError={props.handleFileUploadingError}\n inputId=\"preview-dialog-file-upload\"\n />\n )}\n <EmojiIconButton\n handleSelectEmoji={props.handleSelectEmoji}\n emojiIconClassName={props.classes.additionalActionButton}\n htmlColor={grey[400]}\n disableRipple\n />\n </div>\n </div>\n </Paper>\n);\n\nconst File = props => {\n const isImage = getIsImage(props.fileName);\n\n return isImage ? (\n <div>\n <div className={styles.cPostPreviewDialogFileName}>\n <Typography data-testid={`${PAGE_NAME}_fileName`} variant=\"subtitle2\" noWrap gutterBottom>\n {props.fileName}\n </Typography>\n <DeleteIcon\n data-testid={`${PAGE_NAME}_deleteButton`}\n color=\"action\"\n onClick={props.handleFileDelete}\n className={props.classes.deleteButton}\n />\n </div>\n <div className={styles.cPostPreviewDialogFileImageFileWrapper}>\n <img\n data-testid={`${PAGE_NAME}_previewImage`}\n className={styles.cPostPreviewDialogFileImage}\n src={props.fileUrl}\n alt=\"Uploaded file\"\n />\n </div>\n </div>\n ) : (\n <div\n className={styles.cPostPreviewDialogFileDownload}\n style={{\n backgroundColor: grey200,\n border: `1px solid ${grey400}`,\n }}\n >\n <FileTypeIcon fileName={props.fileName} />\n <div className={styles.cPostPreviewDialogFileDownloadText}>\n <Typography data-testid={`${PAGE_NAME}_fileName`} variant=\"subtitle2\" noWrap>\n {props.fileName}\n </Typography>\n <DeleteIcon\n data-testid={`${PAGE_NAME}_deleteButton`}\n color=\"action\"\n onClick={props.handleFileDelete}\n className={props.classes.deleteButton}\n />\n </div>\n </div>\n );\n};\n/* eslint-enable react/prop-types */\n\nclass FileUploadPreviewDialog extends PureComponent {\n constructor(props) {\n super(props);\n\n this.state = {\n comment: props.message,\n fileUrl: props.fileUrl,\n fileSize: props.fileSize,\n fileName: props.fileName,\n fileUploadingError: null,\n };\n\n this.inputEl = createRef();\n this.rootRef = createRef();\n }\n\n componentDidUpdate(prevProps) {\n if (!prevProps.open && this.props.open && !this.state.comment && this.props.message) {\n this.setState({ comment: this.props.message });\n }\n\n if (\n this.props.fileUrl !== prevProps.fileUrl ||\n this.props.fileSize !== prevProps.fileSize ||\n this.props.fileName !== prevProps.fileName\n ) {\n this.setState({\n fileUrl: this.props.fileUrl,\n fileSize: this.props.fileSize,\n fileName: this.props.fileName,\n });\n }\n }\n\n focusOnInput = () => this.inputEl.current.focus();\n\n handleKeyDown = event => {\n if (event.key === 'Enter') {\n this.handleShare();\n }\n };\n\n handleMessageChange = comment => this.setState({ comment });\n\n handleSelectEmoji = emoji =>\n this.setState(({ comment }) => ({ comment: `${comment}${emoji.native}` }));\n\n handleShare = () => {\n this.props.handleShare(\n this.state.comment,\n this.state.fileUrl,\n this.state.fileSize,\n this.state.fileName\n );\n };\n\n handleFileDelete = () => {\n this.setState({ fileUrl: '', fileSize: null, fileName: '' });\n };\n\n handleFileUpload = (fileUrl, fileName, fileSize) => {\n this.setState({\n fileUrl,\n fileName,\n fileSize,\n fileUploadingError: null,\n });\n };\n\n handleFileUploadingError = fileUploadingError => {\n this.setState({\n fileUrl: null,\n fileName: null,\n fileSize: null,\n fileUploadingError,\n });\n };\n\n render() {\n return (\n <RootRef rootRef={this.rootRef}>\n <Dialog\n fullScreen={isNativeDetected}\n open={this.props.open}\n onClose={this.props.handleClose}\n onBackdropClick={this.props.handleClose}\n onEntered={this.focusOnInput}\n >\n <DialogTitle>{this.props.title}</DialogTitle>\n\n <DialogContent\n classes={{ root: !isNativeDetected && this.props.classes.dialogContentRoot }}\n >\n <Message\n inputEl={this.inputEl}\n comment={this.state.comment}\n handleMessageChange={this.handleMessageChange}\n handleKeyDown={this.handleKeyDown}\n handleFileUpload={this.handleFileUpload}\n handleSelectEmoji={this.handleSelectEmoji}\n handleFileUploadingError={this.handleFileUploadingError}\n additionalFields={this.props.additionalFields}\n fileUrl={this.state.fileUrl}\n classes={this.props.classes}\n companyId={this.props.companyId}\n rootRef={this.rootRef}\n />\n\n {this.state.fileUploadingError && (\n <FailedFileUploading\n errorMessage={this.state.fileUploadingError}\n className={this.props.classes.fileUploadingError}\n />\n )}\n\n {this.state.fileUrl && (\n <File\n fileName={this.state.fileName}\n fileUrl={this.state.fileUrl}\n handleFileDelete={this.handleFileDelete}\n handleFileUploadingError={this.handleFileUploadingError}\n classes={this.props.classes}\n />\n )}\n </DialogContent>\n\n <DialogActions className={this.props.classes.dialogActions}>\n <Button\n data-testid={`${PAGE_NAME}_cancelButton`}\n color=\"primary\"\n onClick={this.props.handleClose}\n >\n {this.props.cancelButtonText}\n </Button>\n\n <Button\n data-testid={`${PAGE_NAME}_okButton`}\n color=\"primary\"\n variant=\"contained\"\n disabled={\n (!this.state.fileUrl && !this.state.comment) ||\n !this.props.requiredFields.every(Boolean)\n }\n onClick={this.handleShare}\n >\n {this.props.okButtonText}\n </Button>\n </DialogActions>\n </Dialog>\n </RootRef>\n );\n }\n}\n\nFileUploadPreviewDialog.propTypes = {\n title: PropTypes.string,\n open: PropTypes.bool.isRequired,\n fileUrl: PropTypes.string,\n fileName: PropTypes.string,\n fileSize: PropTypes.number,\n handleShare: PropTypes.func.isRequired,\n handleClose: PropTypes.func.isRequired,\n\n classes: PropTypes.shape({}).isRequired,\n\n additionalFields: PropTypes.arrayOf(PropTypes.node),\n requiredFields: PropTypes.arrayOf(PropTypes.string),\n message: PropTypes.string,\n companyId: PropTypes.number,\n\n okButtonText: PropTypes.string,\n cancelButtonText: PropTypes.string,\n};\n\nFileUploadPreviewDialog.defaultProps = {\n title: 'Share a file',\n fileUrl: '',\n fileName: '',\n fileSize: null,\n additionalFields: [],\n requiredFields: [],\n message: '',\n companyId: null,\n\n okButtonText: 'Post',\n cancelButtonText: 'Cancel',\n};\n\nexport default withStyles(muiStyles)(FileUploadPreviewDialog);\n"],"names":["PAGE_NAME","grey200","grey","grey400","Message","props","_jsxs","Paper","className","classes","messageWrapper","children","_jsx","Input","concat","inputRef","inputEl","inputComponent","UserMention","inputProps","withLightTheme","onChange","handleMessageChange","companyId","suggestionsPortalHost","rootRef","current","placeholder","fullWidth","disableUnderline","multiline","rows","textFieldRoot","value","comment","onKeyDown","handleKeyDown","jsxs","styles","cPostPreviewDialogMessageAdditionalFieldsWrapper","jsx","additionalFields","cPostPreviewDialogMessageActionFields","fileUrl","FileUploadIconButton","htmlColor","openPreviewDialogOnUpload","disableRipple","onFinish","handleFileUpload","onError","handleFileUploadingError","inputId","EmojiIconButton","handleSelectEmoji","emojiIconClassName","additionalActionButton","File","getIsImage","fileName","cPostPreviewDialogFileName","Typography","variant","noWrap","gutterBottom","DeleteIcon","color","onClick","handleFileDelete","deleteButton","cPostPreviewDialogFileImageFileWrapper","cPostPreviewDialogFileImage","src","alt","cPostPreviewDialogFileDownload","style","backgroundColor","border","FileTypeIcon","cPostPreviewDialogFileDownloadText","FileUploadPreviewDialog","_PureComponent","_inherits","_super","_createSuper","_this","_classCallCheck","this","call","_defineProperty","_assertThisInitialized","focus","event","key","handleShare","setState","emoji","_ref","native","state","fileSize","fileUploadingError","message","createRef","_createClass","prevProps","open","RootRef","Dialog","fullScreen","isNativeDetected","onClose","handleClose","onBackdropClick","onEntered","focusOnInput","DialogTitle","title","DialogContent","root","dialogContentRoot","FailedFileUploading","errorMessage","DialogActions","dialogActions","Button","cancelButtonText","disabled","requiredFields","every","Boolean","okButtonText","PureComponent","propTypes","PropTypes","string","bool","isRequired","number","func","shape","arrayOf","node","defaultProps","PostPreviewDialog","withStyles","theme","minWidth","marginBottom","textInput","paddingTop","padding","palette","primary","main","boxShadow","margin","cursor","marginTop"],"mappings":"s1DA0BA,IAAMA,EAAY,oBAEZC,EAAUC,EAAAA,QAAK,KACfC,EAAUD,EAAAA,QAAK,KAyBfE,EAAU,SAAAC,GAAK,OACnBC,EAAAA,KAACC,EAAAA,QAAK,CAACC,UAAWH,EAAMI,QAAQC,eAAeC,SAAA,CAC7CC,MAACC,UAAK,CACJ,cAAA,GAAAC,OAAgBd,EAAyB,iBACzCe,SAAUV,EAAMW,QAChBC,eAAgBC,EAChBC,WAAY,CACVC,gBAAgB,EAChBC,SAAUhB,EAAMiB,oBAChBC,UAAWlB,EAAMkB,UACjBC,sBAAuBnB,EAAMoB,QAAQC,SAEvCC,YAAY,kCACZC,WAAS,EACTC,kBAAgB,EAChBC,WAAS,EACTC,KAAK,IACLvB,UAAWH,EAAMI,QAAQuB,cACzBC,MAAO5B,EAAM6B,QACbC,UAAW9B,EAAM+B,gBAEnB9B,EAAA+B,KAAA,MAAA,CAAK7B,UAAW8B,EAAOC,iDAAiD5B,SACtE,CAAAC,EAAA4B,IAAA,MAAA,CAAA7B,SAAMN,EAAMoC,mBACZnC,EAAA+B,KAAA,MAAA,CAAK7B,UAAW8B,EAAOI,sCAAsC/B,SAAA,EACzDN,EAAMsC,SACN/B,EAAAA,IAACgC,EAAAA,QAAoB,CACnBC,UAAW3C,EAAI,QAAC,KAChB4C,2BAA2B,EAC3BC,eAAa,EACbC,SAAU3C,EAAM4C,iBAChBC,QAAS7C,EAAM8C,yBACfC,QAAQ,+BAGZxC,MAACyC,EAAe,CACdC,kBAAmBjD,EAAMiD,kBACzBC,mBAAoBlD,EAAMI,QAAQ+C,uBAClCX,UAAW3C,EAAI,QAAC,KAChB6C,eAAa,YAIb,EAGJU,GAAO,SAAApD,GAGX,OAFgBqD,EAAAA,WAAWrD,EAAMsD,UAG/BrD,EAAA+B,KAAA,MAAA,CAAA1B,SACE,CAAAL,EAAA+B,KAAA,MAAA,CAAK7B,UAAW8B,EAAOsB,2BAA2BjD,SAAA,CAChDC,MAACiD,UAAU,CAAC,cAAA,GAAA/C,OAAgBd,EAAqB,aAAC8D,QAAQ,YAAYC,QAAM,EAACC,cAAY,EAAArD,SACtFN,EAAMsD,WAET/C,MAACqD,UAAU,CACT,cAAA,GAAAnD,OAAgBd,EAAyB,iBACzCkE,MAAM,SACNC,QAAS9D,EAAM+D,iBACf5D,UAAWH,EAAMI,QAAQ4D,kBAG7BzD,EAAA4B,IAAA,MAAA,CAAKhC,UAAW8B,EAAOgC,uCAAuC3D,SAC5DC,EAAA4B,IAAA,MAAA,CACE,cAAA,GAAA1B,OAAgBd,EAAyB,iBACzCQ,UAAW8B,EAAOiC,4BAClBC,IAAKnE,EAAMsC,QACX8B,IAAI,uBAKVnE,EAAA+B,KAAA,MAAA,CACE7B,UAAW8B,EAAOoC,+BAClBC,MAAO,CACLC,gBAAiB3E,EACjB4E,2BAAqB1E,IACrBQ,SAAA,CAEFC,MAACkE,EAAY,CAACnB,SAAUtD,EAAMsD,WAC9BrD,EAAA+B,KAAA,MAAA,CAAK7B,UAAW8B,EAAOyC,mCAAmCpE,SAAA,CACxDC,MAACiD,UAAU,CAAC,cAAA,GAAA/C,OAAgBd,EAAqB,aAAC8D,QAAQ,YAAYC,QAAM,EAAApD,SACzEN,EAAMsD,WAET/C,MAACqD,UAAU,CACT,cAAA,GAAAnD,OAAgBd,EAAyB,iBACzCkE,MAAM,SACNC,QAAS9D,EAAM+D,iBACf5D,UAAWH,EAAMI,QAAQ4D,oBAKnC,EAGMW,GAAuB,SAAAC,GAAAC,UAAAF,EAAAC,GAAA,IAAAE,EAAAC,EAAAJ,GAC3B,SAAAA,EAAY3E,GAAO,IAAAgF,EAYU,OAZVC,UAAAC,KAAAP,GACjBK,EAAAF,EAAAK,KAAAD,KAAMlF,GAAOoF,EAAAA,QAgCAC,EAAA,QAAAL,GAAA,gBAAA,WAAA,OAAMA,EAAKrE,QAAQU,QAAQiE,OAAO,IAAAF,EAAAA,QAEjCC,EAAAA,QAAAL,GAAA,iBAAA,SAAAO,GACI,UAAdA,EAAMC,KACRR,EAAKS,iBAERL,EAAAA,QAAAC,EAAAA,QAAAL,GAAA,uBAEqB,SAAAnD,GAAO,OAAImD,EAAKU,SAAS,CAAE7D,QAAAA,GAAU,IAAAuD,EAAAA,QAAAC,EAAAA,QAAAL,GAAA,qBAEvC,SAAAW,GAAK,OACvBX,EAAKU,UAAS,SAAAE,GAAA,IAAG/D,IAAAA,QAAO,MAAQ,CAAEA,QAAYA,GAAAA,OAAAA,GAAU8D,OAAAA,EAAME,QAAU,GAAE,IAAAT,EAAAA,QAAAC,EAAA,QAAAL,GAAA,eAE9D,WACZA,EAAKhF,MAAMyF,YACTT,EAAKc,MAAMjE,QACXmD,EAAKc,MAAMxD,QACX0C,EAAKc,MAAMC,SACXf,EAAKc,MAAMxC,aAEd8B,EAAAA,QAAAC,EAAA,QAAAL,GAAA,oBAEkB,WACjBA,EAAKU,SAAS,CAAEpD,QAAS,GAAIyD,SAAU,KAAMzC,SAAU,QACxD8B,EAAA,QAAAC,EAAA,QAAAL,GAAA,oBAEkB,SAAC1C,EAASgB,EAAUyC,GACrCf,EAAKU,SAAS,CACZpD,QAAAA,EACAgB,SAAAA,EACAyC,SAAAA,EACAC,mBAAoB,UAEvBZ,EAAAA,QAE0BC,EAAAA,QAAAL,GAAA,4BAAA,SAAAgB,GACzBhB,EAAKU,SAAS,CACZpD,QAAS,KACTgB,SAAU,KACVyC,SAAU,KACVC,mBAAAA,OAtEFhB,EAAKc,MAAQ,CACXjE,QAAS7B,EAAMiG,QACf3D,QAAStC,EAAMsC,QACfyD,SAAU/F,EAAM+F,SAChBzC,SAAUtD,EAAMsD,SAChB0C,mBAAoB,MAGtBhB,EAAKrE,QAAUuF,EAAAA,YACflB,EAAK5D,QAAU8E,EAAAA,YAAYlB,CAC7B,CAyIC,OAzIAmB,EAAA,QAAAxB,EAAA,CAAA,CAAAa,IAAA,qBAAA5D,MAED,SAAmBwE,IACZA,EAAUC,MAAQnB,KAAKlF,MAAMqG,OAASnB,KAAKY,MAAMjE,SAAWqD,KAAKlF,MAAMiG,SAC1Ef,KAAKQ,SAAS,CAAE7D,QAASqD,KAAKlF,MAAMiG,UAIpCf,KAAKlF,MAAMsC,UAAY8D,EAAU9D,SACjC4C,KAAKlF,MAAM+F,WAAaK,EAAUL,UAClCb,KAAKlF,MAAMsD,WAAa8C,EAAU9C,UAElC4B,KAAKQ,SAAS,CACZpD,QAAS4C,KAAKlF,MAAMsC,QACpByD,SAAUb,KAAKlF,MAAM+F,SACrBzC,SAAU4B,KAAKlF,MAAMsD,UAG3B,GAAC,CAAAkC,IAAA,SAAA5D,MA8CD,WACE,OACErB,EAAAA,IAAC+F,EAAAA,QAAO,CAAClF,QAAS8D,KAAK9D,QAAQd,SAC7BL,OAACsG,SAAM,CACLC,WAAYC,EAAiBA,iBAC7BJ,KAAMnB,KAAKlF,MAAMqG,KACjBK,QAASxB,KAAKlF,MAAM2G,YACpBC,gBAAiB1B,KAAKlF,MAAM2G,YAC5BE,UAAW3B,KAAK4B,aAAaxG,SAAA,CAE7BC,MAACwG,UAAW,CAAAzG,SAAE4E,KAAKlF,MAAMgH,QAEzB/G,OAACgH,UAAa,CACZ7G,QAAS,CAAE8G,MAAOT,EAAgBA,kBAAIvB,KAAKlF,MAAMI,QAAQ+G,mBAAoB7G,SAAA,CAE7EC,MAACR,EAAO,CACNY,QAASuE,KAAKvE,QACdkB,QAASqD,KAAKY,MAAMjE,QACpBZ,oBAAqBiE,KAAKjE,oBAC1Bc,cAAemD,KAAKnD,cACpBa,iBAAkBsC,KAAKtC,iBACvBK,kBAAmBiC,KAAKjC,kBACxBH,yBAA0BoC,KAAKpC,yBAC/BV,iBAAkB8C,KAAKlF,MAAMoC,iBAC7BE,QAAS4C,KAAKY,MAAMxD,QACpBlC,QAAS8E,KAAKlF,MAAMI,QACpBc,UAAWgE,KAAKlF,MAAMkB,UACtBE,QAAS8D,KAAK9D,UAGf8D,KAAKY,MAAME,oBACVzF,EAAAA,IAAC6G,EAAmB,CAClBC,aAAcnC,KAAKY,MAAME,mBACzB7F,UAAW+E,KAAKlF,MAAMI,QAAQ4F,qBAIjCd,KAAKY,MAAMxD,SACV/B,EAAAA,IAAC6C,GAAI,CACHE,SAAU4B,KAAKY,MAAMxC,SACrBhB,QAAS4C,KAAKY,MAAMxD,QACpByB,iBAAkBmB,KAAKnB,iBACvBjB,yBAA0BoC,KAAKpC,yBAC/B1C,QAAS8E,KAAKlF,MAAMI,aAK1BH,OAACqH,UAAa,CAACnH,UAAW+E,KAAKlF,MAAMI,QAAQmH,cAAcjH,SAAA,CACzDC,MAACiH,UAAM,CACL,cAAA,GAAA/G,OAAgBd,EAAyB,iBACzCkE,MAAM,UACNC,QAASoB,KAAKlF,MAAM2G,YAAYrG,SAE/B4E,KAAKlF,MAAMyH,mBAGdlH,MAACiH,UAAM,CACL,cAAA,GAAA/G,OAAgBd,EAAqB,aACrCkE,MAAM,UACNJ,QAAQ,YACRiE,UACIxC,KAAKY,MAAMxD,UAAY4C,KAAKY,MAAMjE,UACnCqD,KAAKlF,MAAM2H,eAAeC,MAAMC,SAEnC/D,QAASoB,KAAKO,YAAYnF,SAEzB4E,KAAKlF,MAAM8H,sBAMxB,KAACnD,CAAA,CAvJ0B,CAASoD,EAAaA,eA0JnDpD,GAAwBqD,UAAY,CAClChB,MAAOiB,EAAS,QAACC,OACjB7B,KAAM4B,EAAAA,QAAUE,KAAKC,WACrB9F,QAAS2F,EAAS,QAACC,OACnB5E,SAAU2E,EAAS,QAACC,OACpBnC,SAAUkC,EAAS,QAACI,OACpB5C,YAAawC,EAAAA,QAAUK,KAAKF,WAC5BzB,YAAasB,EAAAA,QAAUK,KAAKF,WAE5BhI,QAAS6H,EAAS,QAACM,MAAM,CAAA,GAAIH,WAE7BhG,iBAAkB6F,EAAS,QAACO,QAAQP,EAAAA,QAAUQ,MAC9Cd,eAAgBM,EAAS,QAACO,QAAQP,EAAAA,QAAUC,QAC5CjC,QAASgC,EAAS,QAACC,OACnBhH,UAAW+G,EAAS,QAACI,OAErBP,aAAcG,EAAS,QAACC,OACxBT,iBAAkBQ,EAAS,QAACC,QAG9BvD,GAAwB+D,aAAe,CACrC1B,MAAO,eACP1E,QAAS,GACTgB,SAAU,GACVyC,SAAU,KACV3D,iBAAkB,GAClBuF,eAAgB,GAChB1B,QAAS,GACT/E,UAAW,KAEX4G,aAAc,OACdL,iBAAkB,UAGpB,IAAAkB,GAAeC,cAlTG,SAAAC,GAAK,MAAK,CAC1B1B,kBAAmB,CAAE2B,SAAU,KAC/BnH,cAAe,CAAEoH,aAAc,IAC/BC,UAAW,CAAEC,WAAY,GACzB5I,eAAgB,CACd6I,QAAS,cACT1E,OAAM,aAAA/D,OAAeoI,EAAMM,QAAQC,QAAQC,MAC3CC,UAAW,QAEb/B,cAAe,CACb2B,QAAS,YACTK,OAAQ,GAEVvF,aAAc,CACZH,MAAO,UACP2F,OAAQ,WAEVxD,mBAAoB,CAClByD,UAAW,IAEd,GA8Rcb,CAAsBjE"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/PostPreviewDialog/index.js"],"sourcesContent":["import { memo, useCallback, useLayoutEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport Paper from '@material-ui/core/Paper';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport Button from '@material-ui/core/Button';\nimport Typography from '@material-ui/core/Typography';\nimport Input from '@material-ui/core/Input';\nimport RootRef from '@material-ui/core/RootRef';\nimport grey from '@material-ui/core/colors/grey';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport { Dialog } from '@material-ui/core';\n\nimport { getIsImage } from '../../utils/fileExtension';\n\nimport styles from './styles.css';\n\nimport FileTypeIcon from '~/components/FileTypeIcon';\nimport EmojiIconButton from '~/components/EmojiIconButton';\nimport FileUploadIconButton from '~/components/FileUploadIconButton';\nimport FailedFileUploading from '~/components/FailedFileUploading';\nimport UserMention from '~/components/UserMention';\nimport { isNativeDetected } from '~/utils/mobileDetect';\n\nconst PAGE_NAME = 'PostPreviewDialog';\n\nconst grey200 = grey[200];\nconst grey400 = grey[400];\n\nconst muiStyles = theme => ({\n dialogContentRoot: { minWidth: 500 },\n textFieldRoot: { marginBottom: 20 },\n textInput: { paddingTop: 2 },\n messageWrapper: {\n padding: '18.5px 14px',\n border: `solid 1px ${theme.palette.primary.main}`,\n boxShadow: 'none',\n },\n dialogActions: {\n padding: '24px 24px',\n margin: 0,\n },\n deleteButton: {\n color: '#DADADA',\n cursor: 'pointer',\n },\n fileUploadingError: {\n marginTop: 10,\n },\n});\n\n/* eslint-disable react/prop-types */\nconst Message = props => (\n <Paper className={props.classes.messageWrapper}>\n <Input\n data-testid={`${PAGE_NAME}_messageInput`}\n inputRef={props.inputEl}\n inputComponent={UserMention}\n inputProps={{\n withLightTheme: false,\n onChange: props.handleMessageChange,\n companyId: props.companyId,\n suggestionsPortalHost: props.rootRef.current,\n }}\n placeholder=\"Add a message about the file...\"\n fullWidth\n disableUnderline\n multiline\n rows=\"3\"\n className={props.classes.textFieldRoot}\n value={props.comment}\n onKeyDown={props.handleKeyDown}\n />\n <div className={styles.cPostPreviewDialogMessageAdditionalFieldsWrapper}>\n <div>{props.additionalFields}</div>\n <div className={styles.cPostPreviewDialogMessageActionFields}>\n {!props.fileUrl && (\n <FileUploadIconButton\n htmlColor={grey[400]}\n openPreviewDialogOnUpload={false}\n disableRipple\n onFinish={props.handleFileUpload}\n onError={props.handleFileUploadingError}\n inputId=\"preview-dialog-file-upload\"\n />\n )}\n <EmojiIconButton\n handleSelectEmoji={props.handleSelectEmoji}\n emojiIconClassName={props.classes.additionalActionButton}\n htmlColor={grey[400]}\n disableRipple\n />\n </div>\n </div>\n </Paper>\n);\n\nconst File = props => {\n const isImage = getIsImage(props.fileName);\n\n return isImage ? (\n <div>\n <div className={styles.cPostPreviewDialogFileName}>\n <Typography data-testid={`${PAGE_NAME}_fileName`} variant=\"subtitle2\" noWrap gutterBottom>\n {props.fileName}\n </Typography>\n <DeleteIcon\n data-testid={`${PAGE_NAME}_deleteButton`}\n color=\"action\"\n onClick={props.handleFileDelete}\n className={props.classes.deleteButton}\n />\n </div>\n <div className={styles.cPostPreviewDialogFileImageFileWrapper}>\n <img\n data-testid={`${PAGE_NAME}_previewImage`}\n className={styles.cPostPreviewDialogFileImage}\n src={props.fileUrl}\n alt=\"Uploaded file\"\n />\n </div>\n </div>\n ) : (\n <div\n className={styles.cPostPreviewDialogFileDownload}\n style={{\n backgroundColor: grey200,\n border: `1px solid ${grey400}`,\n }}\n >\n <FileTypeIcon fileName={props.fileName} />\n <div className={styles.cPostPreviewDialogFileDownloadText}>\n <Typography data-testid={`${PAGE_NAME}_fileName`} variant=\"subtitle2\" noWrap>\n {props.fileName}\n </Typography>\n <DeleteIcon\n data-testid={`${PAGE_NAME}_deleteButton`}\n color=\"action\"\n onClick={props.handleFileDelete}\n className={props.classes.deleteButton}\n />\n </div>\n </div>\n );\n};\n/* eslint-enable react/prop-types */\n\nconst emptyFields = [];\n\n/** @param {any} props Preserve the legacy component's public prop type. */\nfunction FileUploadPreviewDialog({\n title = 'Share a file',\n open,\n fileUrl = '',\n fileName = '',\n fileSize = null,\n handleShare: onShare,\n handleClose,\n classes,\n additionalFields = emptyFields,\n requiredFields = emptyFields,\n message = '',\n companyId = null,\n okButtonText = 'Post',\n cancelButtonText = 'Cancel',\n}) {\n const [state, setState] = useState(() => ({\n comment: message,\n fileUrl,\n fileSize,\n fileName,\n fileUploadingError: null,\n }));\n const inputEl = useRef(null);\n const rootRef = useRef(null);\n const previousProps = useRef({ open, fileUrl, fileSize, fileName });\n\n useLayoutEffect(() => {\n const previous = previousProps.current;\n previousProps.current = { open, fileUrl, fileSize, fileName };\n const fillMessage = !previous.open && open && !state.comment && message;\n const fileChanged =\n fileUrl !== previous.fileUrl ||\n fileSize !== previous.fileSize ||\n fileName !== previous.fileName;\n if (fillMessage || fileChanged) {\n setState(current => ({\n ...current,\n ...(fillMessage ? { comment: message } : {}),\n ...(fileChanged ? { fileUrl, fileSize, fileName } : {}),\n }));\n }\n }, [open, fileUrl, fileSize, fileName, message, state.comment]);\n\n const focusOnInput = () => inputEl.current.focus();\n const handleShare = () => onShare(state.comment, state.fileUrl, state.fileSize, state.fileName);\n const handleKeyDown = event => {\n if (event.key === 'Enter') handleShare();\n };\n const handleMessageChange = comment => setState(current => ({ ...current, comment }));\n const handleSelectEmoji = useCallback(\n emoji => setState(current => ({ ...current, comment: `${current.comment}${emoji.native}` })),\n []\n );\n const handleFileDelete = () =>\n setState(current => ({ ...current, fileUrl: '', fileSize: null, fileName: '' }));\n const handleFileUpload = useCallback(\n (uploadedUrl, uploadedName, uploadedSize) =>\n setState(current => ({\n ...current,\n fileUrl: uploadedUrl,\n fileName: uploadedName,\n fileSize: uploadedSize,\n fileUploadingError: null,\n })),\n []\n );\n const handleFileUploadingError = useCallback(\n fileUploadingError =>\n setState(current => ({\n ...current,\n fileUrl: null,\n fileName: null,\n fileSize: null,\n fileUploadingError,\n })),\n []\n );\n\n return (\n <RootRef rootRef={rootRef}>\n <Dialog\n fullScreen={isNativeDetected}\n open={open}\n onClose={handleClose}\n onBackdropClick={handleClose}\n onEntered={focusOnInput}\n >\n <DialogTitle>{title}</DialogTitle>\n\n <DialogContent classes={{ root: !isNativeDetected && classes.dialogContentRoot }}>\n <Message\n inputEl={inputEl}\n comment={state.comment}\n handleMessageChange={handleMessageChange}\n handleKeyDown={handleKeyDown}\n handleFileUpload={handleFileUpload}\n handleSelectEmoji={handleSelectEmoji}\n handleFileUploadingError={handleFileUploadingError}\n additionalFields={additionalFields}\n fileUrl={state.fileUrl}\n classes={classes}\n companyId={companyId}\n rootRef={rootRef}\n />\n\n {state.fileUploadingError && (\n <FailedFileUploading\n errorMessage={state.fileUploadingError}\n className={classes.fileUploadingError}\n />\n )}\n\n {state.fileUrl && (\n <File\n fileName={state.fileName}\n fileUrl={state.fileUrl}\n handleFileDelete={handleFileDelete}\n handleFileUploadingError={handleFileUploadingError}\n classes={classes}\n />\n )}\n </DialogContent>\n\n <DialogActions className={classes.dialogActions}>\n <Button data-testid={`${PAGE_NAME}_cancelButton`} color=\"primary\" onClick={handleClose}>\n {cancelButtonText}\n </Button>\n\n <Button\n data-testid={`${PAGE_NAME}_okButton`}\n color=\"primary\"\n variant=\"contained\"\n disabled={(!state.fileUrl && !state.comment) || !requiredFields.every(Boolean)}\n onClick={handleShare}\n >\n {okButtonText}\n </Button>\n </DialogActions>\n </Dialog>\n </RootRef>\n );\n}\n\nFileUploadPreviewDialog.propTypes = {\n title: PropTypes.string,\n open: PropTypes.bool.isRequired,\n fileUrl: PropTypes.string,\n fileName: PropTypes.string,\n fileSize: PropTypes.number,\n handleShare: PropTypes.func.isRequired,\n handleClose: PropTypes.func.isRequired,\n\n classes: PropTypes.shape({}).isRequired,\n\n additionalFields: PropTypes.arrayOf(PropTypes.node),\n requiredFields: PropTypes.arrayOf(PropTypes.string),\n message: PropTypes.string,\n companyId: PropTypes.number,\n\n okButtonText: PropTypes.string,\n cancelButtonText: PropTypes.string,\n};\n\nexport default withStyles(muiStyles)(memo(FileUploadPreviewDialog));\n"],"names":["PAGE_NAME","grey200","grey","grey400","Message","props","_jsxs","Paper","className","classes","messageWrapper","children","_jsx","Input","concat","inputRef","inputEl","inputComponent","UserMention","inputProps","withLightTheme","onChange","handleMessageChange","companyId","suggestionsPortalHost","rootRef","current","placeholder","fullWidth","disableUnderline","multiline","rows","textFieldRoot","value","comment","onKeyDown","handleKeyDown","jsxs","styles","cPostPreviewDialogMessageAdditionalFieldsWrapper","jsx","additionalFields","cPostPreviewDialogMessageActionFields","fileUrl","FileUploadIconButton","htmlColor","openPreviewDialogOnUpload","disableRipple","onFinish","handleFileUpload","onError","handleFileUploadingError","inputId","EmojiIconButton","handleSelectEmoji","emojiIconClassName","additionalActionButton","File","getIsImage","fileName","cPostPreviewDialogFileName","Typography","variant","noWrap","gutterBottom","DeleteIcon","color","onClick","handleFileDelete","deleteButton","cPostPreviewDialogFileImageFileWrapper","cPostPreviewDialogFileImage","src","alt","cPostPreviewDialogFileDownload","style","backgroundColor","border","FileTypeIcon","cPostPreviewDialogFileDownloadText","emptyFields","FileUploadPreviewDialog","_ref","_ref$title","title","open","_ref$fileUrl","_ref$fileName","_ref$fileSize","fileSize","onShare","handleShare","handleClose","_ref$additionalFields","_ref$requiredFields","requiredFields","_ref$message","message","_ref$companyId","_ref$okButtonText","okButtonText","_ref$cancelButtonText","cancelButtonText","_useState","useState","fileUploadingError","_useState2","_slicedToArray","state","setState","useRef","previousProps","useLayoutEffect","previous","fillMessage","fileChanged","useCallback","emoji","_objectSpread","native","uploadedUrl","uploadedName","uploadedSize","RootRef","Dialog","fullScreen","isNativeDetected","onClose","onBackdropClick","onEntered","focus","DialogTitle","DialogContent","root","dialogContentRoot","event","key","FailedFileUploading","errorMessage","DialogActions","dialogActions","Button","disabled","every","Boolean","propTypes","PropTypes","string","bool","isRequired","number","func","shape","arrayOf","node","withStyles","theme","minWidth","marginBottom","textInput","paddingTop","padding","palette","primary","main","boxShadow","margin","cursor","marginTop","memo"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PostPreviewDialog.test.d.ts","sourceRoot":"","sources":["../../../../src/components/PostPreviewDialog/__tests__/PostPreviewDialog.test.js"],"names":[],"mappings":""}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import PropTypes from 'prop-types';
|
|
2
|
-
declare const _default: import("react").ComponentType<Pick<
|
|
2
|
+
declare const _default: import("react").ComponentType<Pick<PropTypes.InferProps<{
|
|
3
3
|
title: PropTypes.Requireable<string>;
|
|
4
4
|
open: PropTypes.Validator<boolean>;
|
|
5
5
|
fileUrl: PropTypes.Requireable<string>;
|
|
@@ -14,32 +14,6 @@ declare const _default: import("react").ComponentType<Pick<Pick<PropTypes.InferP
|
|
|
14
14
|
companyId: PropTypes.Requireable<number>;
|
|
15
15
|
okButtonText: PropTypes.Requireable<string>;
|
|
16
16
|
cancelButtonText: PropTypes.Requireable<string>;
|
|
17
|
-
}>,
|
|
18
|
-
title: PropTypes.Requireable<string>;
|
|
19
|
-
open: PropTypes.Validator<boolean>;
|
|
20
|
-
fileUrl: PropTypes.Requireable<string>;
|
|
21
|
-
fileName: PropTypes.Requireable<string>;
|
|
22
|
-
fileSize: PropTypes.Requireable<number>;
|
|
23
|
-
handleShare: PropTypes.Validator<(...args: any[]) => any>;
|
|
24
|
-
handleClose: PropTypes.Validator<(...args: any[]) => any>;
|
|
25
|
-
classes: PropTypes.Validator<NonNullable<PropTypes.InferProps<{}>>>;
|
|
26
|
-
additionalFields: PropTypes.Requireable<PropTypes.ReactNodeLike[]>;
|
|
27
|
-
requiredFields: PropTypes.Requireable<(string | null | undefined)[]>;
|
|
28
|
-
message: PropTypes.Requireable<string>;
|
|
29
|
-
companyId: PropTypes.Requireable<number>;
|
|
30
|
-
okButtonText: PropTypes.Requireable<string>;
|
|
31
|
-
cancelButtonText: PropTypes.Requireable<string>;
|
|
32
|
-
}>> & {
|
|
33
|
-
title?: string | null | undefined;
|
|
34
|
-
fileUrl?: string | null | undefined;
|
|
35
|
-
fileName?: string | null | undefined;
|
|
36
|
-
fileSize?: number | null | undefined;
|
|
37
|
-
additionalFields?: PropTypes.ReactNodeLike[] | null | undefined;
|
|
38
|
-
requiredFields?: (string | null | undefined)[] | null | undefined;
|
|
39
|
-
message?: string | null | undefined;
|
|
40
|
-
companyId?: number | null | undefined;
|
|
41
|
-
okButtonText?: string | null | undefined;
|
|
42
|
-
cancelButtonText?: string | null | undefined;
|
|
43
|
-
} & {}, "additionalFields" | "cancelButtonText" | "companyId" | "fileName" | "fileSize" | "fileUrl" | "handleClose" | "handleShare" | "message" | "okButtonText" | "open" | "requiredFields" | "title"> & import("@material-ui/styles").StyledComponentProps<"deleteButton" | "dialogActions" | "dialogContentRoot" | "fileUploadingError" | "messageWrapper" | "textFieldRoot" | "textInput">>;
|
|
17
|
+
}>, "additionalFields" | "cancelButtonText" | "companyId" | "fileName" | "fileSize" | "fileUrl" | "handleClose" | "handleShare" | "message" | "okButtonText" | "open" | "requiredFields" | "title"> & import("@material-ui/styles").StyledComponentProps<"deleteButton" | "dialogActions" | "dialogContentRoot" | "fileUploadingError" | "messageWrapper" | "textFieldRoot" | "textInput">>;
|
|
44
18
|
export default _default;
|
|
45
19
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"@babel/runtime/helpers/
|
|
1
|
+
import e from"@babel/runtime/helpers/defineProperty";import i from"@babel/runtime/helpers/slicedToArray";import{memo as o,useState as r,useRef as l,useLayoutEffect as t,useCallback as n}from"react";import a from"prop-types";import{withStyles as c}from"@material-ui/core/styles";import s from"@material-ui/core/Paper";import d from"@material-ui/core/DialogActions";import m from"@material-ui/core/DialogContent";import f from"@material-ui/core/DialogTitle";import p from"@material-ui/core/Button";import u from"@material-ui/core/Typography";import g from"@material-ui/core/Input";import h from"@material-ui/core/RootRef";import v from"@material-ui/core/colors/grey";import y from"@material-ui/icons/Delete";import{Dialog as U}from"@material-ui/core";import{getIsImage as N}from"../../utils/fileExtension.js";import b from"./styles.css.js";import P from"../FileTypeIcon.js";import D from"../EmojiIconButton.js";import F from"../FileUploadIconButton.js";import j from"../FailedFileUploading.js";import w from"../UserMention/index.js";import{isNativeDetected as E}from"../../utils/mobileDetect.js";import{jsx as S,jsxs as C}from"react/jsx-runtime";function O(e,i){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);i&&(r=r.filter((function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable}))),o.push.apply(o,r)}return o}function x(i){for(var o=1;o<arguments.length;o++){var r=null!=arguments[o]?arguments[o]:{};o%2?O(Object(r),!0).forEach((function(o){e(i,o,r[o])})):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(r)):O(Object(r)).forEach((function(e){Object.defineProperty(i,e,Object.getOwnPropertyDescriptor(r,e))}))}return i}var B="PostPreviewDialog",I=v[200],R=v[400],T=function(e){return C(s,{className:e.classes.messageWrapper,children:[S(g,{"data-testid":"".concat(B,"_messageInput"),inputRef:e.inputEl,inputComponent:w,inputProps:{withLightTheme:!1,onChange:e.handleMessageChange,companyId:e.companyId,suggestionsPortalHost:e.rootRef.current},placeholder:"Add a message about the file...",fullWidth:!0,disableUnderline:!0,multiline:!0,rows:"3",className:e.classes.textFieldRoot,value:e.comment,onKeyDown:e.handleKeyDown}),C("div",{className:b.cPostPreviewDialogMessageAdditionalFieldsWrapper,children:[S("div",{children:e.additionalFields}),C("div",{className:b.cPostPreviewDialogMessageActionFields,children:[!e.fileUrl&&S(F,{htmlColor:v[400],openPreviewDialogOnUpload:!1,disableRipple:!0,onFinish:e.handleFileUpload,onError:e.handleFileUploadingError,inputId:"preview-dialog-file-upload"}),S(D,{handleSelectEmoji:e.handleSelectEmoji,emojiIconClassName:e.classes.additionalActionButton,htmlColor:v[400],disableRipple:!0})]})]})]})},k=function(e){var i=N(e.fileName);return C("div",i?{children:[C("div",{className:b.cPostPreviewDialogFileName,children:[S(u,{"data-testid":"".concat(B,"_fileName"),variant:"subtitle2",noWrap:!0,gutterBottom:!0,children:e.fileName}),S(y,{"data-testid":"".concat(B,"_deleteButton"),color:"action",onClick:e.handleFileDelete,className:e.classes.deleteButton})]}),S("div",{className:b.cPostPreviewDialogFileImageFileWrapper,children:S("img",{"data-testid":"".concat(B,"_previewImage"),className:b.cPostPreviewDialogFileImage,src:e.fileUrl,alt:"Uploaded file"})})]}:{className:b.cPostPreviewDialogFileDownload,style:{backgroundColor:I,border:"1px solid ".concat(R)},children:[S(P,{fileName:e.fileName}),C("div",{className:b.cPostPreviewDialogFileDownloadText,children:[S(u,{"data-testid":"".concat(B,"_fileName"),variant:"subtitle2",noWrap:!0,children:e.fileName}),S(y,{"data-testid":"".concat(B,"_deleteButton"),color:"action",onClick:e.handleFileDelete,className:e.classes.deleteButton})]})]})},z=[];function A(e){var o=e.title,a=void 0===o?"Share a file":o,c=e.open,s=e.fileUrl,u=void 0===s?"":s,g=e.fileName,v=void 0===g?"":g,y=e.fileSize,N=void 0===y?null:y,b=e.handleShare,P=e.handleClose,D=e.classes,F=e.additionalFields,w=void 0===F?z:F,O=e.requiredFields,I=void 0===O?z:O,R=e.message,A=void 0===R?"":R,W=e.companyId,_=void 0===W?null:W,q=e.okButtonText,M=void 0===q?"Post":q,K=e.cancelButtonText,H=void 0===K?"Cancel":K,L=r((function(){return{comment:A,fileUrl:u,fileSize:N,fileName:v,fileUploadingError:null}})),G=i(L,2),J=G[0],Q=G[1],V=l(null),X=l(null),Y=l({open:c,fileUrl:u,fileSize:N,fileName:v});t((function(){var e=Y.current;Y.current={open:c,fileUrl:u,fileSize:N,fileName:v};var i=!e.open&&c&&!J.comment&&A,o=u!==e.fileUrl||N!==e.fileSize||v!==e.fileName;(i||o)&&Q((function(e){return x(x(x({},e),i?{comment:A}:{}),o?{fileUrl:u,fileSize:N,fileName:v}:{})}))}),[c,u,N,v,A,J.comment]);var Z=function(){return b(J.comment,J.fileUrl,J.fileSize,J.fileName)},$=n((function(e){return Q((function(i){return x(x({},i),{},{comment:"".concat(i.comment).concat(e.native)})}))}),[]),ee=n((function(e,i,o){return Q((function(r){return x(x({},r),{},{fileUrl:e,fileName:i,fileSize:o,fileUploadingError:null})}))}),[]),ie=n((function(e){return Q((function(i){return x(x({},i),{},{fileUrl:null,fileName:null,fileSize:null,fileUploadingError:e})}))}),[]);return S(h,{rootRef:X,children:C(U,{fullScreen:E,open:c,onClose:P,onBackdropClick:P,onEntered:function(){return V.current.focus()},children:[S(f,{children:a}),C(m,{classes:{root:!E&&D.dialogContentRoot},children:[S(T,{inputEl:V,comment:J.comment,handleMessageChange:function(e){return Q((function(i){return x(x({},i),{},{comment:e})}))},handleKeyDown:function(e){"Enter"===e.key&&Z()},handleFileUpload:ee,handleSelectEmoji:$,handleFileUploadingError:ie,additionalFields:w,fileUrl:J.fileUrl,classes:D,companyId:_,rootRef:X}),J.fileUploadingError&&S(j,{errorMessage:J.fileUploadingError,className:D.fileUploadingError}),J.fileUrl&&S(k,{fileName:J.fileName,fileUrl:J.fileUrl,handleFileDelete:function(){return Q((function(e){return x(x({},e),{},{fileUrl:"",fileSize:null,fileName:""})}))},handleFileUploadingError:ie,classes:D})]}),C(d,{className:D.dialogActions,children:[S(p,{"data-testid":"".concat(B,"_cancelButton"),color:"primary",onClick:P,children:H}),S(p,{"data-testid":"".concat(B,"_okButton"),color:"primary",variant:"contained",disabled:!J.fileUrl&&!J.comment||!I.every(Boolean),onClick:Z,children:M})]})]})})}A.propTypes={title:a.string,open:a.bool.isRequired,fileUrl:a.string,fileName:a.string,fileSize:a.number,handleShare:a.func.isRequired,handleClose:a.func.isRequired,classes:a.shape({}).isRequired,additionalFields:a.arrayOf(a.node),requiredFields:a.arrayOf(a.string),message:a.string,companyId:a.number,okButtonText:a.string,cancelButtonText:a.string};var W=c((function(e){return{dialogContentRoot:{minWidth:500},textFieldRoot:{marginBottom:20},textInput:{paddingTop:2},messageWrapper:{padding:"18.5px 14px",border:"solid 1px ".concat(e.palette.primary.main),boxShadow:"none"},dialogActions:{padding:"24px 24px",margin:0},deleteButton:{color:"#DADADA",cursor:"pointer"},fileUploadingError:{marginTop:10}}}))(o(A));export{W as default};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/PostPreviewDialog/index.js"],"sourcesContent":["import { createRef, PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport Paper from '@material-ui/core/Paper';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport Button from '@material-ui/core/Button';\nimport Typography from '@material-ui/core/Typography';\nimport Input from '@material-ui/core/Input';\nimport RootRef from '@material-ui/core/RootRef';\nimport grey from '@material-ui/core/colors/grey';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport { Dialog } from '@material-ui/core';\n\nimport { getIsImage } from '../../utils/fileExtension';\n\nimport styles from './styles.css';\n\nimport FileTypeIcon from '~/components/FileTypeIcon';\nimport EmojiIconButton from '~/components/EmojiIconButton';\nimport FileUploadIconButton from '~/components/FileUploadIconButton';\nimport FailedFileUploading from '~/components/FailedFileUploading';\nimport UserMention from '~/components/UserMention';\nimport { isNativeDetected } from '~/utils/mobileDetect';\n\nconst PAGE_NAME = 'PostPreviewDialog';\n\nconst grey200 = grey[200];\nconst grey400 = grey[400];\n\nconst muiStyles = theme => ({\n dialogContentRoot: { minWidth: 500 },\n textFieldRoot: { marginBottom: 20 },\n textInput: { paddingTop: 2 },\n messageWrapper: {\n padding: '18.5px 14px',\n border: `solid 1px ${theme.palette.primary.main}`,\n boxShadow: 'none',\n },\n dialogActions: {\n padding: '24px 24px',\n margin: 0,\n },\n deleteButton: {\n color: '#DADADA',\n cursor: 'pointer',\n },\n fileUploadingError: {\n marginTop: 10,\n },\n});\n\n/* eslint-disable react/prop-types */\nconst Message = props => (\n <Paper className={props.classes.messageWrapper}>\n <Input\n data-testid={`${PAGE_NAME}_messageInput`}\n inputRef={props.inputEl}\n inputComponent={UserMention}\n inputProps={{\n withLightTheme: false,\n onChange: props.handleMessageChange,\n companyId: props.companyId,\n suggestionsPortalHost: props.rootRef.current,\n }}\n placeholder=\"Add a message about the file...\"\n fullWidth\n disableUnderline\n multiline\n rows=\"3\"\n className={props.classes.textFieldRoot}\n value={props.comment}\n onKeyDown={props.handleKeyDown}\n />\n <div className={styles.cPostPreviewDialogMessageAdditionalFieldsWrapper}>\n <div>{props.additionalFields}</div>\n <div className={styles.cPostPreviewDialogMessageActionFields}>\n {!props.fileUrl && (\n <FileUploadIconButton\n htmlColor={grey[400]}\n openPreviewDialogOnUpload={false}\n disableRipple\n onFinish={props.handleFileUpload}\n onError={props.handleFileUploadingError}\n inputId=\"preview-dialog-file-upload\"\n />\n )}\n <EmojiIconButton\n handleSelectEmoji={props.handleSelectEmoji}\n emojiIconClassName={props.classes.additionalActionButton}\n htmlColor={grey[400]}\n disableRipple\n />\n </div>\n </div>\n </Paper>\n);\n\nconst File = props => {\n const isImage = getIsImage(props.fileName);\n\n return isImage ? (\n <div>\n <div className={styles.cPostPreviewDialogFileName}>\n <Typography data-testid={`${PAGE_NAME}_fileName`} variant=\"subtitle2\" noWrap gutterBottom>\n {props.fileName}\n </Typography>\n <DeleteIcon\n data-testid={`${PAGE_NAME}_deleteButton`}\n color=\"action\"\n onClick={props.handleFileDelete}\n className={props.classes.deleteButton}\n />\n </div>\n <div className={styles.cPostPreviewDialogFileImageFileWrapper}>\n <img\n data-testid={`${PAGE_NAME}_previewImage`}\n className={styles.cPostPreviewDialogFileImage}\n src={props.fileUrl}\n alt=\"Uploaded file\"\n />\n </div>\n </div>\n ) : (\n <div\n className={styles.cPostPreviewDialogFileDownload}\n style={{\n backgroundColor: grey200,\n border: `1px solid ${grey400}`,\n }}\n >\n <FileTypeIcon fileName={props.fileName} />\n <div className={styles.cPostPreviewDialogFileDownloadText}>\n <Typography data-testid={`${PAGE_NAME}_fileName`} variant=\"subtitle2\" noWrap>\n {props.fileName}\n </Typography>\n <DeleteIcon\n data-testid={`${PAGE_NAME}_deleteButton`}\n color=\"action\"\n onClick={props.handleFileDelete}\n className={props.classes.deleteButton}\n />\n </div>\n </div>\n );\n};\n/* eslint-enable react/prop-types */\n\nclass FileUploadPreviewDialog extends PureComponent {\n constructor(props) {\n super(props);\n\n this.state = {\n comment: props.message,\n fileUrl: props.fileUrl,\n fileSize: props.fileSize,\n fileName: props.fileName,\n fileUploadingError: null,\n };\n\n this.inputEl = createRef();\n this.rootRef = createRef();\n }\n\n componentDidUpdate(prevProps) {\n if (!prevProps.open && this.props.open && !this.state.comment && this.props.message) {\n this.setState({ comment: this.props.message });\n }\n\n if (\n this.props.fileUrl !== prevProps.fileUrl ||\n this.props.fileSize !== prevProps.fileSize ||\n this.props.fileName !== prevProps.fileName\n ) {\n this.setState({\n fileUrl: this.props.fileUrl,\n fileSize: this.props.fileSize,\n fileName: this.props.fileName,\n });\n }\n }\n\n focusOnInput = () => this.inputEl.current.focus();\n\n handleKeyDown = event => {\n if (event.key === 'Enter') {\n this.handleShare();\n }\n };\n\n handleMessageChange = comment => this.setState({ comment });\n\n handleSelectEmoji = emoji =>\n this.setState(({ comment }) => ({ comment: `${comment}${emoji.native}` }));\n\n handleShare = () => {\n this.props.handleShare(\n this.state.comment,\n this.state.fileUrl,\n this.state.fileSize,\n this.state.fileName\n );\n };\n\n handleFileDelete = () => {\n this.setState({ fileUrl: '', fileSize: null, fileName: '' });\n };\n\n handleFileUpload = (fileUrl, fileName, fileSize) => {\n this.setState({\n fileUrl,\n fileName,\n fileSize,\n fileUploadingError: null,\n });\n };\n\n handleFileUploadingError = fileUploadingError => {\n this.setState({\n fileUrl: null,\n fileName: null,\n fileSize: null,\n fileUploadingError,\n });\n };\n\n render() {\n return (\n <RootRef rootRef={this.rootRef}>\n <Dialog\n fullScreen={isNativeDetected}\n open={this.props.open}\n onClose={this.props.handleClose}\n onBackdropClick={this.props.handleClose}\n onEntered={this.focusOnInput}\n >\n <DialogTitle>{this.props.title}</DialogTitle>\n\n <DialogContent\n classes={{ root: !isNativeDetected && this.props.classes.dialogContentRoot }}\n >\n <Message\n inputEl={this.inputEl}\n comment={this.state.comment}\n handleMessageChange={this.handleMessageChange}\n handleKeyDown={this.handleKeyDown}\n handleFileUpload={this.handleFileUpload}\n handleSelectEmoji={this.handleSelectEmoji}\n handleFileUploadingError={this.handleFileUploadingError}\n additionalFields={this.props.additionalFields}\n fileUrl={this.state.fileUrl}\n classes={this.props.classes}\n companyId={this.props.companyId}\n rootRef={this.rootRef}\n />\n\n {this.state.fileUploadingError && (\n <FailedFileUploading\n errorMessage={this.state.fileUploadingError}\n className={this.props.classes.fileUploadingError}\n />\n )}\n\n {this.state.fileUrl && (\n <File\n fileName={this.state.fileName}\n fileUrl={this.state.fileUrl}\n handleFileDelete={this.handleFileDelete}\n handleFileUploadingError={this.handleFileUploadingError}\n classes={this.props.classes}\n />\n )}\n </DialogContent>\n\n <DialogActions className={this.props.classes.dialogActions}>\n <Button\n data-testid={`${PAGE_NAME}_cancelButton`}\n color=\"primary\"\n onClick={this.props.handleClose}\n >\n {this.props.cancelButtonText}\n </Button>\n\n <Button\n data-testid={`${PAGE_NAME}_okButton`}\n color=\"primary\"\n variant=\"contained\"\n disabled={\n (!this.state.fileUrl && !this.state.comment) ||\n !this.props.requiredFields.every(Boolean)\n }\n onClick={this.handleShare}\n >\n {this.props.okButtonText}\n </Button>\n </DialogActions>\n </Dialog>\n </RootRef>\n );\n }\n}\n\nFileUploadPreviewDialog.propTypes = {\n title: PropTypes.string,\n open: PropTypes.bool.isRequired,\n fileUrl: PropTypes.string,\n fileName: PropTypes.string,\n fileSize: PropTypes.number,\n handleShare: PropTypes.func.isRequired,\n handleClose: PropTypes.func.isRequired,\n\n classes: PropTypes.shape({}).isRequired,\n\n additionalFields: PropTypes.arrayOf(PropTypes.node),\n requiredFields: PropTypes.arrayOf(PropTypes.string),\n message: PropTypes.string,\n companyId: PropTypes.number,\n\n okButtonText: PropTypes.string,\n cancelButtonText: PropTypes.string,\n};\n\nFileUploadPreviewDialog.defaultProps = {\n title: 'Share a file',\n fileUrl: '',\n fileName: '',\n fileSize: null,\n additionalFields: [],\n requiredFields: [],\n message: '',\n companyId: null,\n\n okButtonText: 'Post',\n cancelButtonText: 'Cancel',\n};\n\nexport default withStyles(muiStyles)(FileUploadPreviewDialog);\n"],"names":["PAGE_NAME","grey200","grey","grey400","Message","props","_jsxs","Paper","className","classes","messageWrapper","children","_jsx","Input","concat","inputRef","inputEl","inputComponent","UserMention","inputProps","withLightTheme","onChange","handleMessageChange","companyId","suggestionsPortalHost","rootRef","current","placeholder","fullWidth","disableUnderline","multiline","rows","textFieldRoot","value","comment","onKeyDown","handleKeyDown","styles","cPostPreviewDialogMessageAdditionalFieldsWrapper","additionalFields","cPostPreviewDialogMessageActionFields","fileUrl","FileUploadIconButton","htmlColor","openPreviewDialogOnUpload","disableRipple","onFinish","handleFileUpload","onError","handleFileUploadingError","inputId","EmojiIconButton","handleSelectEmoji","emojiIconClassName","additionalActionButton","File","isImage","getIsImage","fileName","cPostPreviewDialogFileName","Typography","variant","noWrap","gutterBottom","DeleteIcon","color","onClick","handleFileDelete","deleteButton","cPostPreviewDialogFileImageFileWrapper","cPostPreviewDialogFileImage","src","alt","cPostPreviewDialogFileDownload","style","backgroundColor","border","FileTypeIcon","cPostPreviewDialogFileDownloadText","FileUploadPreviewDialog","_PureComponent","_inherits","PureComponent","_super","_createSuper","_this","_classCallCheck","this","call","_defineProperty","_assertThisInitialized","focus","event","key","handleShare","setState","emoji","_ref","native","state","fileSize","fileUploadingError","message","createRef","_createClass","prevProps","open","RootRef","Dialog","fullScreen","isNativeDetected","onClose","handleClose","onBackdropClick","onEntered","focusOnInput","DialogTitle","title","DialogContent","root","dialogContentRoot","FailedFileUploading","errorMessage","DialogActions","dialogActions","Button","cancelButtonText","disabled","requiredFields","every","Boolean","okButtonText","propTypes","PropTypes","string","bool","isRequired","number","func","shape","arrayOf","node","defaultProps","PostPreviewDialog","withStyles","theme","minWidth","marginBottom","textInput","paddingTop","padding","palette","primary","main","boxShadow","margin","cursor","marginTop"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/PostPreviewDialog/index.js"],"sourcesContent":["import { memo, useCallback, useLayoutEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport Paper from '@material-ui/core/Paper';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport Button from '@material-ui/core/Button';\nimport Typography from '@material-ui/core/Typography';\nimport Input from '@material-ui/core/Input';\nimport RootRef from '@material-ui/core/RootRef';\nimport grey from '@material-ui/core/colors/grey';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport { Dialog } from '@material-ui/core';\n\nimport { getIsImage } from '../../utils/fileExtension';\n\nimport styles from './styles.css';\n\nimport FileTypeIcon from '~/components/FileTypeIcon';\nimport EmojiIconButton from '~/components/EmojiIconButton';\nimport FileUploadIconButton from '~/components/FileUploadIconButton';\nimport FailedFileUploading from '~/components/FailedFileUploading';\nimport UserMention from '~/components/UserMention';\nimport { isNativeDetected } from '~/utils/mobileDetect';\n\nconst PAGE_NAME = 'PostPreviewDialog';\n\nconst grey200 = grey[200];\nconst grey400 = grey[400];\n\nconst muiStyles = theme => ({\n dialogContentRoot: { minWidth: 500 },\n textFieldRoot: { marginBottom: 20 },\n textInput: { paddingTop: 2 },\n messageWrapper: {\n padding: '18.5px 14px',\n border: `solid 1px ${theme.palette.primary.main}`,\n boxShadow: 'none',\n },\n dialogActions: {\n padding: '24px 24px',\n margin: 0,\n },\n deleteButton: {\n color: '#DADADA',\n cursor: 'pointer',\n },\n fileUploadingError: {\n marginTop: 10,\n },\n});\n\n/* eslint-disable react/prop-types */\nconst Message = props => (\n <Paper className={props.classes.messageWrapper}>\n <Input\n data-testid={`${PAGE_NAME}_messageInput`}\n inputRef={props.inputEl}\n inputComponent={UserMention}\n inputProps={{\n withLightTheme: false,\n onChange: props.handleMessageChange,\n companyId: props.companyId,\n suggestionsPortalHost: props.rootRef.current,\n }}\n placeholder=\"Add a message about the file...\"\n fullWidth\n disableUnderline\n multiline\n rows=\"3\"\n className={props.classes.textFieldRoot}\n value={props.comment}\n onKeyDown={props.handleKeyDown}\n />\n <div className={styles.cPostPreviewDialogMessageAdditionalFieldsWrapper}>\n <div>{props.additionalFields}</div>\n <div className={styles.cPostPreviewDialogMessageActionFields}>\n {!props.fileUrl && (\n <FileUploadIconButton\n htmlColor={grey[400]}\n openPreviewDialogOnUpload={false}\n disableRipple\n onFinish={props.handleFileUpload}\n onError={props.handleFileUploadingError}\n inputId=\"preview-dialog-file-upload\"\n />\n )}\n <EmojiIconButton\n handleSelectEmoji={props.handleSelectEmoji}\n emojiIconClassName={props.classes.additionalActionButton}\n htmlColor={grey[400]}\n disableRipple\n />\n </div>\n </div>\n </Paper>\n);\n\nconst File = props => {\n const isImage = getIsImage(props.fileName);\n\n return isImage ? (\n <div>\n <div className={styles.cPostPreviewDialogFileName}>\n <Typography data-testid={`${PAGE_NAME}_fileName`} variant=\"subtitle2\" noWrap gutterBottom>\n {props.fileName}\n </Typography>\n <DeleteIcon\n data-testid={`${PAGE_NAME}_deleteButton`}\n color=\"action\"\n onClick={props.handleFileDelete}\n className={props.classes.deleteButton}\n />\n </div>\n <div className={styles.cPostPreviewDialogFileImageFileWrapper}>\n <img\n data-testid={`${PAGE_NAME}_previewImage`}\n className={styles.cPostPreviewDialogFileImage}\n src={props.fileUrl}\n alt=\"Uploaded file\"\n />\n </div>\n </div>\n ) : (\n <div\n className={styles.cPostPreviewDialogFileDownload}\n style={{\n backgroundColor: grey200,\n border: `1px solid ${grey400}`,\n }}\n >\n <FileTypeIcon fileName={props.fileName} />\n <div className={styles.cPostPreviewDialogFileDownloadText}>\n <Typography data-testid={`${PAGE_NAME}_fileName`} variant=\"subtitle2\" noWrap>\n {props.fileName}\n </Typography>\n <DeleteIcon\n data-testid={`${PAGE_NAME}_deleteButton`}\n color=\"action\"\n onClick={props.handleFileDelete}\n className={props.classes.deleteButton}\n />\n </div>\n </div>\n );\n};\n/* eslint-enable react/prop-types */\n\nconst emptyFields = [];\n\n/** @param {any} props Preserve the legacy component's public prop type. */\nfunction FileUploadPreviewDialog({\n title = 'Share a file',\n open,\n fileUrl = '',\n fileName = '',\n fileSize = null,\n handleShare: onShare,\n handleClose,\n classes,\n additionalFields = emptyFields,\n requiredFields = emptyFields,\n message = '',\n companyId = null,\n okButtonText = 'Post',\n cancelButtonText = 'Cancel',\n}) {\n const [state, setState] = useState(() => ({\n comment: message,\n fileUrl,\n fileSize,\n fileName,\n fileUploadingError: null,\n }));\n const inputEl = useRef(null);\n const rootRef = useRef(null);\n const previousProps = useRef({ open, fileUrl, fileSize, fileName });\n\n useLayoutEffect(() => {\n const previous = previousProps.current;\n previousProps.current = { open, fileUrl, fileSize, fileName };\n const fillMessage = !previous.open && open && !state.comment && message;\n const fileChanged =\n fileUrl !== previous.fileUrl ||\n fileSize !== previous.fileSize ||\n fileName !== previous.fileName;\n if (fillMessage || fileChanged) {\n setState(current => ({\n ...current,\n ...(fillMessage ? { comment: message } : {}),\n ...(fileChanged ? { fileUrl, fileSize, fileName } : {}),\n }));\n }\n }, [open, fileUrl, fileSize, fileName, message, state.comment]);\n\n const focusOnInput = () => inputEl.current.focus();\n const handleShare = () => onShare(state.comment, state.fileUrl, state.fileSize, state.fileName);\n const handleKeyDown = event => {\n if (event.key === 'Enter') handleShare();\n };\n const handleMessageChange = comment => setState(current => ({ ...current, comment }));\n const handleSelectEmoji = useCallback(\n emoji => setState(current => ({ ...current, comment: `${current.comment}${emoji.native}` })),\n []\n );\n const handleFileDelete = () =>\n setState(current => ({ ...current, fileUrl: '', fileSize: null, fileName: '' }));\n const handleFileUpload = useCallback(\n (uploadedUrl, uploadedName, uploadedSize) =>\n setState(current => ({\n ...current,\n fileUrl: uploadedUrl,\n fileName: uploadedName,\n fileSize: uploadedSize,\n fileUploadingError: null,\n })),\n []\n );\n const handleFileUploadingError = useCallback(\n fileUploadingError =>\n setState(current => ({\n ...current,\n fileUrl: null,\n fileName: null,\n fileSize: null,\n fileUploadingError,\n })),\n []\n );\n\n return (\n <RootRef rootRef={rootRef}>\n <Dialog\n fullScreen={isNativeDetected}\n open={open}\n onClose={handleClose}\n onBackdropClick={handleClose}\n onEntered={focusOnInput}\n >\n <DialogTitle>{title}</DialogTitle>\n\n <DialogContent classes={{ root: !isNativeDetected && classes.dialogContentRoot }}>\n <Message\n inputEl={inputEl}\n comment={state.comment}\n handleMessageChange={handleMessageChange}\n handleKeyDown={handleKeyDown}\n handleFileUpload={handleFileUpload}\n handleSelectEmoji={handleSelectEmoji}\n handleFileUploadingError={handleFileUploadingError}\n additionalFields={additionalFields}\n fileUrl={state.fileUrl}\n classes={classes}\n companyId={companyId}\n rootRef={rootRef}\n />\n\n {state.fileUploadingError && (\n <FailedFileUploading\n errorMessage={state.fileUploadingError}\n className={classes.fileUploadingError}\n />\n )}\n\n {state.fileUrl && (\n <File\n fileName={state.fileName}\n fileUrl={state.fileUrl}\n handleFileDelete={handleFileDelete}\n handleFileUploadingError={handleFileUploadingError}\n classes={classes}\n />\n )}\n </DialogContent>\n\n <DialogActions className={classes.dialogActions}>\n <Button data-testid={`${PAGE_NAME}_cancelButton`} color=\"primary\" onClick={handleClose}>\n {cancelButtonText}\n </Button>\n\n <Button\n data-testid={`${PAGE_NAME}_okButton`}\n color=\"primary\"\n variant=\"contained\"\n disabled={(!state.fileUrl && !state.comment) || !requiredFields.every(Boolean)}\n onClick={handleShare}\n >\n {okButtonText}\n </Button>\n </DialogActions>\n </Dialog>\n </RootRef>\n );\n}\n\nFileUploadPreviewDialog.propTypes = {\n title: PropTypes.string,\n open: PropTypes.bool.isRequired,\n fileUrl: PropTypes.string,\n fileName: PropTypes.string,\n fileSize: PropTypes.number,\n handleShare: PropTypes.func.isRequired,\n handleClose: PropTypes.func.isRequired,\n\n classes: PropTypes.shape({}).isRequired,\n\n additionalFields: PropTypes.arrayOf(PropTypes.node),\n requiredFields: PropTypes.arrayOf(PropTypes.string),\n message: PropTypes.string,\n companyId: PropTypes.number,\n\n okButtonText: PropTypes.string,\n cancelButtonText: PropTypes.string,\n};\n\nexport default withStyles(muiStyles)(memo(FileUploadPreviewDialog));\n"],"names":["PAGE_NAME","grey200","grey","grey400","Message","props","_jsxs","Paper","className","classes","messageWrapper","children","_jsx","Input","concat","inputRef","inputEl","inputComponent","UserMention","inputProps","withLightTheme","onChange","handleMessageChange","companyId","suggestionsPortalHost","rootRef","current","placeholder","fullWidth","disableUnderline","multiline","rows","textFieldRoot","value","comment","onKeyDown","handleKeyDown","styles","cPostPreviewDialogMessageAdditionalFieldsWrapper","additionalFields","cPostPreviewDialogMessageActionFields","fileUrl","FileUploadIconButton","htmlColor","openPreviewDialogOnUpload","disableRipple","onFinish","handleFileUpload","onError","handleFileUploadingError","inputId","EmojiIconButton","handleSelectEmoji","emojiIconClassName","additionalActionButton","File","isImage","getIsImage","fileName","cPostPreviewDialogFileName","Typography","variant","noWrap","gutterBottom","DeleteIcon","color","onClick","handleFileDelete","deleteButton","cPostPreviewDialogFileImageFileWrapper","cPostPreviewDialogFileImage","src","alt","cPostPreviewDialogFileDownload","style","backgroundColor","border","FileTypeIcon","cPostPreviewDialogFileDownloadText","emptyFields","FileUploadPreviewDialog","_ref","_ref$title","title","open","_ref$fileUrl","_ref$fileName","_ref$fileSize","fileSize","onShare","handleShare","handleClose","_ref$additionalFields","_ref$requiredFields","requiredFields","_ref$message","message","_ref$companyId","_ref$okButtonText","okButtonText","_ref$cancelButtonText","cancelButtonText","_useState","useState","fileUploadingError","_useState2","_slicedToArray","state","setState","useRef","previousProps","useLayoutEffect","previous","fillMessage","fileChanged","useCallback","emoji","_objectSpread","native","uploadedUrl","uploadedName","uploadedSize","RootRef","Dialog","fullScreen","isNativeDetected","onClose","onBackdropClick","onEntered","focus","DialogTitle","DialogContent","root","dialogContentRoot","event","key","FailedFileUploading","errorMessage","DialogActions","dialogActions","Button","disabled","every","Boolean","propTypes","PropTypes","string","bool","isRequired","number","func","shape","arrayOf","node","withStyles","theme","minWidth","marginBottom","textInput","paddingTop","padding","palette","primary","main","boxShadow","margin","cursor","marginTop","memo"],"mappings":"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"}
|
package/mcp-server/server.mjs
CHANGED