From a78c45ce24b7bb7d231e9dded294624a63bcb460 Mon Sep 17 00:00:00 2001 From: rdbsolutions Date: Mon, 7 Feb 2022 15:18:17 +0000 Subject: [PATCH] added file upload element and icons for file types --- components/elements/index.js | 245 ++++++++++++++---- components/search/advancedsearch.js | 14 +- public/assets/images/documenttypes/csv.png | Bin 0 -> 1130 bytes public/assets/images/documenttypes/doc.png | Bin 0 -> 1174 bytes public/assets/images/documenttypes/docx.png | Bin 0 -> 1328 bytes public/assets/images/documenttypes/html.png | Bin 0 -> 1389 bytes public/assets/images/documenttypes/pdf.png | Bin 0 -> 1031 bytes public/assets/images/documenttypes/txt.png | Bin 0 -> 979 bytes public/assets/images/documenttypes/xlsx.png | Bin 0 -> 1241 bytes public/assets/images/documenttypes/zip.png | Bin 0 -> 932 bytes public/assets/images/planning-casework-cy.svg | 8 +- public/assets/images/planning-casework-en.svg | 8 +- styles/sass/welshgov/_application.scss | 8 + 13 files changed, 218 insertions(+), 65 deletions(-) create mode 100644 public/assets/images/documenttypes/csv.png create mode 100644 public/assets/images/documenttypes/doc.png create mode 100644 public/assets/images/documenttypes/docx.png create mode 100644 public/assets/images/documenttypes/html.png create mode 100644 public/assets/images/documenttypes/pdf.png create mode 100644 public/assets/images/documenttypes/txt.png create mode 100644 public/assets/images/documenttypes/xlsx.png create mode 100644 public/assets/images/documenttypes/zip.png diff --git a/components/elements/index.js b/components/elements/index.js index 68e4b0e6..9312d4bf 100644 --- a/components/elements/index.js +++ b/components/elements/index.js @@ -11,7 +11,7 @@ import fieldLookup from "../../data/crmfieldlookuptranslations.json"; import pickListLookup from "../../data/picklistLookups.json"; import useTranslation from "next-translate/useTranslation"; import FileUpload from "../newappeal/fileupload"; -import { useDropzone } from "react-dropzone"; +import Dropzone, { useDropzone } from "react-dropzone"; const RenderTextfield = ({ id, @@ -548,13 +548,11 @@ export function FileUploadField(props) { name={props.name} id={props.name} component={RenderFileUpload} - type="text" className="govuk-input govuk-input--width-20" //validate={[required]} label={props.label} errorMsg="Is required" /> - helllo ); } @@ -585,51 +583,119 @@ const rejectStyle = { borderColor: "#ff1744", }; -const RenderFileUpload = ({ - id, - className, - rows, - datafieldname, - name, - label, - input, - errorMsg, - meta: { touched, error }, - ...custom -}) => { - const [files, setFiles] = useState([]); +// const RenderFileUpload2 = ({ +// id, +// className, +// rows, +// datafieldname, +// name, +// label, +// input, +// errorMsg, +// meta: { touched, errorStr }, +// ...custom +// }) => { +// const [files, setFiles] = useState([]); - const onDrop = useCallback((acceptedFiles) => { - setFiles( - acceptedFiles.map((file) => - Object.assign(file, { - preview: URL.createObjectURL(file), - }) - ) - ); - }, []); +// const onDrop = useCallback((acceptedFiles, fileRejections, event) => { +// setFiles( +// acceptedFiles.map((file) => +// Object.assign(file, { +// preview: URL.createObjectURL(file), +// }) +// ) +// ); +// console.log(acceptedFiles); +// event.target[acceptedFiles]; +// console.log(event.target.files); +// }, []); - const { - getRootProps, - getInputProps, - isDragActive, - isDragAccept, - isDragReject, - } = useDropzone({ - onDrop, - }); +// const onChange = useCallback((acceptedFiles, fileRejections, event) => { +// setFiles( +// acceptedFiles.map((file) => +// Object.assign(file, { +// preview: URL.createObjectURL(file), +// }) +// ) +// ); +// event.target.files[acceptedFiles]; +// console.log(event.target.files); +// }, []); +// const { +// getRootProps, +// getInputProps, +// isDragActive, +// isDragAccept, +// isDragReject, +// } = useDropzone({ +// onDrop, +// onChange, +// }); + +// const style = useMemo( +// () => ({ +// ...baseStyle, +// ...(isDragActive ? activeStyle : {}), +// ...(isDragAccept ? acceptStyle : {}), +// ...(isDragReject ? rejectStyle : {}), +// }), +// [isDragActive, isDragReject, isDragAccept] +// ); + +// const thumbs = files.map((file) => ( +//
+// {file.name} -{" "} +// +// {file.name} ({file.size / 1024}kb) +// +//
+// )); + +// // clean up +// useEffect( +// () => () => { +// files.forEach((file) => URL.revokeObjectURL(file.preview)); +// }, +// [files] +// ); + +// const onChangeFile = (e) => { +// const { +// input: { onChange }, +// } = props; +// onChange(e.target.files[0]); +// }; +// return ( +//
+//
+//
+//
+// +//
Drag and drop your images here.
+//
+//
{" "} +// +// {touched && errorStr && {errorStr}} +//
+// ); +// }; + +const RenderFileUpload = (field) => { + const files = field.input.value; const style = useMemo( () => ({ ...baseStyle, - ...(isDragActive ? activeStyle : {}), - ...(isDragAccept ? acceptStyle : {}), - ...(isDragReject ? rejectStyle : {}), + // ...(isDragActive ? activeStyle : {}), + // ...(isDragAccept ? acceptStyle : {}), + // ...(isDragReject ? rejectStyle : {}), }), - [isDragActive, isDragReject, isDragAccept] + [] + // [isDragActive, isDragReject, isDragAccept] ); + const [filesList, setFilesList] = useState([]); - const thumbs = files.map((file) => ( + const thumbs = filesList.map((file) => (
{file.name} -{" "} @@ -638,24 +704,91 @@ const RenderFileUpload = ({
)); - // clean up - useEffect( - () => () => { - files.forEach((file) => URL.revokeObjectURL(file.preview)); - }, - [files] - ); + function bytesToSize(bytes) { + var sizes = ["Bytes", "KB", "MB", "GB", "TB"]; + if (bytes == 0) return "0 Byte"; + var i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024))); + return Math.round(bytes / Math.pow(1024, i), 2) + " " + sizes[i]; + } + + const getThumbnailIcon = (fileObj, fileType) => { + switch (fileType) { + case "text/html": + return "/assets/images/documentTypes/html.png"; + break; + case "text/plain": + return "/assets/images/documentTypes/txt.png"; + break; + case "application/msword": + return "/assets/images/documentTypes/doc.png"; + break; + case "application/pdf": + return "/assets/images/documentTypes/pdf.png"; + break; + case "application/vnd.openxmlformats-officedocument.wordprocessingml.document": + return "/assets/images/documentTypes/docx.png"; + break; + case "text/csv": + return "/assets/images/documentTypes/csv.png"; + break; + case "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": + return "/assets/images/documentTypes/xlsx.png"; + break; + + case "application/zip": + return "/assets/images/documentTypes/zip.png"; + break; + case "image/jpeg": + case "image/png": + return URL.createObjectURL(fileObj); + break; + } + }; return ( -
-
-
-
- -

Drag and drop files here or click to select files

-
-
{" "} - - {touched && errorStr && {errorStr}} +
+ + field.input.onChange(filesToUpload) + } + > + {({ getRootProps, getInputProps }) => ( +
+
+
+
+ {" "} + +
Drag and drop your files here.
+
+ +
+
+ )} +
+ + {field.meta.touched && field.meta.error && ( + {field.meta.error} + )} + {files && Array.isArray(files) && ( +
    + {files.map((file, i) => ( +
    + {file.name}{" "} + {" "} + + {file.name} ({bytesToSize(file.size)}) + +
    + ))} +
+ )}
); }; diff --git a/components/search/advancedsearch.js b/components/search/advancedsearch.js index 849a5c36..432f7357 100644 --- a/components/search/advancedsearch.js +++ b/components/search/advancedsearch.js @@ -17,13 +17,24 @@ export const minLength = (errorMsg) => (value) => ? errorMsg //`Must be ${min} characters or more` : undefined; +export const leastOneValue = (errorMsg) => {}; + let AdvancedSearch = (props) => { let { t } = useTranslation(); const router = useRouter(); const { locale } = router; - const { LPAData, onSubmit, handleSubmit, myportal } = props; + const { + LPAData, + onSubmit, + handleSubmit, + myportal, + error, + pristine, + reset, + submitting, + } = props; const appealOptionsObj = _.isEmpty(props) ? [{}] @@ -461,6 +472,7 @@ let AdvancedSearch = (props) => { type="submit" name="search" className="govuk-button" + disabled={pristine} > {t("common:search-button")} diff --git a/public/assets/images/documenttypes/csv.png b/public/assets/images/documenttypes/csv.png new file mode 100644 index 0000000000000000000000000000000000000000..3ce38d48912f0f28c24c65db2e895d6da559cadd GIT binary patch literal 1130 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 literal 0 HcmV?d00001 diff --git a/public/assets/images/documenttypes/pdf.png b/public/assets/images/documenttypes/pdf.png new file mode 100644 index 0000000000000000000000000000000000000000..5df29217caa2208de4db385f8b5090bd1e440e30 GIT binary patch literal 1031 zcmV+i1o-=jP)Dv}xLwN~oI~ z+uC>V9Cmllbw{_03_5T*-}jy0_xGH8&be2DwKg>LAxdfN<#@(nxA)_NGU>I+p+Hg~ z(HSbtT^!vq|lt!!o;#vaFx{=}~6R zMl=X+U>aDpWvmo7tXA{4w+cN)%<%^C3490l&T42~_zK~rW&VPQ zcS&hQ!Ksk;>rDW~@Oo7~JP>cfcsQIy3`Dq^JR@2%p-8n>jFwU11)^nuCr_F_zE-#l zT>c57kFOWyjU`1yhCDuv?k9v7O5bzmAuPUm$ATKYd>y8HA3^KV7`UyKL_V;~36a1m zp>;`Lmvx%7rYz?T5J_v=(9kH&`+jqelSDtbHDlYFNYV2K7QYMeNz+G=*4Bz+yp}oX z>$3QDNq=jM(jBO(w}(tL7p~H zq8Srt$}f{_$p&L_A)DdgtQR6He#T1%1DN)fGCnltQyk(rAe)R}+*8ajNZ?0PaAuCl zQm$zJ(H3YPaf7vHf9#gA0=5fh$%QKKa1(K2cG$^yX~(J9FNPf0edZ*z%#T3bv%4&a zoCEa)Q+T`$wplFXq4y{XO1Yxc(7x_2QmO5+|5*OdY)GeHT6LM4OilzVn002ovPDHLkV1gQ{ B%Jl#M literal 0 HcmV?d00001 diff --git a/public/assets/images/documenttypes/txt.png b/public/assets/images/documenttypes/txt.png new file mode 100644 index 0000000000000000000000000000000000000000..8bab95cbe9defbe328f6aeabfc930f4d5c5934bb GIT binary patch literal 979 zcmV;^11$WBP)k5hcJ;i~w@*MF6^5WIjevB1^*9*dh!jhfISa5#$i8en(bF4x1>K z;z}{NEF?PcaT$P39H;jURJa+cqGcGu97Gu8fmsU#_H^qoaC0y*tg2H7^FdiI!cl~w zB2tDyUzr;$1|o2J|H7TG464$c45x2=W_bAWCs@PrYo8bjL!=ot9DN7oKLCm|Gcz*$ z`tzUR;@z)cF%Ur$@6#lm;tW%`U&vtK3{#j{hK5Fr@7}z^TAjeuz-Um>3<3k=QjpCg zBz^~wdV<~uDZ*8>g5+^w|M<5ymg!ot(7L=(nY--VDU}b^i zZge%Ulz`Kv2QPjCtAWw)KK%igMklX-X7~*(l|TR{2cyA)KmwpB1DI zMixhB6K&|mW=#f{(kl#6tv4B_<}0I{gTfy=NeXWvjp8RX4!I2tG-HV75>-eMGL4Om zL7R{oa^!#gVz>&^M-_)^Ya3l7w!(o~Oo)cI%HYa~PWf;h1H_<8h=SY>3ISUBfocw= zMbsmEe8@ySO$t)vkf0WO$b{&SaVW`|X=b4^gMkVUMvTtd@`7RR_LpGs_7r&rdwqU} zgwERxx1M}wZ~(G9(-auyZhOHnYb!)ex{m}ylBYO^IcIKtVaT3%7ek!vGzuCvC<&8h z2yeQ<0P2~c17AxahME{zh6gWxfV+tq{dXBIAobc{>OrG1%c|8GI#)blSaOc;Zv zS=1l7{E6Y?*FOvj5*!TIAAM)IbPv(B#Bc=>0yJ@`wKgxqj!tccedj+iSmaz}`1|ia z!~Q;925AvCBAkR>3E5GP-8kBb(j-J_;oKqPPyj|*?tXeftq1@B002ovPDHLkV1kLt Bh4TOa literal 0 HcmV?d00001 diff --git a/public/assets/images/documenttypes/xlsx.png b/public/assets/images/documenttypes/xlsx.png new file mode 100644 index 0000000000000000000000000000000000000000..b4957161ea771f4df75a0bd0d89e57b3f6f284c5 GIT binary patch literal 1241 zcmV;~1Sb25P)-omOAk8n&2fyGqp{ zY59YCtf0Fk@vf?h^@zl~5yUf*2-)3;4WV9Pvmzo|w!|ZZ(4-#4sK-)|5K(GW)zX?i zr)GTj*1fskH#PIo`8FYLGP&oR`#a~Jd(QdJcjwdLY8IWq|ef;n=%Zi4T4h-rv*u931sfwF(;eQq7e4l1Fr5hRp+cGP3roxJvS27{D z$)sdMa-axfJDs>s$+J@V$(h2Z=4KuH6c{9QU@VjC2;47dziO z-cyXsXE8uZ>w2YtWlEHjgUV7WE-Go&K-H&LZIJ`(Ry4}o8WTT`@=VTw0lzl|z`m-f zS`McDg8+RiFu7_UWdWD%EivvApu~#2OLD|TMvDnkRwToanXC~<_}Rt9meQISRUQ1# z@!rML+7))H&q{zaAaRsrJ%?>s9dAfYHKfC%`A;~^B~g8LC*t0mhZvJPii1QVGjAf^ z)V;yw85V@D55yMBW;|X{g6`YnIZTt|Yf`5!G394y0pSu;r7iMa5!40lj8qM6V7M&$i16`xUI2NH1FhWT$ynV#jozb z*6@zOT%V`}V*=U+$?sJReY^Z$%sf6FhtrS3&&NQ;jgCePjUC1ybe4I#Jb5Lg`wa%} zNygu!_ENz3gfx(b-6f(cZk64nbX<5G?2ZN$&whZ`>w{5PdI|ka1GwR@r=;9AX?~t& zh%dcpG-FDY$YYOIW5r;ASq<)UF%42FFdeTrYBnd`Rr|tW8qzFILbEV zRuu$sNFm~^yEP7y2(LM+MMO1m)Lmr0bWIaSwT`GJjZ}<;w`kdG#9KzSu=8y=+NPBe zKZbRNzi$8!65%6*+jBm;bqv}C{lIx8Ves|Gz^Fm=-{7W|HMPf_pHk4$QqNuD0 z7VA}9m{y2WnP)iUW%Wzs|5|{H)2?7v(j2^A@)pryF{rUua||Oq_R%#3tD*PN<5?!uE%-FnMJ6quavGt_hAY(p}w&myRPr#dewFtdhYCw2Xh}Gd-yh_?*AG2 zPtNjnk#HMPU!5L>(=Eu5ZjHtb;fRaqLcipN1%!(>&>^HFM#qokzaYP0x}G=T2r_$2 z##rh9a>q@PIPvf}*8H>SXQ)7UUSfwSa$WWIm{xJ*Hlj6%Qa%>n$B_Q{PhK-qim9`a*m5tsI@`00000NkvXXu0mjf D>(fLl literal 0 HcmV?d00001 diff --git a/public/assets/images/documenttypes/zip.png b/public/assets/images/documenttypes/zip.png new file mode 100644 index 0000000000000000000000000000000000000000..5783736c02fbe0f448498edd540f464ef9d03e5b GIT binary patch literal 932 zcmV;V16%xwP)qg3-;XfWT9T9rTq0TzCYXdIHH46u zSu)GMuVhW%BLrO7%*@VjW@l#i?b{ax8tw4#V~u#E=S0Eh@x-y?m=X$2sE`CyS>WK_ zUX1BXEfg{pC+CBibm~0;3|;h)7HK512*KcW9_Ac)R}XQ31b+T z2^LfV69}smkAHw_waO9*hbNgz6|-0%G9;?=YLwW8iMgO(ZsX(NeX9dLX+DC#*c9iyt?+`PdwTL3Lqly#*PmBbq@80kcci->{fau-4E z@=}qS?HIF3rHgOoz-U}5{r>)bb^zhtnVY-E{NNdZ4acxgP2FNL{z#=?C={SptHI>t zO-8wOgNa6;K`i!$58INyE&EieraUi6re#fshK7~j>0gGg6YU&$G-K;bq&V|GZ2mFC zw@e>FW=AXPj9T}kZ_DPlCH>AhrIQFLw(aegj80GAW+&9{?rSE~kJOgJ8^qGmA{-rk zB0ElJX70e~=rtG|ybLENKiRlc`XeI&a5|lEaPW>hBPJBO0jX4)JH&CRNSBu%G9Q>e z-FwLC{{CCYX0s$R+C5vU=^?GkNh7p-(a^Y&7NypymAAe=@VCOWqc4}?3)xu`sNX;Q zRrZBL6Sty`TN#H*Jx(0mLB^7bV*FSEJM*wCP&<}hOuTEB-j;(@tb|p3*HpA?0=4X6 zQWOQ;Zntiwi^U@3^LaLo`ckO`xm=FP_*I6TS~{JEN~J=gidt4t4AkLpusA(K&GozU2_K)qfsY;3HvfY#R5;q>$m z1OfrT - - Gwaith Achos + + Gwaith achos cynllun - - Gwaith Achos + + Gwaith achos cynllunio \ No newline at end of file diff --git a/public/assets/images/planning-casework-en.svg b/public/assets/images/planning-casework-en.svg index e018d1de..80c762f4 100644 --- a/public/assets/images/planning-casework-en.svg +++ b/public/assets/images/planning-casework-en.svg @@ -1,9 +1,9 @@ - - Casework + + Planning casework - - Casework + + Planning casework \ No newline at end of file diff --git a/styles/sass/welshgov/_application.scss b/styles/sass/welshgov/_application.scss index 35e0c574..85b9d41c 100644 --- a/styles/sass/welshgov/_application.scss +++ b/styles/sass/welshgov/_application.scss @@ -1877,3 +1877,11 @@ fade { background-position: 90% 15px; } } + +//fileupload + +.fileThumb { + display: flex; + flex-direction: row; + align-items: center; +}