@visns-studio/visns-components 3.4.11 → 3.4.12

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.
@@ -596,6 +596,7 @@ function Form({
596
596
  filename: file.name,
597
597
  filesize: file.size,
598
598
  extension: fileRes.extension,
599
+ file_relationship: fileKey,
599
600
  };
600
601
  });
601
602
 
@@ -618,6 +619,7 @@ function Form({
618
619
  formData['filename'] = formData[fileKey].name;
619
620
  formData['filesize'] = formData[fileKey].size;
620
621
  formData['extension'] = fileRes.extension;
622
+ formData['file_relationship'] = fileKey;
621
623
  }
622
624
  }
623
625
 
@@ -1,4 +1,4 @@
1
- import React, { useEffect, useState } from 'react';
1
+ import React, { useEffect, useRef, useState } from 'react';
2
2
  import { Link, useParams } from 'react-router-dom';
3
3
  import moment from 'moment';
4
4
  import parse from 'html-react-parser';
@@ -21,6 +21,7 @@ import TableFilter from '../TableFilter';
21
21
  import { toast } from 'react-toastify';
22
22
 
23
23
  function GenericDetail({ extraUrlParam, setting, urlParam, userProfile }) {
24
+ const gridRef = useRef(null);
24
25
  const routeParams = useParams();
25
26
 
26
27
  const { filters, page, stages, tabs } = setting;
@@ -671,22 +672,149 @@ function GenericDetail({ extraUrlParam, setting, urlParam, userProfile }) {
671
672
  config.settings
672
673
  ) {
673
674
  return (
674
- <Table
675
- {...config}
676
- gridHeight={windowHeight * 0.65}
677
- pageData={data ? data : null}
678
- pageSetting={page ? page : null}
679
- paramValue={
680
- routeParams[urlParam]
681
- ? routeParams[urlParam]
682
- : null
683
- }
684
- setConfig={setConfig}
685
- setTotal={setTotal}
686
- style={
687
- userProfile?.settings?.style || {}
688
- }
689
- />
675
+ <>
676
+ {activeTabConfig.dropzone &&
677
+ activeTabConfig.dropzone
678
+ .relationship &&
679
+ activeTabConfig.dropzone.url !==
680
+ '' && (
681
+ <div className="grid__row">
682
+ <div className="grid__full">
683
+ <Dropzone
684
+ onDrop={(
685
+ acceptedFiles
686
+ ) => {
687
+ const uploadFile =
688
+ (file) => {
689
+ Vapor.store(
690
+ file,
691
+ {
692
+ progress:
693
+ (
694
+ progress
695
+ ) => {
696
+ setLoadingProgress(
697
+ progress *
698
+ 100
699
+ );
700
+ },
701
+ }
702
+ ).then(
703
+ (
704
+ response
705
+ ) => {
706
+ setLoadingProgress(
707
+ 0
708
+ );
709
+ const requestBody =
710
+ {
711
+ uuid: response.uuid,
712
+ key: response.key,
713
+ bucket: response.bucket,
714
+ name: file.name,
715
+ size: file.size,
716
+ extension:
717
+ response.extension,
718
+ file_relationship:
719
+ activeTabConfig
720
+ .dropzone
721
+ .relationship,
722
+ };
723
+
724
+ CustomFetch(
725
+ `${activeTabConfig.dropzone.url}/${routeParams[urlParam]}`,
726
+ 'POST',
727
+ requestBody,
728
+ (
729
+ res
730
+ ) => {
731
+ if (
732
+ res.error ===
733
+ ''
734
+ ) {
735
+ gridRef.current.reload();
736
+ } else {
737
+ toast.error(
738
+ res.error
739
+ );
740
+ }
741
+ }
742
+ );
743
+ }
744
+ );
745
+ };
746
+
747
+ acceptedFiles.forEach(
748
+ (a) => {
749
+ uploadFile(
750
+ a
751
+ );
752
+ }
753
+ );
754
+ }}
755
+ >
756
+ {({
757
+ getRootProps,
758
+ getInputProps,
759
+ }) => (
760
+ <section className="dropzone__container">
761
+ <div
762
+ {...getRootProps()}
763
+ >
764
+ <input
765
+ {...getInputProps()}
766
+ />
767
+ <p>
768
+ Drag
769
+ 'n'
770
+ drop
771
+ some
772
+ files
773
+ here,
774
+ or
775
+ click
776
+ to
777
+ select
778
+ files
779
+ </p>
780
+ </div>
781
+ </section>
782
+ )}
783
+ </Dropzone>
784
+ </div>
785
+ </div>
786
+ )}
787
+ <div className="grid__row">
788
+ <div className="grid__full">
789
+ <Table
790
+ {...config}
791
+ ref={gridRef}
792
+ gridHeight={
793
+ windowHeight * 0.65
794
+ }
795
+ pageData={
796
+ data ? data : null
797
+ }
798
+ pageSetting={
799
+ page ? page : null
800
+ }
801
+ paramValue={
802
+ routeParams[urlParam]
803
+ ? routeParams[
804
+ urlParam
805
+ ]
806
+ : null
807
+ }
808
+ setConfig={setConfig}
809
+ setTotal={setTotal}
810
+ style={
811
+ userProfile?.settings
812
+ ?.style || {}
813
+ }
814
+ />
815
+ </div>
816
+ </div>
817
+ </>
690
818
  );
691
819
  } else {
692
820
  return null;
package/package.json CHANGED
@@ -49,7 +49,7 @@
49
49
  "react-dom": "^17.0.1"
50
50
  },
51
51
  "name": "@visns-studio/visns-components",
52
- "version": "3.4.11",
52
+ "version": "3.4.12",
53
53
  "description": "Various packages to assist in the development of our Custom Applications.",
54
54
  "main": "index.js",
55
55
  "scripts": {