From ab6b75cd93764cd51c2387c907942938150dc092 Mon Sep 17 00:00:00 2001 From: Jose Manuel Serrano Amaut <a20122128@pucp.pe> Date: Sat, 11 Mar 2023 23:48:49 -0500 Subject: [PATCH] [WIP]: Refactor localization demo page. Missing to update info layer with localization. Also there is an issue when value is not given to Dropzone component --- .../dropzone-demo/BasicDropzoneCodeJS.jsx | 6 +- .../dropzone-demo/BasicDropzoneDemo.jsx | 16 +-- .../DemoFileMosaicLocalization.tsx | 103 +++++++++--------- .../filemosaic-demo/DemoLocalization.scss | 41 +++++++ .../switch/FileCardMosaicSwitch.jsx | 3 +- src/pages/localization/LocalizationPage.jsx | 3 +- 6 files changed, 104 insertions(+), 68 deletions(-) create mode 100644 src/components/demo-components/filemosaic-demo/DemoLocalization.scss diff --git a/src/components/demo-components/dropzone-demo/BasicDropzoneCodeJS.jsx b/src/components/demo-components/dropzone-demo/BasicDropzoneCodeJS.jsx index 0456312..b2da92a 100644 --- a/src/components/demo-components/dropzone-demo/BasicDropzoneCodeJS.jsx +++ b/src/components/demo-components/dropzone-demo/BasicDropzoneCodeJS.jsx @@ -15,23 +15,21 @@ const BasicDropzoneCode = ({ splittedOnly = false }) => { export default BasicDropzoneCode; const splittedCodeJS = `<Dropzone - style={{ minWidth: "505px" }} onChange={updateFiles} value={files} > {files.length > 0 && files.map((file) => ( - <FileMosaic key={file.id} {...file} onDelete={removeFile} info alwaysActive/> + <FileMosaic key={file.id} {...file} onDelete={removeFile} info/> ))} </Dropzone>`; const splittedCodeTS = `<Dropzone - style={{ minWidth: "505px" }} onChange={updateFiles} value={files} > {files.length > 0 && files.map((file: ExtFile) => ( - <FileMosaic key={file.id} {...file} onDelete={removeFile} info={true} alwaysActive={true}/> + <FileMosaic key={file.id} {...file} onDelete={removeFile} info={true}/> ))} </Dropzone>`; const completeCodeJS = `import { Dropzone,FileMosaic } from "@files-ui/react"; diff --git a/src/components/demo-components/dropzone-demo/BasicDropzoneDemo.jsx b/src/components/demo-components/dropzone-demo/BasicDropzoneDemo.jsx index dc7b44c..b5398a4 100644 --- a/src/components/demo-components/dropzone-demo/BasicDropzoneDemo.jsx +++ b/src/components/demo-components/dropzone-demo/BasicDropzoneDemo.jsx @@ -11,21 +11,11 @@ export default function BasicDemoDropzone() { const removeFile = (id) => { setFiles(files.filter((x) => x.id !== id)); }; - return ( - <Dropzone - //style={{ minWidth: "505px" }} - onChange={updateFiles} - value={files} - > + return ( + <Dropzone onChange={updateFiles} value={files}> {files.length > 0 && files.map((file) => ( - <FileMosaic - key={file.id} - {...file} - onDelete={removeFile} - info - alwaysActive - /> + <FileMosaic key={file.id} {...file} onDelete={removeFile} info /> ))} </Dropzone> ); diff --git a/src/components/demo-components/filemosaic-demo/DemoFileMosaicLocalization.tsx b/src/components/demo-components/filemosaic-demo/DemoFileMosaicLocalization.tsx index 74582e7..d642dc4 100644 --- a/src/components/demo-components/filemosaic-demo/DemoFileMosaicLocalization.tsx +++ b/src/components/demo-components/filemosaic-demo/DemoFileMosaicLocalization.tsx @@ -1,7 +1,14 @@ import * as React from "react"; -import { Dropzone, ExtFile, FileMosaic, Localization } from "../../../files-ui"; +import { + Dropzone, + ExtFile, + FileMosaic, + Localization, + FileInputButton, + FileCard, +} from "../../../files-ui"; import { Autocomplete, TextField } from "@mui/material"; - +import "./DemoLocalization.scss"; const DemoFileMosaicLocalization = (props: { card: boolean }) => { const [localization, setLocalization] = React.useState< Localization | undefined @@ -11,7 +18,6 @@ const DemoFileMosaicLocalization = (props: { card: boolean }) => { console.log(value); setLocalization(value?.value); }; - if (props.card) return <></>; return ( <> <Autocomplete @@ -25,55 +31,54 @@ const DemoFileMosaicLocalization = (props: { card: boolean }) => { getOptionLabel={(option) => option.language} renderInput={(params) => <TextField {...params} label="Localization" />} /> - <div - style={{ - display: "flex", - flexWrap: "wrap", - justifyContent: "center", - width: "100%", - gap: "50px", - }} - > - <div - style={{ - display: "flex", - justifyContent: "center", - alignItems: "center", - flexGrow: 1, - flexWrap:"wrap" - }} - > - <Dropzone - /* style={{ - display: "flex", - justifyContent: "center", - alignItems: "center", - flexGrow: 1, - }} */ - localization={localization} - ></Dropzone> + {props.card ? ( + <div className="demo-localization-container-dz-fm"> + <div className="demo-localization-item"> + <FileInputButton + //style={{ width: "400px" }} + value={[]} + localization={localization} + ></FileInputButton> + </div> + + <div className="demo-localization-item"> + {extFiles.map((extFile, index) => ( + <FileCard + key={index} + {...extFile} + localization={localization} + onDelete={() => {}} + info + /> + ))} + </div> </div> - - <div - style={{ - display: "flex", - justifyContent: "center", - alignItems: "center", - flexGrow: 1, - flexWrap:"wrap" - }} - > - {extFiles.map((extFile, index) => ( - <FileMosaic - key={index} - {...extFile} + ) : ( + <div className="demo-localization-container-dz-fm"> + <div className="demo-localization-item"> + <Dropzone + value={extFiles} + accept={"image/*"} + maxFileSize={28*1024*1024} + maxFiles={10} + //style={{ width: "400px" }} localization={localization} - onDelete={() => {}} - info - /> - ))} + ></Dropzone> + </div> + + <div className="demo-localization-item"> + {extFiles.map((extFile, index) => ( + <FileMosaic + key={index} + {...extFile} + localization={localization} + onDelete={() => {}} + info + /> + ))} + </div> </div> - </div> + )} </> ); }; diff --git a/src/components/demo-components/filemosaic-demo/DemoLocalization.scss b/src/components/demo-components/filemosaic-demo/DemoLocalization.scss new file mode 100644 index 0000000..4961c50 --- /dev/null +++ b/src/components/demo-components/filemosaic-demo/DemoLocalization.scss @@ -0,0 +1,41 @@ +.demo-localization-container-dz-fm { + display: flex; + align-items: center; + justify-content: center; + gap: 10px; + + .demo-localization-item { + width: 50%; + display: flex; + align-items: center; + justify-content: center; + flex-wrap: wrap; + gap: 1px; + } + @media (max-width: 960px) { + flex-direction: column; + .demo-localization-item { + width: 100%; + } + } +} + +.demo-localization-container-fib-fc { + display: flex; + align-items: center; + flex-direction: column; + justify-content: center; + .demo-localization-item { + width: 50%; + display: flex; + align-items: center; + justify-content: center; + flex-wrap: wrap; + gap: 1px; + } + @media (max-width: 960px) { + .demo-localization-item { + width: 100%; + } + } +} diff --git a/src/components/switch/FileCardMosaicSwitch.jsx b/src/components/switch/FileCardMosaicSwitch.jsx index 9da2c23..8c21801 100644 --- a/src/components/switch/FileCardMosaicSwitch.jsx +++ b/src/components/switch/FileCardMosaicSwitch.jsx @@ -9,6 +9,7 @@ export default function FileCardMosaicSwitch({ value, onChange, withInput = false, + row = false, }) { //const [value, setValue] = React.useState('female'); @@ -25,7 +26,7 @@ export default function FileCardMosaicSwitch({ name="controlled-radio-buttons-group" value={value} onChange={handleChange} - row="horizontal" + row={row ? undefined : "horizontal"} > <FormControlLabel value="FileMosaic" diff --git a/src/pages/localization/LocalizationPage.jsx b/src/pages/localization/LocalizationPage.jsx index 35c82b1..33c7ec2 100644 --- a/src/pages/localization/LocalizationPage.jsx +++ b/src/pages/localization/LocalizationPage.jsx @@ -62,11 +62,12 @@ const LocalizationPage = (props) => { value={component} onChange={handleChangeComponent} withInput + row /> <Paper variant="outlined" style={{ - padding: "25px", + padding: "25px 10px", display: "flex", alignItems: "center", justifyContent: "center", -- GitLab