@sparkstudio/storage-ui 1.0.21 → 1.0.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +101 -92
- package/dist/index.d.cts +0 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +105 -96
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -295,7 +295,7 @@ var UploadDropzone = ({
|
|
|
295
295
|
children
|
|
296
296
|
}) => {
|
|
297
297
|
const baseClass = "rounded-3 d-flex flex-column align-items-center justify-content-center";
|
|
298
|
-
const stateClass = isDragging ? "bg-body-secondary" : "";
|
|
298
|
+
const stateClass = isDragging ? "bg-body-secondary border-dashed border-2 border-secondary" : "bg-body-trasparent border-solid border-transparent border-2";
|
|
299
299
|
const combinedClassName = `${baseClass} ${stateClass} ${className}`.trim();
|
|
300
300
|
const handleDragOver = (e) => {
|
|
301
301
|
e.preventDefault();
|
|
@@ -856,95 +856,103 @@ var UploadContainer = ({
|
|
|
856
856
|
a.click();
|
|
857
857
|
document.body.removeChild(a);
|
|
858
858
|
};
|
|
859
|
-
return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
859
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [
|
|
860
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "w-100", children: [
|
|
861
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
862
|
+
"input",
|
|
863
|
+
{
|
|
864
|
+
id: "filePicker",
|
|
865
|
+
type: "file",
|
|
866
|
+
multiple: true,
|
|
867
|
+
className: "d-none",
|
|
868
|
+
onChange: (e) => {
|
|
869
|
+
if (!e.target.files) return;
|
|
870
|
+
onFilesSelected?.(e.target.files);
|
|
871
|
+
startUploadsIfNeeded(e.target.files);
|
|
872
|
+
}
|
|
873
|
+
}
|
|
874
|
+
),
|
|
875
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "text-start", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
876
|
+
"button",
|
|
877
|
+
{
|
|
878
|
+
type: "button",
|
|
879
|
+
className: "btn btn-primary float-start",
|
|
880
|
+
onClick: () => document.getElementById("filePicker")?.click(),
|
|
881
|
+
children: "Browse files\u2026"
|
|
882
|
+
}
|
|
883
|
+
) })
|
|
884
|
+
] }),
|
|
885
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
|
|
886
|
+
UploadDropzone,
|
|
887
|
+
{
|
|
888
|
+
isDragging,
|
|
889
|
+
onDragOver: handleDragOver,
|
|
890
|
+
onDragLeave: handleDragLeave,
|
|
891
|
+
onDrop: handleDrop,
|
|
892
|
+
className: "w-100",
|
|
893
|
+
style: { minHeight: "100px", alignItems: "stretch" },
|
|
894
|
+
children: [
|
|
895
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "w-100 mb-3", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "d-flex flex-column flex-md-row align-items-start align-items-md-center justify-content-between gap-3", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "flex-grow-1 w-100", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(UploadProgressList, { uploads }) }) }) }),
|
|
870
896
|
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
871
|
-
"
|
|
872
|
-
{
|
|
873
|
-
id: "filePicker",
|
|
874
|
-
type: "file",
|
|
875
|
-
multiple: true,
|
|
876
|
-
className: "d-none",
|
|
877
|
-
onChange: (e) => {
|
|
878
|
-
if (!e.target.files) return;
|
|
879
|
-
onFilesSelected?.(e.target.files);
|
|
880
|
-
startUploadsIfNeeded(e.target.files);
|
|
881
|
-
}
|
|
882
|
-
}
|
|
883
|
-
),
|
|
884
|
-
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "text-start", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
885
|
-
"button",
|
|
897
|
+
"div",
|
|
886
898
|
{
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
onChange: (e) => {
|
|
922
|
-
if (!e.target.files) return;
|
|
923
|
-
onFilesSelected?.(e.target.files);
|
|
924
|
-
startUploadsIfNeeded(e.target.files);
|
|
899
|
+
className: "w-100 d-flex flex-wrap gap-4 align-content-start",
|
|
900
|
+
style: { minHeight: "140px" },
|
|
901
|
+
children: existingFilesLoading ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "w-100 d-flex justify-content-center align-items-center", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
902
|
+
"div",
|
|
903
|
+
{
|
|
904
|
+
className: "spinner-border text-secondary",
|
|
905
|
+
role: "status"
|
|
906
|
+
}
|
|
907
|
+
) }) : existingFiles.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
|
|
908
|
+
"div",
|
|
909
|
+
{
|
|
910
|
+
className: "w-100 d-flex flex-column align-items-center justify-content-center text-muted",
|
|
911
|
+
style: {
|
|
912
|
+
minHeight: "160px",
|
|
913
|
+
padding: "20px",
|
|
914
|
+
cursor: "pointer",
|
|
915
|
+
transition: "background 0.12s, border-color 0.12s"
|
|
916
|
+
},
|
|
917
|
+
onClick: () => document.getElementById("filePicker")?.click(),
|
|
918
|
+
onMouseEnter: (e) => e.currentTarget.style.borderColor = "#888",
|
|
919
|
+
onMouseLeave: (e) => e.currentTarget.style.borderColor = "#ccc",
|
|
920
|
+
children: [
|
|
921
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
922
|
+
"input",
|
|
923
|
+
{
|
|
924
|
+
id: "filePicker",
|
|
925
|
+
type: "file",
|
|
926
|
+
multiple: true,
|
|
927
|
+
hidden: true,
|
|
928
|
+
onChange: (e) => {
|
|
929
|
+
if (!e.target.files) return;
|
|
930
|
+
onFilesSelected?.(e.target.files);
|
|
931
|
+
startUploadsIfNeeded(e.target.files);
|
|
932
|
+
}
|
|
925
933
|
}
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
);
|
|
934
|
+
),
|
|
935
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("strong", { children: "Drag & drop files here" }),
|
|
936
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("small", { className: "mt-1", children: "\u2026or click to browse" })
|
|
937
|
+
]
|
|
938
|
+
}
|
|
939
|
+
) : existingFiles.map((file) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
940
|
+
DesktopFileIcon,
|
|
941
|
+
{
|
|
942
|
+
name: file.Name,
|
|
943
|
+
sizeBytes: file.FileSize,
|
|
944
|
+
downloadUrl: file.PublicUrl,
|
|
945
|
+
onOpen: () => handleExistingFileOpen(file),
|
|
946
|
+
onDelete: () => onDeleteFile?.(file)
|
|
947
|
+
},
|
|
948
|
+
file.Id
|
|
949
|
+
))
|
|
950
|
+
}
|
|
951
|
+
)
|
|
952
|
+
]
|
|
953
|
+
}
|
|
954
|
+
)
|
|
955
|
+
] });
|
|
948
956
|
};
|
|
949
957
|
|
|
950
958
|
// src/hooks/UseContainers.ts
|
|
@@ -1058,7 +1066,7 @@ var ContainerUploadPanel = ({
|
|
|
1058
1066
|
// src/components/SingleFileProcessUploader.tsx
|
|
1059
1067
|
var import_react8 = require("react");
|
|
1060
1068
|
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
1061
|
-
var SingleFileProcessUploader = ({ getPresignedUrl, onUploadComplete, accept,
|
|
1069
|
+
var SingleFileProcessUploader = ({ getPresignedUrl, onUploadComplete, accept, disabled }) => {
|
|
1062
1070
|
const [selectedFile, setSelectedFile] = (0, import_react8.useState)(null);
|
|
1063
1071
|
const [isDragging, setIsDragging] = (0, import_react8.useState)(false);
|
|
1064
1072
|
const [progress, setProgress] = (0, import_react8.useState)(null);
|
|
@@ -1132,10 +1140,9 @@ var SingleFileProcessUploader = ({ getPresignedUrl, onUploadComplete, accept, la
|
|
|
1132
1140
|
"text-center",
|
|
1133
1141
|
"user-select-none",
|
|
1134
1142
|
disabled ? "opacity-50" : "cursor-pointer",
|
|
1135
|
-
isDragging ? "bg-
|
|
1143
|
+
isDragging ? "bg-body-secondary border-dashed border-2 border-secondary" : "bg-body-trasparent border-transparent border-2"
|
|
1136
1144
|
].join(" ");
|
|
1137
1145
|
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "d-flex flex-column gap-2", children: [
|
|
1138
|
-
label && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("label", { className: "form-label fw-semibold", children: label }),
|
|
1139
1146
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
1140
1147
|
"div",
|
|
1141
1148
|
{
|
|
@@ -1174,7 +1181,10 @@ var SingleFileProcessUploader = ({ getPresignedUrl, onUploadComplete, accept, la
|
|
|
1174
1181
|
),
|
|
1175
1182
|
isUploading && /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "small", children: [
|
|
1176
1183
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "d-flex justify-content-between mb-1", children: [
|
|
1177
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.
|
|
1184
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("span", { children: [
|
|
1185
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "spinner-border spinner-border-sm text-primary" }),
|
|
1186
|
+
" Uploading..."
|
|
1187
|
+
] }),
|
|
1178
1188
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("span", { children: [
|
|
1179
1189
|
progress ?? 0,
|
|
1180
1190
|
"%"
|
|
@@ -1241,7 +1251,6 @@ function HomeContent() {
|
|
|
1241
1251
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
1242
1252
|
SingleFileProcessUploader,
|
|
1243
1253
|
{
|
|
1244
|
-
label: "Upload a file to process",
|
|
1245
1254
|
accept: "*/*",
|
|
1246
1255
|
getPresignedUrl: getPresignedUrlFromApi,
|
|
1247
1256
|
onUploadComplete: (file, s3Url) => {
|
package/dist/index.d.cts
CHANGED
|
@@ -135,7 +135,6 @@ interface SingleFileProcessUploaderProps {
|
|
|
135
135
|
getPresignedUrl: (file: File) => Promise<AWSPresignedUrlDTO>;
|
|
136
136
|
onUploadComplete?: (file: File, s3Url: AWSPresignedUrlDTO) => void;
|
|
137
137
|
accept?: string;
|
|
138
|
-
label?: string;
|
|
139
138
|
disabled?: boolean;
|
|
140
139
|
}
|
|
141
140
|
declare const SingleFileProcessUploader: React__default.FC<SingleFileProcessUploaderProps>;
|
package/dist/index.d.ts
CHANGED
|
@@ -135,7 +135,6 @@ interface SingleFileProcessUploaderProps {
|
|
|
135
135
|
getPresignedUrl: (file: File) => Promise<AWSPresignedUrlDTO>;
|
|
136
136
|
onUploadComplete?: (file: File, s3Url: AWSPresignedUrlDTO) => void;
|
|
137
137
|
accept?: string;
|
|
138
|
-
label?: string;
|
|
139
138
|
disabled?: boolean;
|
|
140
139
|
}
|
|
141
140
|
declare const SingleFileProcessUploader: React__default.FC<SingleFileProcessUploaderProps>;
|
package/dist/index.js
CHANGED
|
@@ -252,7 +252,7 @@ var UploadDropzone = ({
|
|
|
252
252
|
children
|
|
253
253
|
}) => {
|
|
254
254
|
const baseClass = "rounded-3 d-flex flex-column align-items-center justify-content-center";
|
|
255
|
-
const stateClass = isDragging ? "bg-body-secondary" : "";
|
|
255
|
+
const stateClass = isDragging ? "bg-body-secondary border-dashed border-2 border-secondary" : "bg-body-trasparent border-solid border-transparent border-2";
|
|
256
256
|
const combinedClassName = `${baseClass} ${stateClass} ${className}`.trim();
|
|
257
257
|
const handleDragOver = (e) => {
|
|
258
258
|
e.preventDefault();
|
|
@@ -774,7 +774,7 @@ var DesktopFileIcon = ({
|
|
|
774
774
|
};
|
|
775
775
|
|
|
776
776
|
// src/components/UploadContainer.tsx
|
|
777
|
-
import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
777
|
+
import { Fragment as Fragment2, jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
778
778
|
var UploadContainer = ({
|
|
779
779
|
onFilesSelected,
|
|
780
780
|
existingFiles = [],
|
|
@@ -823,95 +823,103 @@ var UploadContainer = ({
|
|
|
823
823
|
a.click();
|
|
824
824
|
document.body.removeChild(a);
|
|
825
825
|
};
|
|
826
|
-
return /* @__PURE__ */ jsxs3(
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
826
|
+
return /* @__PURE__ */ jsxs3(Fragment2, { children: [
|
|
827
|
+
/* @__PURE__ */ jsxs3("div", { className: "w-100", children: [
|
|
828
|
+
/* @__PURE__ */ jsx4(
|
|
829
|
+
"input",
|
|
830
|
+
{
|
|
831
|
+
id: "filePicker",
|
|
832
|
+
type: "file",
|
|
833
|
+
multiple: true,
|
|
834
|
+
className: "d-none",
|
|
835
|
+
onChange: (e) => {
|
|
836
|
+
if (!e.target.files) return;
|
|
837
|
+
onFilesSelected?.(e.target.files);
|
|
838
|
+
startUploadsIfNeeded(e.target.files);
|
|
839
|
+
}
|
|
840
|
+
}
|
|
841
|
+
),
|
|
842
|
+
/* @__PURE__ */ jsx4("div", { className: "text-start", children: /* @__PURE__ */ jsx4(
|
|
843
|
+
"button",
|
|
844
|
+
{
|
|
845
|
+
type: "button",
|
|
846
|
+
className: "btn btn-primary float-start",
|
|
847
|
+
onClick: () => document.getElementById("filePicker")?.click(),
|
|
848
|
+
children: "Browse files\u2026"
|
|
849
|
+
}
|
|
850
|
+
) })
|
|
851
|
+
] }),
|
|
852
|
+
/* @__PURE__ */ jsxs3(
|
|
853
|
+
UploadDropzone,
|
|
854
|
+
{
|
|
855
|
+
isDragging,
|
|
856
|
+
onDragOver: handleDragOver,
|
|
857
|
+
onDragLeave: handleDragLeave,
|
|
858
|
+
onDrop: handleDrop,
|
|
859
|
+
className: "w-100",
|
|
860
|
+
style: { minHeight: "100px", alignItems: "stretch" },
|
|
861
|
+
children: [
|
|
862
|
+
/* @__PURE__ */ jsx4("div", { className: "w-100 mb-3", children: /* @__PURE__ */ jsx4("div", { className: "d-flex flex-column flex-md-row align-items-start align-items-md-center justify-content-between gap-3", children: /* @__PURE__ */ jsx4("div", { className: "flex-grow-1 w-100", children: /* @__PURE__ */ jsx4(UploadProgressList, { uploads }) }) }) }),
|
|
837
863
|
/* @__PURE__ */ jsx4(
|
|
838
|
-
"
|
|
839
|
-
{
|
|
840
|
-
id: "filePicker",
|
|
841
|
-
type: "file",
|
|
842
|
-
multiple: true,
|
|
843
|
-
className: "d-none",
|
|
844
|
-
onChange: (e) => {
|
|
845
|
-
if (!e.target.files) return;
|
|
846
|
-
onFilesSelected?.(e.target.files);
|
|
847
|
-
startUploadsIfNeeded(e.target.files);
|
|
848
|
-
}
|
|
849
|
-
}
|
|
850
|
-
),
|
|
851
|
-
/* @__PURE__ */ jsx4("div", { className: "text-start", children: /* @__PURE__ */ jsx4(
|
|
852
|
-
"button",
|
|
864
|
+
"div",
|
|
853
865
|
{
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
onChange: (e) => {
|
|
889
|
-
if (!e.target.files) return;
|
|
890
|
-
onFilesSelected?.(e.target.files);
|
|
891
|
-
startUploadsIfNeeded(e.target.files);
|
|
866
|
+
className: "w-100 d-flex flex-wrap gap-4 align-content-start",
|
|
867
|
+
style: { minHeight: "140px" },
|
|
868
|
+
children: existingFilesLoading ? /* @__PURE__ */ jsx4("div", { className: "w-100 d-flex justify-content-center align-items-center", children: /* @__PURE__ */ jsx4(
|
|
869
|
+
"div",
|
|
870
|
+
{
|
|
871
|
+
className: "spinner-border text-secondary",
|
|
872
|
+
role: "status"
|
|
873
|
+
}
|
|
874
|
+
) }) : existingFiles.length === 0 ? /* @__PURE__ */ jsxs3(
|
|
875
|
+
"div",
|
|
876
|
+
{
|
|
877
|
+
className: "w-100 d-flex flex-column align-items-center justify-content-center text-muted",
|
|
878
|
+
style: {
|
|
879
|
+
minHeight: "160px",
|
|
880
|
+
padding: "20px",
|
|
881
|
+
cursor: "pointer",
|
|
882
|
+
transition: "background 0.12s, border-color 0.12s"
|
|
883
|
+
},
|
|
884
|
+
onClick: () => document.getElementById("filePicker")?.click(),
|
|
885
|
+
onMouseEnter: (e) => e.currentTarget.style.borderColor = "#888",
|
|
886
|
+
onMouseLeave: (e) => e.currentTarget.style.borderColor = "#ccc",
|
|
887
|
+
children: [
|
|
888
|
+
/* @__PURE__ */ jsx4(
|
|
889
|
+
"input",
|
|
890
|
+
{
|
|
891
|
+
id: "filePicker",
|
|
892
|
+
type: "file",
|
|
893
|
+
multiple: true,
|
|
894
|
+
hidden: true,
|
|
895
|
+
onChange: (e) => {
|
|
896
|
+
if (!e.target.files) return;
|
|
897
|
+
onFilesSelected?.(e.target.files);
|
|
898
|
+
startUploadsIfNeeded(e.target.files);
|
|
899
|
+
}
|
|
892
900
|
}
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
);
|
|
901
|
+
),
|
|
902
|
+
/* @__PURE__ */ jsx4("strong", { children: "Drag & drop files here" }),
|
|
903
|
+
/* @__PURE__ */ jsx4("small", { className: "mt-1", children: "\u2026or click to browse" })
|
|
904
|
+
]
|
|
905
|
+
}
|
|
906
|
+
) : existingFiles.map((file) => /* @__PURE__ */ jsx4(
|
|
907
|
+
DesktopFileIcon,
|
|
908
|
+
{
|
|
909
|
+
name: file.Name,
|
|
910
|
+
sizeBytes: file.FileSize,
|
|
911
|
+
downloadUrl: file.PublicUrl,
|
|
912
|
+
onOpen: () => handleExistingFileOpen(file),
|
|
913
|
+
onDelete: () => onDeleteFile?.(file)
|
|
914
|
+
},
|
|
915
|
+
file.Id
|
|
916
|
+
))
|
|
917
|
+
}
|
|
918
|
+
)
|
|
919
|
+
]
|
|
920
|
+
}
|
|
921
|
+
)
|
|
922
|
+
] });
|
|
915
923
|
};
|
|
916
924
|
|
|
917
925
|
// src/hooks/UseContainers.ts
|
|
@@ -1025,7 +1033,7 @@ var ContainerUploadPanel = ({
|
|
|
1025
1033
|
// src/components/SingleFileProcessUploader.tsx
|
|
1026
1034
|
import { useCallback as useCallback2, useRef as useRef2, useState as useState5 } from "react";
|
|
1027
1035
|
import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
1028
|
-
var SingleFileProcessUploader = ({ getPresignedUrl, onUploadComplete, accept,
|
|
1036
|
+
var SingleFileProcessUploader = ({ getPresignedUrl, onUploadComplete, accept, disabled }) => {
|
|
1029
1037
|
const [selectedFile, setSelectedFile] = useState5(null);
|
|
1030
1038
|
const [isDragging, setIsDragging] = useState5(false);
|
|
1031
1039
|
const [progress, setProgress] = useState5(null);
|
|
@@ -1099,10 +1107,9 @@ var SingleFileProcessUploader = ({ getPresignedUrl, onUploadComplete, accept, la
|
|
|
1099
1107
|
"text-center",
|
|
1100
1108
|
"user-select-none",
|
|
1101
1109
|
disabled ? "opacity-50" : "cursor-pointer",
|
|
1102
|
-
isDragging ? "bg-
|
|
1110
|
+
isDragging ? "bg-body-secondary border-dashed border-2 border-secondary" : "bg-body-trasparent border-transparent border-2"
|
|
1103
1111
|
].join(" ");
|
|
1104
1112
|
return /* @__PURE__ */ jsxs4("div", { className: "d-flex flex-column gap-2", children: [
|
|
1105
|
-
label && /* @__PURE__ */ jsx6("label", { className: "form-label fw-semibold", children: label }),
|
|
1106
1113
|
/* @__PURE__ */ jsxs4(
|
|
1107
1114
|
"div",
|
|
1108
1115
|
{
|
|
@@ -1141,7 +1148,10 @@ var SingleFileProcessUploader = ({ getPresignedUrl, onUploadComplete, accept, la
|
|
|
1141
1148
|
),
|
|
1142
1149
|
isUploading && /* @__PURE__ */ jsxs4("div", { className: "small", children: [
|
|
1143
1150
|
/* @__PURE__ */ jsxs4("div", { className: "d-flex justify-content-between mb-1", children: [
|
|
1144
|
-
/* @__PURE__ */
|
|
1151
|
+
/* @__PURE__ */ jsxs4("span", { children: [
|
|
1152
|
+
/* @__PURE__ */ jsx6("div", { className: "spinner-border spinner-border-sm text-primary" }),
|
|
1153
|
+
" Uploading..."
|
|
1154
|
+
] }),
|
|
1145
1155
|
/* @__PURE__ */ jsxs4("span", { children: [
|
|
1146
1156
|
progress ?? 0,
|
|
1147
1157
|
"%"
|
|
@@ -1184,7 +1194,7 @@ import {
|
|
|
1184
1194
|
UserInfoCard,
|
|
1185
1195
|
useUser
|
|
1186
1196
|
} from "@sparkstudio/authentication-ui";
|
|
1187
|
-
import { Fragment as
|
|
1197
|
+
import { Fragment as Fragment3, jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
1188
1198
|
function HomeView() {
|
|
1189
1199
|
return /* @__PURE__ */ jsx7(
|
|
1190
1200
|
AuthenticatorProvider,
|
|
@@ -1207,13 +1217,12 @@ function HomeContent() {
|
|
|
1207
1217
|
const result = await res.s3.GetTemporaryPreSignedUrl(new TemporaryFileDTO({ Name: file.name, ContentType: contentType }));
|
|
1208
1218
|
return result;
|
|
1209
1219
|
}
|
|
1210
|
-
return /* @__PURE__ */ jsxs5(
|
|
1220
|
+
return /* @__PURE__ */ jsxs5(Fragment3, { children: [
|
|
1211
1221
|
/* @__PURE__ */ jsx7(UserInfoCard, {}),
|
|
1212
|
-
user && /* @__PURE__ */ jsxs5(
|
|
1222
|
+
user && /* @__PURE__ */ jsxs5(Fragment3, { children: [
|
|
1213
1223
|
/* @__PURE__ */ jsx7(
|
|
1214
1224
|
SingleFileProcessUploader,
|
|
1215
1225
|
{
|
|
1216
|
-
label: "Upload a file to process",
|
|
1217
1226
|
accept: "*/*",
|
|
1218
1227
|
getPresignedUrl: getPresignedUrlFromApi,
|
|
1219
1228
|
onUploadComplete: (file, s3Url) => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sparkstudio/storage-ui",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.23",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.cjs",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"@fortawesome/free-solid-svg-icons": "^7.1.0",
|
|
41
41
|
"@fortawesome/react-fontawesome": "^3.1.1",
|
|
42
42
|
"@sparkstudio/authentication-ui": "^1.0.29",
|
|
43
|
-
"@sparkstudio/common-ui": "^1.0.
|
|
43
|
+
"@sparkstudio/common-ui": "^1.0.29",
|
|
44
44
|
"barrelsby": "^2.8.1"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|