Skip to content
Snippets Groups Projects
Commit 6fa444ac authored by Jose Manuel Serrano Amaut's avatar Jose Manuel Serrano Amaut
Browse files

[WIP]: Add basic code for FileMosaic

parent c94c751d
No related branches found
No related tags found
No related merge requests found
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
"@types/react": "^18.0.25", "@types/react": "^18.0.25",
"axios": "^1.3.1", "axios": "^1.3.1",
"node-sass": "^7.0.3", "node-sass": "^7.0.3",
"rc-highlight": "^2.3.6", "rc-highlight": "^2.4.4",
"react": "^18.2.0", "react": "^18.2.0",
"react-dom": "^18.2.0", "react-dom": "^18.2.0",
"react-router": "^6.4.3", "react-router": "^6.4.3",
...@@ -15537,9 +15537,9 @@ ...@@ -15537,9 +15537,9 @@
} }
}, },
"node_modules/rc-highlight": { "node_modules/rc-highlight": {
"version": "2.3.6", "version": "2.4.4",
"resolved": "https://registry.npmjs.org/rc-highlight/-/rc-highlight-2.3.6.tgz", "resolved": "https://registry.npmjs.org/rc-highlight/-/rc-highlight-2.4.4.tgz",
"integrity": "sha512-5TEqMz3IlqlMUEnIho+mfu9cyy30ACtnb/pR73TpYN1/16zF4vITiOcFwOQoUAUPEa00QwUBtjSvVnu/+z9CEw==", "integrity": "sha512-6+glGJRfsXPxK199qaVyNnT32IyblTBb9KEFJlYo6pt4+RSWntOn4cT/u0i74uN6uVHbvAqSryMJnZvyOMcCJg==",
"peerDependencies": { "peerDependencies": {
"react": "^17.0.0 || ^18.0.0", "react": "^17.0.0 || ^18.0.0",
"react-dom": "^17.0.0 || ^18.0.0" "react-dom": "^17.0.0 || ^18.0.0"
...@@ -30064,9 +30064,9 @@ ...@@ -30064,9 +30064,9 @@
} }
}, },
"rc-highlight": { "rc-highlight": {
"version": "2.3.6", "version": "2.4.4",
"resolved": "https://registry.npmjs.org/rc-highlight/-/rc-highlight-2.3.6.tgz", "resolved": "https://registry.npmjs.org/rc-highlight/-/rc-highlight-2.4.4.tgz",
"integrity": "sha512-5TEqMz3IlqlMUEnIho+mfu9cyy30ACtnb/pR73TpYN1/16zF4vITiOcFwOQoUAUPEa00QwUBtjSvVnu/+z9CEw==", "integrity": "sha512-6+glGJRfsXPxK199qaVyNnT32IyblTBb9KEFJlYo6pt4+RSWntOn4cT/u0i74uN6uVHbvAqSryMJnZvyOMcCJg==",
"requires": {} "requires": {}
}, },
"react": { "react": {
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
"@types/react": "^18.0.25", "@types/react": "^18.0.25",
"axios": "^1.3.1", "axios": "^1.3.1",
"node-sass": "^7.0.3", "node-sass": "^7.0.3",
"rc-highlight": "^2.3.6", "rc-highlight": "^2.4.4",
"react": "^18.2.0", "react": "^18.2.0",
"react-dom": "^18.2.0", "react-dom": "^18.2.0",
"react-router": "^6.4.3", "react-router": "^6.4.3",
......
import * as React from "react";
import ShowCode from "../../show-code/ShowCode";
const BasicFileMosaicCodeJS = props =>{
return(
<ShowCode
codeCompleteJS={completeCodeJS}
codeCompleteTS={completeCodeTS}
codeSandboxJS="https://codesandbox.io/s/dropzone-ui-basic-3j01v"
codeSandboxTS="https://codesandbox.io/s/dropzone-ui-basic-3j01v"
codeSplittedJS={splittedCodeJS}
codeSplittedTS={splittedCodeTS}
/>
)
}
export default BasicFileMosaicCodeJS;
const splittedCodeJS = `<>
{value ? (
<FileMosaic {...value} onDelete={removeFile} alwaysActive info />
) : (
<InputButton
label="Browse File..."
onChange={updateFiles}
textDecoration="uppercase"
/>
)}
<FileMosaic {...sampleFileProps} onDelete={() => {}} alwaysActive info />
</>`;
const completeCodeJS = `import * as React from "react";
import { InputButton, FileMosaic } from "@files-ui/react";
const sampleFileProps = {
id: ":0:",
size: 28 * 1024 * 1024,
type: "plain/javascript",
name: "fileeeeee.jsx",
};
export default function App() {
const [value, setValue] = React.useState(undefined);
const updateFiles = (incommingFiles) => {
console.log("incomming extFiles", incommingFiles);
setValue(incommingFiles[0]);
};
const removeFile = () => {
setValue(undefined);
};
return (
<div style={{display:"flex", gap:"10px"}}>
{value ? (
<FileMosaic {...value} onDelete={removeFile} alwaysActive info />
) : (
<InputButton
label="Browse File..."
onChange={updateFiles}
textDecoration="uppercase"
/>
)}
<FileMosaic {...sampleFileProps} onDelete={() => {}} alwaysActive info />
</div>
);
};`;
const completeCodeTS = completeCodeJS;
const splittedCodeTS = splittedCodeJS;
import * as React from "react"; import * as React from "react";
import { InputButton } from "../../../files-ui"; import { InputButton,FileMosaic } from "../../../files-ui";
import { FileMosaic } from "../../../files-ui/components/file-mosaic";
const sampleFile = { const sampleFileProps = {
id: ":0:", id: ":0:",
name: "",
size: 28 * 1024 * 1024, size: 28 * 1024 * 1024,
type: "plain/javascript", type: "plain/javascript",
name: "fileeeeee.jsx", name: "fileeeeee.jsx",
}; };
const BasicFileMosaicDemo = (props) => { const BasicFileMosaicDemo = (props) => {
const [value, setValue] = React.useState([]); const [value, setValue] = React.useState(undefined);
const updateFiles = (incommingFiles) => { const updateFiles = (incommingFiles) => {
console.log("incomming extFiles", incommingFiles); console.log("incomming extFiles", incommingFiles);
setValue(incommingFiles);
setValue(incommingFiles[0]);
}; };
const removeFile = () => { const removeFile = () => {
setValue([]); setValue(undefined);
}; };
return ( return (
<> <>
{value.length > 0 ? ( {value ? (
<FileMosaic <FileMosaic {...value} onDelete={removeFile} alwaysActive info />
key={sampleFile.id + ":"}
{...value[0]}
onDelete={removeFile}
info
alwaysActive
/>
) : ( ) : (
<> <InputButton
<InputButton label="Browse File..."
label="Browse Files..." onChange={updateFiles}
onChange={updateFiles} textDecoration="uppercase"
textDecoration="uppercase" />
/>
</>
)} )}
<FileMosaic <FileMosaic {...sampleFileProps} onDelete={() => {}} alwaysActive info />
key={sampleFile.id}
{...sampleFile}
onDelete={() => {}}
info
alwaysActive
/>
</> </>
); );
}; };
......
...@@ -4,6 +4,7 @@ import Stack from "@mui/material/Stack"; ...@@ -4,6 +4,7 @@ import Stack from "@mui/material/Stack";
import * as React from "react"; import * as React from "react";
import CodeHighlight from "../../components/codeHighlight/CodeHighlight"; import CodeHighlight from "../../components/codeHighlight/CodeHighlight";
import DescParagraph from "../../components/demo-components/desc-paragraph/DescParagraph"; import DescParagraph from "../../components/demo-components/desc-paragraph/DescParagraph";
import BasicFileMosaicCodeJS from "../../components/demo-components/filemosaic-demo/BasicFileMosaicCodeJS";
import BasicFileMosaicDemo from "../../components/demo-components/filemosaic-demo/BasicFileMosaicDemo"; import BasicFileMosaicDemo from "../../components/demo-components/filemosaic-demo/BasicFileMosaicDemo";
import SubTitle from "../../components/demo-components/sub-title/SubTitle"; import SubTitle from "../../components/demo-components/sub-title/SubTitle";
import MainContentContainer from "../../components/layout-pages/MainContentContainer"; import MainContentContainer from "../../components/layout-pages/MainContentContainer";
...@@ -37,7 +38,7 @@ const FileMosaicDemoPage = (props) => { ...@@ -37,7 +38,7 @@ const FileMosaicDemoPage = (props) => {
<SubTitle content="Basic FileMosaic" /> <SubTitle content="Basic FileMosaic" />
<DescParagraph> <DescParagraph>
The <CodeHighlight>FileMosaic</CodeHighlight> supports displaying The <CodeHighlight>FileMosaic</CodeHighlight> supports displaying
information from <TypeHighlight>File</TypeHighlight> object or information from a <TypeHighlight>File</TypeHighlight> object or from
individual props. individual props.
</DescParagraph> </DescParagraph>
...@@ -50,12 +51,12 @@ const FileMosaicDemoPage = (props) => { ...@@ -50,12 +51,12 @@ const FileMosaicDemoPage = (props) => {
justifyContent: "center", justifyContent: "center",
}} }}
> >
<Stack spacing={2} direction="row" alignItems={"center"}> <Stack spacing={10} direction="row" alignItems={"center"}>
<BasicFileMosaicDemo /> <BasicFileMosaicDemo />
</Stack> </Stack>
</Paper> </Paper>
<p></p> <p></p>
{/* <BasicDropzoneCodeJS /> */} <BasicFileMosaicCodeJS/>
</section> </section>
<section id="image-preview"> <section id="image-preview">
<SubTitle content="Image preview" /> <SubTitle content="Image preview" />
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment