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.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) => (

-{" "}
@@ -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} ({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 00000000..3ce38d48
Binary files /dev/null and b/public/assets/images/documenttypes/csv.png differ
diff --git a/public/assets/images/documenttypes/doc.png b/public/assets/images/documenttypes/doc.png
new file mode 100644
index 00000000..8914a18e
Binary files /dev/null and b/public/assets/images/documenttypes/doc.png differ
diff --git a/public/assets/images/documenttypes/docx.png b/public/assets/images/documenttypes/docx.png
new file mode 100644
index 00000000..608a68b9
Binary files /dev/null and b/public/assets/images/documenttypes/docx.png differ
diff --git a/public/assets/images/documenttypes/html.png b/public/assets/images/documenttypes/html.png
new file mode 100644
index 00000000..151fb3d7
Binary files /dev/null and b/public/assets/images/documenttypes/html.png differ
diff --git a/public/assets/images/documenttypes/pdf.png b/public/assets/images/documenttypes/pdf.png
new file mode 100644
index 00000000..5df29217
Binary files /dev/null and b/public/assets/images/documenttypes/pdf.png differ
diff --git a/public/assets/images/documenttypes/txt.png b/public/assets/images/documenttypes/txt.png
new file mode 100644
index 00000000..8bab95cb
Binary files /dev/null and b/public/assets/images/documenttypes/txt.png differ
diff --git a/public/assets/images/documenttypes/xlsx.png b/public/assets/images/documenttypes/xlsx.png
new file mode 100644
index 00000000..b4957161
Binary files /dev/null and b/public/assets/images/documenttypes/xlsx.png differ
diff --git a/public/assets/images/documenttypes/zip.png b/public/assets/images/documenttypes/zip.png
new file mode 100644
index 00000000..5783736c
Binary files /dev/null and b/public/assets/images/documenttypes/zip.png differ
diff --git a/public/assets/images/planning-casework-cy.svg b/public/assets/images/planning-casework-cy.svg
index 9a6545a2..8ee9de91 100644
--- a/public/assets/images/planning-casework-cy.svg
+++ b/public/assets/images/planning-casework-cy.svg
@@ -1,9 +1,9 @@
-