11import ShowDemoCode from "../../show-demo-code/ShowDemoCode" ;
2- const CodeDemoDropzoneBehaviour = ( { splittedOnly = false } ) => {
2+ const CodeDemoDropzoneBehaviour = ( { splittedOnly = false , button= false } ) => {
3+ if ( button ) return (
4+ < ShowDemoCode
5+ splittedOnly = { splittedOnly }
6+ codeCompleteJS = { completeCodeJSButton }
7+ codeCompleteTS = { completeCodeTSButton }
8+ codeSandboxJS = "https://codesandbox.io/s/dropzone-ui-basic-3j01v"
9+ codeSandboxTS = "https://codesandbox.io/s/dropzone-ui-basic-3j01v"
10+ codeSplittedJS = { splittedCodeJSButton }
11+ codeSplittedTS = { splittedCodeTSButton }
12+ />
13+ ) ;
314 return (
415 < ShowDemoCode
516 splittedOnly = { splittedOnly }
@@ -14,6 +25,178 @@ const CodeDemoDropzoneBehaviour = ({ splittedOnly = false }) => {
1425} ;
1526export default CodeDemoDropzoneBehaviour ;
1627
28+ const splittedCodeJSButton = `<FileInputButton onChange={updateFilesAdd} value={filesAdd} label="add"/>
29+
30+ {filesAdd.map((file) => (
31+ <FileCard key={file.id} {...file} onDelete={removeFileAdd} info preview />
32+ ))}
33+
34+ <FileInputButton
35+ onChange={updateFilesReplace}
36+ value={filesReplace}
37+ variant="outlined"
38+ label="replace"
39+ behaviour="replace"
40+ />
41+ {filesReplace.map((file) => (
42+ <FileCard key={file.id} {...file} onDelete={removeFileReplace} info preview />
43+ ))}` ;
44+
45+ const splittedCodeTSButton = splittedCodeJSButton ;
46+ const completeCodeJSButton = `import * as React from "react";
47+ import { Dropzone, FileCard } from "@files-ui/react";
48+
49+ export default function App() {
50+ const [filesAdd, setFilesAdd] = React.useState([]);
51+ const [filesReplace, setFilesReplace] = React.useState([]);
52+
53+ const updateFilesAdd = (incommingFiles) => {
54+ setFilesAdd(incommingFiles);
55+ };
56+ const updateFilesReplace = (incommingFiles) => {
57+ setFilesReplace(incommingFiles);
58+ };
59+ const removeFileAdd = (id) => {
60+ setFilesAdd(filesAdd.filter((x) => x.id !== id));
61+ };
62+ const removeFileReplace = (id) => {
63+ setFilesReplace(filesReplace.filter((x) => x.id !== id));
64+ };
65+
66+ return (
67+ <div style={mainContainerStyle}>
68+ <div style={itemContainerStyle}>
69+ <FileInputButton
70+ onChange={updateFilesAdd}
71+ value={filesAdd}
72+ label="add"
73+ />
74+ {filesAdd.map((file) => (
75+ <FileCard
76+ key={file.id}
77+ {...file}
78+ onDelete={removeFileAdd}
79+ info
80+ preview
81+ />
82+ ))}
83+ </div>
84+ <div style={itemContainerStyle}>
85+ <FileInputButton
86+ onChange={updateFilesReplace}
87+ value={filesReplace}
88+ variant="outlined"
89+ label="replace"
90+ behaviour="replace"
91+ />
92+ {filesReplace.map((file) => (
93+ <FileCard
94+ key={file.id}
95+ {...file}
96+ onDelete={removeFileReplace}
97+ info
98+ preview
99+ />
100+ ))}
101+ </div>
102+ </div>
103+ );
104+ };
105+
106+ const mainContainerStyle = {
107+ display: "flex",
108+ justifyContent: "space-evenly",
109+ gap: "40px",
110+ flexWrap: "wrap",
111+ width: "100%",
112+ };
113+ const itemContainerStyle = {
114+ display: "flex",
115+ flexDirection: "column",
116+ minWidth: "40%",
117+ gap: "5px",
118+ alignItems: "center",
119+ };` ;
120+
121+ const completeCodeTSButton = `import * as React from "react";
122+ import { FileInputButton, ExtFile, FileCard, FileCardProps } from "@files-ui/react";
123+
124+ export default function App() {
125+ const [filesAdd, setFilesAdd] = React.useState<ExtFile[]>([]);
126+ const [filesReplace, setFilesReplace] = React.useState<ExtFile[]>([]);
127+
128+ const updateFilesAdd = (incommingFiles:ExtFile[]) => {
129+ setFilesAdd(incommingFiles);
130+ };
131+ const updateFilesReplace = (incommingFiles:ExtFile[]) => {
132+ setFilesReplace(incommingFiles);
133+ };
134+ const removeFileAdd = (id:FileCardProps["id"]) => {
135+ setFilesAdd(filesAdd.filter((x) => x.id !== id));
136+ };
137+ const removeFileReplace = (id:FileCardProps["id"]) => {
138+ setFilesReplace(filesReplace.filter((x) => x.id !== id));
139+ };
140+
141+ return (
142+ <div style={mainContainerStyle}>
143+ <div style={itemContainerStyle}>
144+ <FileInputButton
145+ onChange={updateFilesAdd}
146+ value={filesAdd}
147+ label="add"
148+ />
149+ {filesAdd.map((file) => (
150+ <FileCard
151+ key={file.id}
152+ {...file}
153+ onDelete={removeFileAdd}
154+ info
155+ preview
156+ />
157+ ))}
158+ </div>
159+ <div style={itemContainerStyle}>
160+ <FileInputButton
161+ onChange={updateFilesReplace}
162+ value={filesReplace}
163+ variant="outlined"
164+ label="replace"
165+ behaviour="replace"
166+ />
167+ {filesReplace.map((file) => (
168+ <FileCard
169+ key={file.id}
170+ {...file}
171+ onDelete={removeFileReplace}
172+ info
173+ preview
174+ />
175+ ))}
176+ </div>
177+ </div>
178+ );
179+ };
180+
181+ const mainContainerStyle: React.CSSProperties = {
182+ display: "flex",
183+ justifyContent: "space-evenly",
184+ gap: "40px",
185+ flexWrap: "wrap",
186+ width: "100%",
187+ };
188+ const itemContainerStyle: React.CSSProperties = {
189+ display: "flex",
190+ flexDirection: "column",
191+ minWidth: "40%",
192+ gap: "5px",
193+ alignItems: "center",
194+ };` ;
195+
196+
197+
198+
199+ //////
17200const splittedCodeJS = `<Dropzone
18201 style={{ width: "min(100% , 420px)" }}
19202 onChange={updateFilesAdd}
0 commit comments