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

[WIP]: Add localization page completed. Missing to refactor FileCard and...

[WIP]: Add localization page completed. Missing to refactor FileCard and FIleMosaic to display info layer with localization. Also missing Avatar for localization
parent 7d5c0a7a
No related branches found
No related tags found
No related merge requests found
import * as React from "react"; import * as React from "react";
import ShowDemoCode from "../../show-demo-code/ShowDemoCode"; import ShowDemoCode from "../../show-demo-code/ShowDemoCode";
const CodeJSFileMosaicLocalization = (props) => { const CodeJSFileMosaicLocalization = ({ card }) => {
return ( return (
<ShowDemoCode <ShowDemoCode
codeCompleteJS={completeCodeJS} codeCompleteJS={completeCodeJS(card)}
codeCompleteTS={completeCodeTS} codeCompleteTS={completeCodeTS(card)}
codeSandboxJS="https://codesandbox.io/s/dropzone-ui-basic-3j01v" codeSandboxJS="https://codesandbox.io/s/dropzone-ui-basic-3j01v"
codeSandboxTS="https://codesandbox.io/s/dropzone-ui-basic-3j01v" codeSandboxTS="https://codesandbox.io/s/dropzone-ui-basic-3j01v"
codeSplittedJS={splittedCodeJS} codeSplittedJS={splittedCodeJS}
...@@ -18,18 +18,18 @@ export default CodeJSFileMosaicLocalization; ...@@ -18,18 +18,18 @@ export default CodeJSFileMosaicLocalization;
const splittedCodeJS = ``; const splittedCodeJS = ``;
const splittedCodeTS = ``; const splittedCodeTS = ``;
const completeCodeJS = (card) => `import * as React from "react";
const completeCodeJS = `import * as React from "react"; import { ${card ? "FileCard" : `FileMosaic`} } from "@files-ui/react";
import { FileMosaic } from "@files-ui/react"; import "./styles.css";
import { Autocomplete, TextField } from "@mui/material"; import { Autocomplete, TextField } from "@mui/material";
const DemoFileMosaicLocalization = () => { const App = () => {
const [localization, setLocalization] = React.useState(undefined); const [localization, setLocalization] = React.useState(undefined);
const hadleSelect = (value) => { const hadleSelect = (value) => {
console.log(value); console.log(value);
setLocalization(value?.value); setLocalization(value?.value);
}; };
return ( return (
<> <>
<Autocomplete <Autocomplete
...@@ -43,25 +43,48 @@ const DemoFileMosaicLocalization = () => { ...@@ -43,25 +43,48 @@ const DemoFileMosaicLocalization = () => {
getOptionLabel={(option) => option.language} getOptionLabel={(option) => option.language}
renderInput={(params) => <TextField {...params} label="Localization" />} renderInput={(params) => <TextField {...params} label="Localization" />}
/> />
<div ${
style={{ !card
display: "flex", ? `<div className="demo-localization-container">
flexWrap: "wrap", <div className="dropzone-filemosaic-container">
justifyContent: "space-evenly", <Dropzone
width: "100%", accept={"image/*"}
gap: "50px", maxFileSize={28 * 1024 * 1024}
}} maxFiles={10}
> localization={localization}
{extFiles.map((extFile, index) => ( ></Dropzone>
<FileMosaic </div>
key={index} <div className="dropzone-filemosaic-container">
{...extFile} {extFiles.map((extFile, index) => (
<FileMosaic
key={index}
{...extFile}
localization={localization}
onDelete={() => {}}
info
/>
))}
</div>
</div>`
: `<div className="demo-localization-container">
<div className="inputbutton-container">
<FileInputButton
localization={localization} localization={localization}
onDelete={() => {}} ></FileInputButton>
info </div>
/> <div className="filecard-container">
))} {extFiles.map((extFile, index) => (
</div> <FileCard
key={index}
{...extFile}
localization={localization}
onDelete={() => {}}
info
/>
))}
</div>
</div>`
}
</> </>
); );
}; };
...@@ -88,7 +111,6 @@ const extFiles = [ ...@@ -88,7 +111,6 @@ const extFiles = [
id: 1, id: 1,
valid: false, valid: false,
name: "file_localization.docx", name: "file_localization.docx",
size: 28 * 1024, size: 28 * 1024,
errors: ["pdf not allowed", "file is too big"], errors: ["pdf not allowed", "file is too big"],
}, },
...@@ -138,11 +160,14 @@ const extFiles = [ ...@@ -138,11 +160,14 @@ const extFiles = [
}, },
];`; ];`;
const completeCodeTS = `import * as React from "react"; const completeCodeTS = (card) => `import * as React from "react";
import { ExtFile, FileMosaic, Localization } from "@files-ui/react"; import { ExtFile, ${
card ? "FileCard" : `FileMosaic`
}, Localization } from "@files-ui/react";
import "./styles.css";
import { Autocomplete, TextField } from "@mui/material"; import { Autocomplete, TextField } from "@mui/material";
const DemoFileMosaicLocalization = () => { const App = () => {
const [localization, setLocalization] = React.useState< const [localization, setLocalization] = React.useState<
Localization | undefined Localization | undefined
>(undefined); >(undefined);
...@@ -150,7 +175,7 @@ const DemoFileMosaicLocalization = () => { ...@@ -150,7 +175,7 @@ const DemoFileMosaicLocalization = () => {
const hadleSelect = (value: LanguageItem | null) => { const hadleSelect = (value: LanguageItem | null) => {
console.log(value); console.log(value);
setLocalization(value?.value); setLocalization(value?.value);
}; };
return ( return (
<> <>
...@@ -165,25 +190,48 @@ const DemoFileMosaicLocalization = () => { ...@@ -165,25 +190,48 @@ const DemoFileMosaicLocalization = () => {
getOptionLabel={(option) => option.language} getOptionLabel={(option) => option.language}
renderInput={(params) => <TextField {...params} label="Localization" />} renderInput={(params) => <TextField {...params} label="Localization" />}
/> />
<div ${
style={{ !card
display: "flex", ? `<div className="demo-localization-container">
flexWrap: "wrap", <div className="dropzone-filemosaic-container">
justifyContent: "space-evenly", <Dropzone
width: "100%", accept={"image/*"}
gap: "50px", maxFileSize={28 * 1024 * 1024}
}} maxFiles={10}
> localization={localization}
{extFiles.map((extFile, index) => ( ></Dropzone>
<FileMosaic </div>
key={index} <div className="dropzone-filemosaic-container">
{...extFile} {extFiles.map((extFile, index) => (
<FileMosaic
key={index}
{...extFile}
localization={localization}
onDelete={() => {}}
info
/>
))}
</div>
</div>`
: `<div className="demo-localization-container">
<div className="inputbutton-container">
<FileInputButton
localization={localization} localization={localization}
onDelete={() => {}} ></FileInputButton>
info </div>
/> <div className="filecard-container">
))} {extFiles.map((extFile, index) => (
</div> <FileCard
key={index}
{...extFile}
localization={localization}
onDelete={() => {}}
info
/>
))}
</div>
</div>`
}
</> </>
); );
}; };
......
...@@ -8,7 +8,7 @@ import { ...@@ -8,7 +8,7 @@ import {
FileCard, FileCard,
} from "../../../files-ui"; } from "../../../files-ui";
import { Autocomplete, TextField } from "@mui/material"; import { Autocomplete, TextField } from "@mui/material";
import "./DemoLocalization.scss"; import "./DemoLocalization.css";
const DemoFileMosaicLocalization = (props: { card: boolean }) => { const DemoFileMosaicLocalization = (props: { card: boolean }) => {
const [localization, setLocalization] = React.useState< const [localization, setLocalization] = React.useState<
Localization | undefined Localization | undefined
...@@ -32,8 +32,8 @@ const DemoFileMosaicLocalization = (props: { card: boolean }) => { ...@@ -32,8 +32,8 @@ const DemoFileMosaicLocalization = (props: { card: boolean }) => {
renderInput={(params) => <TextField {...params} label="Localization" />} renderInput={(params) => <TextField {...params} label="Localization" />}
/> />
{props.card ? ( {props.card ? (
<div className="demo-localization-container-dz-fm"> <div className="demo-localization-container">
<div className="demo-localization-item"> <div className="inputbutton-container">
<FileInputButton <FileInputButton
//style={{ width: "400px" }} //style={{ width: "400px" }}
value={[]} value={[]}
...@@ -41,7 +41,7 @@ const DemoFileMosaicLocalization = (props: { card: boolean }) => { ...@@ -41,7 +41,7 @@ const DemoFileMosaicLocalization = (props: { card: boolean }) => {
></FileInputButton> ></FileInputButton>
</div> </div>
<div className="demo-localization-item"> <div className="filecard-container">
{extFiles.map((extFile, index) => ( {extFiles.map((extFile, index) => (
<FileCard <FileCard
key={index} key={index}
...@@ -54,19 +54,19 @@ const DemoFileMosaicLocalization = (props: { card: boolean }) => { ...@@ -54,19 +54,19 @@ const DemoFileMosaicLocalization = (props: { card: boolean }) => {
</div> </div>
</div> </div>
) : ( ) : (
<div className="demo-localization-container-dz-fm"> <div className="demo-localization-container">
<div className="demo-localization-item"> <div className="dropzone-filemosaic-container">
<Dropzone <Dropzone
value={extFiles} //value={[]}
accept={"image/*"} accept={"image/*"}
maxFileSize={28*1024*1024} maxFileSize={28 * 1024 * 1024}
maxFiles={10} maxFiles={10}
//style={{ width: "400px" }} //style={{ width: "400px" }}
localization={localization} localization={localization}
></Dropzone> ></Dropzone>
</div> </div>
<div className="demo-localization-item"> <div className="dropzone-filemosaic-container">
{extFiles.map((extFile, index) => ( {extFiles.map((extFile, index) => (
<FileMosaic <FileMosaic
key={index} key={index}
......
.demo-localization-container-dz-fm { .demo-localization-container {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
gap: 10px; gap: 10px;
min-height: 50vh;
}
.demo-localization-item { .dropzone-filemosaic-container {
width: 50%; width: 50%;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
flex-wrap: wrap; flex-wrap: wrap;
gap: 1px; gap: 1px;
}
@media (max-width: 960px) {
flex-direction: column;
.demo-localization-item {
width: 100%;
}
}
} }
.demo-localization-container-fib-fc { .inputbutton-container {
display: flex; width: 100px;
align-items: center; }
flex-direction: column;
justify-content: center; .filecard-container {
.demo-localization-item { gap: 10px;
width: 50%;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
flex-wrap: wrap; flex-wrap: wrap;
gap: 1px;
}
@media (max-width: 960px) {
.demo-localization-item {
width: 100%;
}
}
} }
@media (max-width: 960px) {
.demo-localization-container {
flex-direction: column;
}
.dropzone-filemosaic-container {
width: 100%;
}
.filecard-container {
width: 100%;
flex-direction: column;
}
}
\ No newline at end of file
...@@ -20,8 +20,8 @@ import CodeJSFileMosaicValidation from "../../components/demo-components/filemos ...@@ -20,8 +20,8 @@ import CodeJSFileMosaicValidation from "../../components/demo-components/filemos
import DemoFileMosaicValidation from "../../components/demo-components/filemosaic-demo/DemoFileMosaicValidation"; import DemoFileMosaicValidation from "../../components/demo-components/filemosaic-demo/DemoFileMosaicValidation";
import CodeJSFileMosaicUploadStatus from "../../components/demo-components/filemosaic-demo/CodeJSFileMosaicUploadStatus"; import CodeJSFileMosaicUploadStatus from "../../components/demo-components/filemosaic-demo/CodeJSFileMosaicUploadStatus";
import DemoFileMosaicUploadStatus from "../../components/demo-components/filemosaic-demo/DemoFileMosaicUploadStatus"; import DemoFileMosaicUploadStatus from "../../components/demo-components/filemosaic-demo/DemoFileMosaicUploadStatus";
import DemoFileMosaicLocalization from "../../components/demo-components/filemosaic-demo/DemoFileMosaicLocalization"; import DemoFileMosaicLocalization from "../../components/demo-components/localization/DemoFileMosaicLocalization";
import CodeJSFileMosaicLocalization from "../../components/demo-components/filemosaic-demo/CodeJSFileMosaicLocalization"; import CodeJSFileMosaicLocalization from "../../components/demo-components/localization/CodeJSFileMosaicLocalization";
import DemoFileMosaicDarkMode from "../../components/demo-components/filemosaic-demo/DemoFileMosaicDarkMode"; import DemoFileMosaicDarkMode from "../../components/demo-components/filemosaic-demo/DemoFileMosaicDarkMode";
import CodeJSFileMosaicDarkMode from "../../components/demo-components/filemosaic-demo/CodeJSFileMosaicDarkMode"; import CodeJSFileMosaicDarkMode from "../../components/demo-components/filemosaic-demo/CodeJSFileMosaicDarkMode";
import DemoFileMosaicFileIcons from "../../components/demo-components/filemosaic-demo/DemoFileMosaicFileIcons"; import DemoFileMosaicFileIcons from "../../components/demo-components/filemosaic-demo/DemoFileMosaicFileIcons";
......
...@@ -8,13 +8,12 @@ import MainTitle from "../../components/main-title/MainTitle"; ...@@ -8,13 +8,12 @@ import MainTitle from "../../components/main-title/MainTitle";
import MainParagraph from "../../components/paragraph-main/MainParagraph"; import MainParagraph from "../../components/paragraph-main/MainParagraph";
import RightMenu from "../../components/RightMenu/RightMenu"; import RightMenu from "../../components/RightMenu/RightMenu";
import Paper from "@mui/material/Paper"; import Paper from "@mui/material/Paper";
import DemoFileMosaicFileIcons from "../../components/demo-components/filemosaic-demo/DemoFileMosaicFileIcons";
import MainLayoutPage from "../../components/layout-pages/MainLayoutPage"; import MainLayoutPage from "../../components/layout-pages/MainLayoutPage";
import AnchorToTab from "../../components/util-components/AnchorToTab"; // import AnchorToTab from "../../components/util-components/AnchorToTab";
import FileCardMosaicSwitch from "../../components/switch/FileCardMosaicSwitch"; import FileCardMosaicSwitch from "../../components/switch/FileCardMosaicSwitch";
import TypeHighlight from "../../components/typeHighlight/TypeHighlight"; import TypeHighlight from "../../components/typeHighlight/TypeHighlight";
import DemoFileMosaicLocalization from "../../components/demo-components/filemosaic-demo/DemoFileMosaicLocalization"; import DemoFileMosaicLocalization from "../../components/demo-components/localization/DemoFileMosaicLocalization";
import CodeJSFileMosaicLocalization from "../../components/demo-components/filemosaic-demo/CodeJSFileMosaicLocalization"; import CodeJSFileMosaicLocalization from "../../components/demo-components/localization/CodeJSFileMosaicLocalization";
const LocalizationPage = (props) => { const LocalizationPage = (props) => {
const [component, setComponent] = React.useState("FileMosaic"); const [component, setComponent] = React.useState("FileMosaic");
...@@ -34,11 +33,11 @@ const LocalizationPage = (props) => { ...@@ -34,11 +33,11 @@ const LocalizationPage = (props) => {
locales, follow the instructions below. locales, follow the instructions below.
</MainParagraph> </MainParagraph>
<section id="locale-text"> <section id="locale-texts">
<SubTitle content="Locale texts" /> <SubTitle content="Locale texts" />
<DescParagraph> <DescParagraph>
Files UI components have multilanguage support. You can change the Files UI components have multilanguage support. You can change the
language in wich labels are displayed by setting the{" "} language in wich the labels are displayed by setting the{" "}
<CodeHighlight>{"localization"}</CodeHighlight> prop. So far only <CodeHighlight>{"localization"}</CodeHighlight> prop. So far only
the following languages are supported: the following languages are supported:
<ul> <ul>
...@@ -53,7 +52,7 @@ const LocalizationPage = (props) => { ...@@ -53,7 +52,7 @@ const LocalizationPage = (props) => {
"Chinnese (traditional)", "Chinnese (traditional)",
].map((x) => ( ].map((x) => (
<li> <li>
<TypeHighlight>{x}</TypeHighlight> <TypeHighlight key={x}>{x}</TypeHighlight>
</li> </li>
))} ))}
</ul> </ul>
...@@ -93,7 +92,7 @@ export default LocalizationPage; ...@@ -93,7 +92,7 @@ export default LocalizationPage;
const rightMenuItems = [ const rightMenuItems = [
{ {
id: 0, id: 0,
label: "Complete list", label: "Locale texts",
referTo: "/file-icons#complete-list", referTo: "/file-icons#locale-texts",
}, },
]; ];
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment