Przeglądaj źródła

responsive design for page with files

FE_dev
Dzenis Hadzifejzovic 2 lat temu
rodzic
commit
bf4f3dd7da

+ 39
- 9
src/assets/styles/components/_files.scss Wyświetl plik

align-self: flex-start; align-self: flex-start;
} }


// .document-container p {
// word-wrap: break-word !important;
// }
.pdf-canvas canvas{
width: 100% !important;
}

.pg-viewer-wrapper .document-container{
width: 100% !important;
background: none;
}


// .table-cont #docx .document-container {
// width: 400px !important;
// }
.document-container{
height: 100%;
}


.files-page-categories { .files-page-categories {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
} }


.files-page-categories-responsive{
display: flex;
flex-wrap: wrap;
}

.files-page-categories > :first-child { .files-page-categories > :first-child {
padding: 16px 16px 16px 0px !important; padding: 16px 16px 16px 0px !important;
} }


.files-page-categories-responsive > :first-child {
padding: 0px !important;
}

.files-page-categories-category { .files-page-categories-category {
width: calc(100% / 6) !important; width: calc(100% / 6) !important;
margin: 0 !important; margin: 0 !important;
padding: 16px; padding: 16px;
} }


.files-page-categories-category-responsive {
width: calc(100% / 3) !important;
margin: 0 !important;
padding: 0px;
}

.files-page-category-button { .files-page-category-button {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
justify-content: flex-start; justify-content: flex-start;
align-items: center; align-items: center;
padding: 18px 72px;
gap: 10px;
// padding: 18px 72px;
// gap: 10px;
// width: 100%;
// height: 100%;
padding: 12px 52px;
gap: 5px;
width: 100%; width: 100%;
height: 100%; height: 100%;
background: #226cb0; background: #226cb0;
border-radius: 9px; border-radius: 9px;
@include media-below($bp-xl) { @include media-below($bp-xl) {
width: 147px;
width: 85px;
} }
} }


.files-category-custom-modal-buttons button { .files-category-custom-modal-buttons button {
margin-left: 8px; margin-left: 8px;
} }

.files-button-responsive {
gap: 5px;
width: 105px;
height: 31px;
}

+ 17
- 12
src/pages/FilesPage/FileTable.js Wyświetl plik

import { FETCH_FILES_LOADING } from "../../store/actions/files/fileActionConstants"; import { FETCH_FILES_LOADING } from "../../store/actions/files/fileActionConstants";
import { useParams } from "react-router"; import { useParams } from "react-router";
import { PAGE_SIZE_FILES } from "../../constants/keyCodeConstants"; import { PAGE_SIZE_FILES } from "../../constants/keyCodeConstants";
import { useTheme } from "@mui/system";
import { useMediaQuery } from "@mui/material";


const FileTable = ({ trigger }) => { const FileTable = ({ trigger }) => {
const [file, setFile] = useState(null); const [file, setFile] = useState(null);
}); });
const { t } = useTranslation(); const { t } = useTranslation();
const dispatch = useDispatch(); const dispatch = useDispatch();
const theme = useTheme();
const matches = useMediaQuery(theme.breakpoints.down("370"));


useEffect(() => { useEffect(() => {
if (data !== null && data.data !== undefined) { if (data !== null && data.data !== undefined) {
onChange={(e) => handleChangeContent(e.target.value)} onChange={(e) => handleChangeContent(e.target.value)}
onKeyDown={handleKeyDown} onKeyDown={handleKeyDown}
className="candidate-search-field" className="candidate-search-field"
style={{ width: matches ? "160px" : "816px" }}
onClick={stopPropagation} onClick={stopPropagation}
role="input" role="input"
/> />
display: "flex", display: "flex",
justifyContent: "space-between", justifyContent: "space-between",
position: "relative", position: "relative",
width: "calc(100% - 144px)",
}} }}
> >
<div>
<div style={{ width: "fit-content" }}>
<Fade in={isSearchFieldVisible} timeout={500} className="proba"> <Fade in={isSearchFieldVisible} timeout={500} className="proba">
{input} {input}
</Fade> </Fade>
className="c-btn c-btn--primary-outlined candidate-btn search-field userPageBtn ml-20px no-padding custom-filter-button" className="c-btn c-btn--primary-outlined candidate-btn search-field userPageBtn ml-20px no-padding custom-filter-button"
onClick={() => setIsSearchFieldVisible(true)} onClick={() => setIsSearchFieldVisible(true)}
> >
{t("candidates.search")}
{!matches ? t("candidates.search") : null}
<img <img
src={searchImage} src={searchImage}
alt="filter" alt="filter"
className="candidates-image" className="candidates-image"
style={{ marginLeft: matches ? "0px" : "10px" }}
/> />
</IconButton> </IconButton>
)} )}
style={{ style={{
display: "flex", display: "flex",
marginTop: "39px", marginTop: "39px",
flexDirection: "column",
justifyContent: "space-between", justifyContent: "space-between",
minHeight: "500px", minHeight: "500px",
width: "100%",
}} }}
> >
<div className="table-cont">
<div style={{ display: "flex", flexDirection: "column" }}>
<div <div
className="table-cont"
style={{ style={{
display: "flex", display: "flex",
height: "300px",
width: "calc(100% - 144px)",
width: matches ? "75vw" : "85vw",
height: "330px",
flexDirection: "row",
}} }}
> >
<table <table
className={"usersTable-users mini"} className={"usersTable-users mini"}
style={{ style={{
width: file === null ? "100%" : "400px",
height: "50%",
width: file === null ? "100%" : "360px",
overflowX: "visible",
}} }}
> >
<thead> <thead>
{file !== null ? ( {file !== null ? (
<div <div
style={{ style={{
width: "830px",
width: "100%",
marginLeft: "30px", marginLeft: "30px",
overflowY: "visible",
overflowY: "auto",
}} }}
> >
<FileViewer <FileViewer

+ 26
- 6
src/pages/FilesPage/FilesPage.js Wyświetl plik

import xIcon from "../../assets/images/x.png"; import xIcon from "../../assets/images/x.png";
import plusIcon from "../../assets/images/plus.png"; import plusIcon from "../../assets/images/plus.png";
import Button from "../../components/Button/Button"; import Button from "../../components/Button/Button";
import { useTheme } from "@mui/system";
import { useMediaQuery } from "@mui/material";


const FilesPage = ({ history }) => { const FilesPage = ({ history }) => {
const categories = useSelector(selectCategories); const categories = useSelector(selectCategories);
const [openCreateCategoryModal, setOpenCreateCategoryModal] = useState(false); const [openCreateCategoryModal, setOpenCreateCategoryModal] = useState(false);
const [createCategoryName, setCreateCategoryName] = useState(""); const [createCategoryName, setCreateCategoryName] = useState("");
let { id } = useParams(); let { id } = useParams();
const theme = useTheme();
const matches = useMediaQuery(theme.breakpoints.down("370"));


useEffect(() => { useEffect(() => {
if (id === undefined) { if (id === undefined) {
setTrigger((trigger) => trigger + 1); setTrigger((trigger) => trigger + 1);
}} }}
> >
<div style={{ marginBottom: "50px" }}>
<div style={{ marginBottom: matches ? "20px" : "50px" }}>
<div style={{ marginBottom: "30px" }}> <div style={{ marginBottom: "30px" }}>
<div <div
style={{ style={{
<h1 className="page-heading">Folderi</h1> <h1 className="page-heading">Folderi</h1>
<div className="add-categories-files"> <div className="add-categories-files">
<IconButton <IconButton
className="c-btn ads-page-btn c-btn--primary add-ad-btn filesPage"
className={
`c-btn ads-page-btn c-btn--primary filesPage ` +
(matches ? "files-button-responsive" : "add-ad-btn")
}
onClick={() => history.push(ADD_FILE)} onClick={() => history.push(ADD_FILE)}
> >
+ Fajl + Fajl
</IconButton> </IconButton>
<IconButton <IconButton
className="c-btn ads-page-btn c-btn--primary add-ad-btn filesPage"
className={
`c-btn ads-page-btn c-btn--primary filesPage ` +
(matches ? "files-button-responsive" : "add-ad-btn")
}
onClick={changeOpenCreateCategoryModal} onClick={changeOpenCreateCategoryModal}
> >
+ Kategorija + Kategorija
marginLeft: "10px", marginLeft: "10px",
}} }}
> >
&gt;
&gt; &nbsp;
</span> </span>
<div <div
className="files-file-routing" className="files-file-routing"
</div> </div>
<ColoredLine /> <ColoredLine />
</div> </div>
<div className="files-page-categories">
<div
className={
matches
? "files-page-categories-responsive"
: "files-page-categories"
}
>
{categories && {categories &&
categories.map((category) => ( categories.map((category) => (
<div <div
className="files-page-categories-category"
className={
matches
? "files-page-categories-category-responsive"
: "files-page-categories-category"
}
key={category.id} key={category.id}
> >
<IconButton <IconButton

Ładowanie…
Anuluj
Zapisz