New fleet code
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
PUBLIC_URL=http://localhost:3000/
|
||||
PORT=3000
|
||||
PRIMARY_APP_API_URL=https://preview.keenthemes.com/metronic8/laravel/api
|
||||
REACT_APP_BASE_LAYOUT_CONFIG_KEY='metronic-react-demo1-8150'
|
||||
REACT_APP_API_URL=https://preview.keenthemes.com/metronic8/laravel/api
|
||||
REACT_APP_VERSION=v8.1.5
|
||||
REACT_APP_THEME_NAME=WrenchBoard
|
||||
REACT_APP_THEME_DEMO=dashboard
|
||||
REACT_APP_BOOTSTRAP_DOCS_LINK=https://getbootstrap.com/docs/5.0
|
||||
REACT_APP_SASS_PATH=src/_metronic/assets/sass/core/components
|
||||
REACT_APP_SASS_VARIABLES_PATH=src/_metronic/assets/sass/core/components/_variables.scss
|
||||
REACT_APP_PURCHASE_URL=https://themeforest.net/item/metronic-responsive-admin-dashboard-template/4021469
|
||||
REACT_APP_PREVIEW_URL=https://preview.keenthemes.com/metronic8/react/demo1/
|
||||
REACT_APP_PREVIEW_REACT_URL=https://preview.keenthemes.com/metronic8/react
|
||||
REACT_APP_PREVIEW_DOCS_URL=https://preview.keenthemes.com/metronic8/react/docs
|
||||
REACT_APP_THEME_API_URL=https://preview.keenthemes.com/theme-api/api
|
||||
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"extends": "next/core-web-vitals"
|
||||
}
|
||||
+13
-17
@@ -4,33 +4,29 @@
|
||||
/node_modules
|
||||
/.pnp
|
||||
.pnp.js
|
||||
|
||||
.idea
|
||||
# testing
|
||||
/coverage
|
||||
|
||||
# next.js
|
||||
/.next/
|
||||
/out/
|
||||
|
||||
# production
|
||||
/build
|
||||
|
||||
# misc
|
||||
.DS_Store
|
||||
*.pem
|
||||
.env.local
|
||||
.env.development.local
|
||||
.env.test.local
|
||||
.env.production.local
|
||||
|
||||
# debug
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
.pnpm-debug.log*
|
||||
|
||||
# local env files
|
||||
.env*.local
|
||||
|
||||
# vercel
|
||||
.vercel
|
||||
|
||||
# typescript
|
||||
*.tsbuildinfo
|
||||
next-env.d.ts
|
||||
# Editor directories and files
|
||||
.idea
|
||||
.vscode
|
||||
*.suo
|
||||
*.ntvs*
|
||||
*.njsproj
|
||||
*.sln
|
||||
*.sw?
|
||||
|
||||
Generated
-8
@@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="WEB_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
-6
@@ -1,6 +0,0 @@
|
||||
<component name="InspectionProjectProfileManager">
|
||||
<profile version="1.0">
|
||||
<option name="myName" value="Project Default" />
|
||||
<inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
|
||||
</profile>
|
||||
</component>
|
||||
Generated
+1
-1
@@ -2,7 +2,7 @@
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/fleet-float.iml" filepath="$PROJECT_DIR$/.idea/fleet-float.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/float-users.iml" filepath="$PROJECT_DIR$/.idea/float-users.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
||||
@@ -0,0 +1,4 @@
|
||||
node_modules
|
||||
build
|
||||
coverage
|
||||
.vscode
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"printWidth": 100,
|
||||
"trailingComma": "es5",
|
||||
"tabWidth": 2,
|
||||
"semi": false,
|
||||
"singleQuote": true,
|
||||
"bracketSpacing": false,
|
||||
"jsxBracketSameLine": false,
|
||||
"arrowParens": "always",
|
||||
"endOfLine": "auto",
|
||||
"jsxSingleQuote": true,
|
||||
"proseWrap": "preserve",
|
||||
"quoteProps": "as-needed",
|
||||
"useTabs": false,
|
||||
"htmlWhitespaceSensitivity": "css"
|
||||
}
|
||||
@@ -1,34 +1,46 @@
|
||||
This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).
|
||||
# Getting Started with Create React App
|
||||
|
||||
## Getting Started
|
||||
This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
|
||||
|
||||
First, run the development server:
|
||||
## Available Scripts
|
||||
|
||||
```bash
|
||||
npm run dev
|
||||
# or
|
||||
yarn dev
|
||||
```
|
||||
In the project directory, you can run:
|
||||
|
||||
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
|
||||
### `yarn start`
|
||||
|
||||
You can start editing the page by modifying `pages/index.js`. The page auto-updates as you edit the file.
|
||||
Runs the app in the development mode.\
|
||||
Open [http://localhost:3000](http://localhost:3000) to view it in the browser.
|
||||
|
||||
[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.js`.
|
||||
The page will reload if you make edits.\
|
||||
You will also see any lint errors in the console.
|
||||
|
||||
The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages.
|
||||
### `yarn test`
|
||||
|
||||
Launches the test runner in the interactive watch mode.\
|
||||
See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
|
||||
|
||||
### `yarn build`
|
||||
|
||||
Builds the app for production to the `build` folder.\
|
||||
It correctly bundles React in production mode and optimizes the build for the best performance.
|
||||
|
||||
The build is minified and the filenames include the hashes.\
|
||||
Your app is ready to be deployed!
|
||||
|
||||
See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
|
||||
|
||||
### `yarn eject`
|
||||
|
||||
**Note: this is a one-way operation. Once you `eject`, you can’t go back!**
|
||||
|
||||
If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
|
||||
|
||||
Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.
|
||||
|
||||
You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.
|
||||
|
||||
## Learn More
|
||||
|
||||
To learn more about Next.js, take a look at the following resources:
|
||||
You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
|
||||
|
||||
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
|
||||
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
|
||||
|
||||
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
|
||||
|
||||
## Deploy on Vercel
|
||||
|
||||
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
|
||||
|
||||
Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
|
||||
To learn React, check out the [React documentation](https://reactjs.org/).
|
||||
|
||||
@@ -1,575 +0,0 @@
|
||||
import * as React from "react";
|
||||
import { Box, Typography } from "@mui/material";
|
||||
import Card from "@mui/material/Card";
|
||||
import PropTypes from "prop-types";
|
||||
import { useTheme } from "@mui/material/styles";
|
||||
import Table from "@mui/material/Table";
|
||||
import TableHead from "@mui/material/TableHead";
|
||||
import TableBody from "@mui/material/TableBody";
|
||||
import TableCell from "@mui/material/TableCell";
|
||||
import TableContainer from "@mui/material/TableContainer";
|
||||
import TableFooter from "@mui/material/TableFooter";
|
||||
import TablePagination from "@mui/material/TablePagination";
|
||||
import TableRow from "@mui/material/TableRow";
|
||||
import Paper from "@mui/material/Paper";
|
||||
import IconButton from "@mui/material/IconButton";
|
||||
import FirstPageIcon from "@mui/icons-material/FirstPage";
|
||||
import KeyboardArrowLeft from "@mui/icons-material/KeyboardArrowLeft";
|
||||
import KeyboardArrowRight from "@mui/icons-material/KeyboardArrowRight";
|
||||
import LastPageIcon from "@mui/icons-material/LastPage";
|
||||
import Tooltip from "@mui/material/Tooltip";
|
||||
import DeleteIcon from "@mui/icons-material/Delete";
|
||||
import DriveFileRenameOutlineIcon from "@mui/icons-material/DriveFileRenameOutline";
|
||||
import Checkbox from "@mui/material/Checkbox";
|
||||
|
||||
const label = { inputProps: { "aria-label": "Checkbox demo" } };
|
||||
|
||||
function CustomersDetail(props) {
|
||||
const theme = useTheme();
|
||||
const { count, page, rowsPerPage, onPageChange } = props;
|
||||
|
||||
const handleFirstPageButtonClick = (event) => {
|
||||
onPageChange(event, 0);
|
||||
};
|
||||
|
||||
const handleBackButtonClick = (event) => {
|
||||
onPageChange(event, page - 1);
|
||||
};
|
||||
|
||||
const handleNextButtonClick = (event) => {
|
||||
onPageChange(event, page + 1);
|
||||
};
|
||||
|
||||
const handleLastPageButtonClick = (event) => {
|
||||
onPageChange(event, Math.max(0, Math.ceil(count / rowsPerPage) - 1));
|
||||
};
|
||||
|
||||
return (
|
||||
<Box sx={{ flexShrink: 0, ml: 2.5 }}>
|
||||
<IconButton
|
||||
onClick={handleFirstPageButtonClick}
|
||||
disabled={page === 0}
|
||||
aria-label="first page"
|
||||
>
|
||||
{theme.direction === "rtl" ? <LastPageIcon /> : <FirstPageIcon />}
|
||||
</IconButton>
|
||||
<IconButton
|
||||
onClick={handleBackButtonClick}
|
||||
disabled={page === 0}
|
||||
aria-label="previous page"
|
||||
>
|
||||
{theme.direction === "rtl" ? (
|
||||
<KeyboardArrowRight />
|
||||
) : (
|
||||
<KeyboardArrowLeft />
|
||||
)}
|
||||
</IconButton>
|
||||
<IconButton
|
||||
onClick={handleNextButtonClick}
|
||||
disabled={page >= Math.ceil(count / rowsPerPage) - 1}
|
||||
aria-label="next page"
|
||||
>
|
||||
{theme.direction === "rtl" ? (
|
||||
<KeyboardArrowLeft />
|
||||
) : (
|
||||
<KeyboardArrowRight />
|
||||
)}
|
||||
</IconButton>
|
||||
<IconButton
|
||||
onClick={handleLastPageButtonClick}
|
||||
disabled={page >= Math.ceil(count / rowsPerPage) - 1}
|
||||
aria-label="last page"
|
||||
>
|
||||
{theme.direction === "rtl" ? <FirstPageIcon /> : <LastPageIcon />}
|
||||
</IconButton>
|
||||
</Box>
|
||||
);
|
||||
}
|
||||
|
||||
CustomersDetail.propTypes = {
|
||||
count: PropTypes.number.isRequired,
|
||||
onPageChange: PropTypes.func.isRequired,
|
||||
page: PropTypes.number.isRequired,
|
||||
rowsPerPage: PropTypes.number.isRequired,
|
||||
};
|
||||
|
||||
function createData(
|
||||
name,
|
||||
userName,
|
||||
image,
|
||||
email,
|
||||
rolls,
|
||||
status,
|
||||
badgeClass,
|
||||
projects
|
||||
) {
|
||||
return {
|
||||
name,
|
||||
userName,
|
||||
image,
|
||||
email,
|
||||
rolls,
|
||||
status,
|
||||
badgeClass,
|
||||
projects,
|
||||
};
|
||||
}
|
||||
|
||||
const rows = [
|
||||
createData(
|
||||
"Evangelina Mcclain",
|
||||
"@jstevenson5c",
|
||||
"/images/user1.png",
|
||||
"jordansteve@gmail.com",
|
||||
"Agent",
|
||||
"Active",
|
||||
"successBadge",
|
||||
"165"
|
||||
),
|
||||
createData(
|
||||
"Candice Munoz",
|
||||
"@candice3unoz",
|
||||
"/images/user2.png",
|
||||
"candicemunoz@gmail.com",
|
||||
"Administrator",
|
||||
"Active",
|
||||
"successBadge",
|
||||
"120"
|
||||
),
|
||||
createData(
|
||||
"Mike Mcclain",
|
||||
"@mike4mcclain",
|
||||
"/images/user3.png",
|
||||
"mikemcclain@gmail.com",
|
||||
"Contributor",
|
||||
"Active",
|
||||
"successBadge",
|
||||
"220"
|
||||
),
|
||||
createData(
|
||||
"Bernard Langley",
|
||||
"@bernardlangley",
|
||||
"/images/user4.png",
|
||||
"bernardlangley@gmail.com",
|
||||
"Agent",
|
||||
"Deactive",
|
||||
"dangerBadge",
|
||||
"122"
|
||||
),
|
||||
createData(
|
||||
"Kristie Hall",
|
||||
"@kristie7hall",
|
||||
"/images/user5.png",
|
||||
"kristiehall@gmail.com",
|
||||
"Contributor",
|
||||
"Active",
|
||||
"successBadge",
|
||||
"360"
|
||||
),
|
||||
createData(
|
||||
"Bolton Obrien",
|
||||
"@bolton4obrien",
|
||||
"/images/user6.png",
|
||||
"boltonobrien@gmail.com",
|
||||
"Administrator",
|
||||
"Active",
|
||||
"successBadge",
|
||||
"250"
|
||||
),
|
||||
createData(
|
||||
"Dee Alvarado",
|
||||
"@dee3alvarado",
|
||||
"/images/user7.png",
|
||||
"deealvarado@gmail.com",
|
||||
"Agent",
|
||||
"Active",
|
||||
"successBadge",
|
||||
"140"
|
||||
),
|
||||
createData(
|
||||
"Cervantes Kramer",
|
||||
"@cervantes4kramer",
|
||||
"/images/user8.png",
|
||||
"cervantes4kramer@gmail.com",
|
||||
"Agent",
|
||||
"Active",
|
||||
"successBadge",
|
||||
"345"
|
||||
),
|
||||
createData(
|
||||
"Dejesus Michael",
|
||||
"@dejesus1michael",
|
||||
"/images/user9.png",
|
||||
"dejesusmichael@gmail.com",
|
||||
"Agent",
|
||||
"Active",
|
||||
"successBadge",
|
||||
"323"
|
||||
),
|
||||
createData(
|
||||
"Alissa Nelson",
|
||||
"@alissa1nelson",
|
||||
"/images/user10.png",
|
||||
"alissa1nelson@gmail.com",
|
||||
"Agent",
|
||||
"Deactive",
|
||||
"dangerBadge",
|
||||
"451"
|
||||
),
|
||||
createData(
|
||||
"Milton",
|
||||
"@milton",
|
||||
"/images/user11.png",
|
||||
"milton@gmail.com",
|
||||
"Agent",
|
||||
"Active",
|
||||
"successBadge",
|
||||
"432"
|
||||
),
|
||||
createData(
|
||||
"Claude",
|
||||
"@claude",
|
||||
"/images/user12.png",
|
||||
"claude@gmail.com",
|
||||
"Agent",
|
||||
"Deactive",
|
||||
"dangerBadge",
|
||||
"543"
|
||||
),
|
||||
createData(
|
||||
"Joshua",
|
||||
"@joshua",
|
||||
"/images/user13.png",
|
||||
"joshua@gmail.com",
|
||||
"Agent",
|
||||
"Active",
|
||||
"successBadge",
|
||||
"543"
|
||||
),
|
||||
createData(
|
||||
"Harvey",
|
||||
"@harvey",
|
||||
"/images/user14.png",
|
||||
"harvey@gmail.com",
|
||||
"Agent",
|
||||
"Deactive",
|
||||
"dangerBadge",
|
||||
"432"
|
||||
),
|
||||
createData(
|
||||
"Antonio",
|
||||
"@antonio",
|
||||
"/images/user15.png",
|
||||
"antonio@gmail.com",
|
||||
"Agent",
|
||||
"Active",
|
||||
"successBadge",
|
||||
"765"
|
||||
),
|
||||
createData(
|
||||
"Julian",
|
||||
"@julian",
|
||||
"/images/user16.png",
|
||||
"julian@gmail.com",
|
||||
"Agent",
|
||||
"Active",
|
||||
"successBadge",
|
||||
"678"
|
||||
),
|
||||
createData(
|
||||
"Harold",
|
||||
"@harold",
|
||||
"/images/user17.png",
|
||||
"harold@gmail.com",
|
||||
"Agent",
|
||||
"Deactive",
|
||||
"dangerBadge",
|
||||
"165"
|
||||
),
|
||||
createData(
|
||||
"Kingston",
|
||||
"@kingston",
|
||||
"/images/user18.png",
|
||||
"kingston@info.com",
|
||||
"Agent",
|
||||
"Active",
|
||||
"successBadge",
|
||||
"165"
|
||||
),
|
||||
].sort((a, b) => (a.name < b.name ? -1 : 1));
|
||||
|
||||
export default function CustomersDetails() {
|
||||
// Table
|
||||
const [page, setPage] = React.useState(0);
|
||||
const [rowsPerPage, setRowsPerPage] = React.useState(10);
|
||||
|
||||
// Avoid a layout jump when reaching the last page with empty rows.
|
||||
const emptyRows =
|
||||
page > 0 ? Math.max(0, (1 + page) * rowsPerPage - rows.length) : 0;
|
||||
|
||||
const handleChangePage = (event, newPage) => {
|
||||
setPage(newPage);
|
||||
};
|
||||
|
||||
const handleChangeRowsPerPage = (event) => {
|
||||
setRowsPerPage(parseInt(event.target.value, 10));
|
||||
setPage(0);
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "25px 20px 15px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
borderBottom: "1px solid #EEF0F7",
|
||||
paddingBottom: "10px",
|
||||
mb: "20px",
|
||||
}}
|
||||
className="for-dark-bottom-border"
|
||||
>
|
||||
<Typography
|
||||
as="h3"
|
||||
sx={{
|
||||
fontSize: 18,
|
||||
fontWeight: 500,
|
||||
}}
|
||||
>
|
||||
Customers Details
|
||||
</Typography>
|
||||
</Box>
|
||||
|
||||
<TableContainer
|
||||
component={Paper}
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
}}
|
||||
>
|
||||
<Table
|
||||
sx={{ minWidth: 900 }}
|
||||
aria-label="custom pagination table"
|
||||
className="dark-table"
|
||||
>
|
||||
<TableHead sx={{ background: "#F7FAFF" }}>
|
||||
<TableRow>
|
||||
<TableCell
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
Name
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
Email
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
Rolls
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
Status
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
Projects
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="right"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
Action
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
</TableHead>
|
||||
|
||||
<TableBody>
|
||||
{(rowsPerPage > 0
|
||||
? rows.slice(
|
||||
page * rowsPerPage,
|
||||
page * rowsPerPage + rowsPerPage
|
||||
)
|
||||
: rows
|
||||
).map((row) => (
|
||||
<TableRow key={row.name}>
|
||||
<TableCell
|
||||
style={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
paddingTop: "13px",
|
||||
paddingBottom: "13px",
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
}}
|
||||
>
|
||||
<Checkbox {...label} size="small" />
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
ml: "10px",
|
||||
}}
|
||||
>
|
||||
<img
|
||||
src={row.image}
|
||||
alt="User"
|
||||
width={40}
|
||||
height={40}
|
||||
className="borRadius100"
|
||||
/>
|
||||
<Box className="ml-10px">
|
||||
<Typography
|
||||
as="h4"
|
||||
sx={{
|
||||
fontWeight: "500",
|
||||
fontSize: "13.5px",
|
||||
}}
|
||||
>
|
||||
{row.name}
|
||||
</Typography>
|
||||
|
||||
<Typography
|
||||
sx={{
|
||||
fontSize: "12px",
|
||||
color: "#A9A9C8",
|
||||
}}
|
||||
>
|
||||
{row.userName}
|
||||
</Typography>
|
||||
</Box>
|
||||
</Box>
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
style={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13px",
|
||||
paddingTop: "13px",
|
||||
paddingBottom: "13px",
|
||||
}}
|
||||
>
|
||||
{row.email}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
style={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
paddingTop: "13px",
|
||||
paddingBottom: "13px",
|
||||
fontSize: "13px",
|
||||
}}
|
||||
>
|
||||
{row.rolls}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{
|
||||
fontWeight: 500,
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "12px",
|
||||
padding: "8px 10px",
|
||||
}}
|
||||
>
|
||||
<span className={row.badgeClass}>{row.status}</span>
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
style={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
paddingTop: "13px",
|
||||
paddingBottom: "13px",
|
||||
fontSize: "13px",
|
||||
}}
|
||||
>
|
||||
{row.projects}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="right"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF" }}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "inline-block",
|
||||
}}
|
||||
>
|
||||
<Tooltip title="Remove" placement="top">
|
||||
<IconButton
|
||||
aria-label="remove"
|
||||
size="small"
|
||||
color="danger"
|
||||
className="danger"
|
||||
>
|
||||
<DeleteIcon fontSize="inherit" />
|
||||
</IconButton>
|
||||
</Tooltip>
|
||||
|
||||
<Tooltip title="Rename" placement="top">
|
||||
<IconButton
|
||||
aria-label="rename"
|
||||
size="small"
|
||||
color="primary"
|
||||
className="primary"
|
||||
>
|
||||
<DriveFileRenameOutlineIcon fontSize="inherit" />
|
||||
</IconButton>
|
||||
</Tooltip>
|
||||
</Box>
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
))}
|
||||
|
||||
{emptyRows > 0 && (
|
||||
<TableRow style={{ height: 53 * emptyRows }}>
|
||||
<TableCell
|
||||
colSpan={5}
|
||||
style={{ borderBottom: "1px solid #F7FAFF" }}
|
||||
/>
|
||||
</TableRow>
|
||||
)}
|
||||
</TableBody>
|
||||
|
||||
<TableFooter>
|
||||
<TableRow>
|
||||
<TablePagination
|
||||
rowsPerPageOptions={[5, 10, 25, { label: "All", value: -1 }]}
|
||||
colSpan={8}
|
||||
count={rows.length}
|
||||
rowsPerPage={rowsPerPage}
|
||||
page={page}
|
||||
SelectProps={{
|
||||
inputProps: {
|
||||
"aria-label": "rows per page",
|
||||
},
|
||||
native: true,
|
||||
}}
|
||||
onPageChange={handleChangePage}
|
||||
onRowsPerPageChange={handleChangeRowsPerPage}
|
||||
ActionsComponent={CustomersDetail}
|
||||
style={{ borderBottom: "none" }}
|
||||
/>
|
||||
</TableRow>
|
||||
</TableFooter>
|
||||
</Table>
|
||||
</TableContainer>
|
||||
</Card>
|
||||
</>
|
||||
);
|
||||
}
|
||||
@@ -1,132 +0,0 @@
|
||||
import React from "react";
|
||||
import Grid from "@mui/material/Grid";
|
||||
import Card from "@mui/material/Card";
|
||||
import Box from "@mui/material/Box";
|
||||
import Typography from "@mui/material/Typography";
|
||||
import { BarChart, Bar, XAxis, Tooltip, ResponsiveContainer } from "recharts";
|
||||
|
||||
const data = [
|
||||
{
|
||||
name: "Sat",
|
||||
income: 24,
|
||||
},
|
||||
{
|
||||
name: "Sun",
|
||||
income: 13,
|
||||
},
|
||||
{
|
||||
name: "Mon",
|
||||
income: 98,
|
||||
},
|
||||
{
|
||||
name: "Tue",
|
||||
income: 39,
|
||||
},
|
||||
{
|
||||
name: "Wed",
|
||||
income: 48,
|
||||
},
|
||||
{
|
||||
name: "Thu",
|
||||
income: 38,
|
||||
},
|
||||
{
|
||||
name: "Fri",
|
||||
income: 43,
|
||||
},
|
||||
];
|
||||
|
||||
const NetIncome = () => {
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "30px 20px 20px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Grid
|
||||
container
|
||||
alignItems="center"
|
||||
rowSpacing={1}
|
||||
columnSpacing={{ xs: 1, sm: 2, md: 2 }}
|
||||
>
|
||||
<Grid item xs={12} md={12} lg={6}>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
width: "46px",
|
||||
height: "54px",
|
||||
lineHeight: "54px",
|
||||
borderRadius: "8px",
|
||||
fontSize: "25px",
|
||||
background: "#FFFFFF",
|
||||
boxShadow: "0px 4px 20px rgba(117, 127, 239, 0.15)",
|
||||
color: "#757FEF",
|
||||
textAlign: "center",
|
||||
}}
|
||||
className="mr-15px"
|
||||
>
|
||||
<i className="ri-bar-chart-fill"></i>
|
||||
</Box>
|
||||
|
||||
<Box>
|
||||
<Typography variant="p" sx={{ fontSize: 12 }}>
|
||||
Net Income
|
||||
</Typography>
|
||||
<Typography
|
||||
variant="h1"
|
||||
sx={{ fontSize: 20, fontWeight: 700, mt: "5px" }}
|
||||
>
|
||||
$438.5k
|
||||
</Typography>
|
||||
</Box>
|
||||
</Box>
|
||||
</Grid>
|
||||
|
||||
<Grid item xs={12} md={12} lg={6}>
|
||||
<ResponsiveContainer width="100%" aspect={2.0 / 0.9}>
|
||||
<BarChart
|
||||
width={500}
|
||||
height={300}
|
||||
data={data}
|
||||
margin={{
|
||||
top: 5,
|
||||
right: 10,
|
||||
left: 10,
|
||||
bottom: 5,
|
||||
}}
|
||||
barSize={8}
|
||||
>
|
||||
<XAxis
|
||||
dataKey="name"
|
||||
scale="point"
|
||||
fontSize={9}
|
||||
stroke="#A9A9C8"
|
||||
/>
|
||||
|
||||
<Tooltip wrapperStyle={{ fontSize: "14px" }} />
|
||||
|
||||
<Bar
|
||||
dataKey="income"
|
||||
fill="#757FEF"
|
||||
background={{ fill: "#DBDFF1" }}
|
||||
unit="k"
|
||||
/>
|
||||
</BarChart>
|
||||
</ResponsiveContainer>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Card>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default NetIncome;
|
||||
@@ -1,132 +0,0 @@
|
||||
import React from "react";
|
||||
import {
|
||||
BarChart,
|
||||
Bar,
|
||||
XAxis,
|
||||
Tooltip,
|
||||
ResponsiveContainer,
|
||||
} from "recharts";
|
||||
import Grid from "@mui/material/Grid";
|
||||
import Card from "@mui/material/Card";
|
||||
import Box from "@mui/material/Box";
|
||||
import Typography from "@mui/material/Typography";
|
||||
|
||||
const data = [
|
||||
{
|
||||
name: "Sat",
|
||||
visited: 2400,
|
||||
},
|
||||
{
|
||||
name: "Sun",
|
||||
visited: 1398,
|
||||
},
|
||||
{
|
||||
name: "Mon",
|
||||
visited: 9800,
|
||||
},
|
||||
{
|
||||
name: "Tue",
|
||||
visited: 3908,
|
||||
},
|
||||
{
|
||||
name: "Wed",
|
||||
visited: 4800,
|
||||
},
|
||||
{
|
||||
name: "Thu",
|
||||
visited: 3800,
|
||||
},
|
||||
{
|
||||
name: "Fri",
|
||||
visited: 4300,
|
||||
},
|
||||
];
|
||||
|
||||
const NewSessions = () => {
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "30px 20px 20px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Grid container alignItems="center" rowSpacing={1} columnSpacing={{ xs: 1, sm: 2, md: 2 }}>
|
||||
<Grid item xs={12} md={12} lg={6}>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
width: "46px",
|
||||
height: "54px",
|
||||
lineHeight: "54px",
|
||||
borderRadius: "8px",
|
||||
fontSize: "25px",
|
||||
background: "#FFFFFF",
|
||||
boxShadow: "0px 4px 20px rgba(117, 127, 239, 0.15)",
|
||||
color: "#757FEF",
|
||||
textAlign: "center",
|
||||
}}
|
||||
className='mr-15px'
|
||||
>
|
||||
<i className="ri-time-line"></i>
|
||||
</Box>
|
||||
|
||||
<Box>
|
||||
<Typography variant="p" sx={{ fontSize: 12 }}>
|
||||
New Sessions
|
||||
</Typography>
|
||||
<Typography
|
||||
variant="h1"
|
||||
sx={{ fontSize: 20, fontWeight: 700, mt: "5px" }}
|
||||
>
|
||||
1,500
|
||||
</Typography>
|
||||
</Box>
|
||||
</Box>
|
||||
</Grid>
|
||||
|
||||
<Grid item xs={12} md={12} lg={6}>
|
||||
<ResponsiveContainer width="100%" aspect={2.0 / 0.9}>
|
||||
<BarChart
|
||||
width={500}
|
||||
height={300}
|
||||
data={data}
|
||||
margin={{
|
||||
top: 5,
|
||||
right: 10,
|
||||
left: 10,
|
||||
bottom: 5,
|
||||
}}
|
||||
barSize={8}
|
||||
>
|
||||
<XAxis
|
||||
dataKey="name"
|
||||
scale="point"
|
||||
fontSize={9}
|
||||
stroke="#A9A9C8"
|
||||
/>
|
||||
|
||||
<Tooltip wrapperStyle={{fontSize: "14px"}} />
|
||||
|
||||
<Bar
|
||||
dataKey="visited"
|
||||
fill="#F765A3"
|
||||
background={{ fill: "#DBDFF1" }}
|
||||
/>
|
||||
</BarChart>
|
||||
</ResponsiveContainer>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Card>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default NewSessions;
|
||||
@@ -1,132 +0,0 @@
|
||||
import React from "react";
|
||||
import {
|
||||
BarChart,
|
||||
Bar,
|
||||
XAxis,
|
||||
Tooltip,
|
||||
ResponsiveContainer,
|
||||
} from "recharts";
|
||||
import Grid from "@mui/material/Grid";
|
||||
import Card from "@mui/material/Card";
|
||||
import Box from "@mui/material/Box";
|
||||
import Typography from "@mui/material/Typography";
|
||||
|
||||
const data = [
|
||||
{
|
||||
name: "Sat",
|
||||
visited: 2400,
|
||||
},
|
||||
{
|
||||
name: "Sun",
|
||||
visited: 1398,
|
||||
},
|
||||
{
|
||||
name: "Mon",
|
||||
visited: 9800,
|
||||
},
|
||||
{
|
||||
name: "Tue",
|
||||
visited: 3908,
|
||||
},
|
||||
{
|
||||
name: "Wed",
|
||||
visited: 4800,
|
||||
},
|
||||
{
|
||||
name: "Thu",
|
||||
visited: 3800,
|
||||
},
|
||||
{
|
||||
name: "Fri",
|
||||
visited: 4300,
|
||||
},
|
||||
];
|
||||
|
||||
const VisitsByDay = () => {
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "30px 20px 20px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Grid container alignItems="center" rowSpacing={1} columnSpacing={{ xs: 1, sm: 2, md: 2 }}>
|
||||
<Grid item xs={12} md={12} lg={6}>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
width: "46px",
|
||||
height: "54px",
|
||||
lineHeight: "54px",
|
||||
borderRadius: "8px",
|
||||
fontSize: "25px",
|
||||
background: "#FFFFFF",
|
||||
boxShadow: "0px 4px 20px rgba(117, 127, 239, 0.15)",
|
||||
color: "#757FEF",
|
||||
textAlign: "center",
|
||||
}}
|
||||
className='mr-15px'
|
||||
>
|
||||
<i className="ri-pie-chart-line"></i>
|
||||
</Box>
|
||||
|
||||
<Box>
|
||||
<Typography variant="p" sx={{ fontSize: 12 }}>
|
||||
Visits By Day
|
||||
</Typography>
|
||||
<Typography
|
||||
variant="h1"
|
||||
sx={{ fontSize: 20, fontWeight: 700, mt: "5px" }}
|
||||
>
|
||||
1,802
|
||||
</Typography>
|
||||
</Box>
|
||||
</Box>
|
||||
</Grid>
|
||||
|
||||
<Grid item xs={12} md={12} lg={6}>
|
||||
<ResponsiveContainer width="100%" aspect={2.0 / 0.9}>
|
||||
<BarChart
|
||||
width={500}
|
||||
height={300}
|
||||
data={data}
|
||||
margin={{
|
||||
top: 5,
|
||||
right: 10,
|
||||
left: 10,
|
||||
bottom: 5,
|
||||
}}
|
||||
barSize={8}
|
||||
>
|
||||
<XAxis
|
||||
dataKey="name"
|
||||
scale="point"
|
||||
fontSize={9}
|
||||
stroke="#A9A9C8"
|
||||
/>
|
||||
|
||||
<Tooltip wrapperStyle={{fontSize: "14px"}} />
|
||||
|
||||
<Bar
|
||||
dataKey="visited"
|
||||
fill="#FFBA69"
|
||||
background={{ fill: "#DBDFF1" }}
|
||||
/>
|
||||
</BarChart>
|
||||
</ResponsiveContainer>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Card>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default VisitsByDay;
|
||||
@@ -1,36 +0,0 @@
|
||||
.totalRevenueList {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
border-bottom: 1px solid #F7FAFF;
|
||||
margin-bottom: 13px;
|
||||
padding-bottom: 13px;
|
||||
}
|
||||
.totalRevenueList:last-child {
|
||||
border-bottom: none;
|
||||
margin-bottom: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
.totalRevenueList p {
|
||||
font-size: 13px;
|
||||
margin: 0;
|
||||
}
|
||||
.totalRevenueList .rightContent {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.totalRevenueList .rightContent h5 {
|
||||
margin: 0 15px 0 0;
|
||||
font-size: 12px;
|
||||
color: #5B5B98;
|
||||
}
|
||||
.totalRevenueList .rightContent i {
|
||||
position: relative;
|
||||
top: 2px;
|
||||
}
|
||||
|
||||
/* For dark mode */
|
||||
[class="dark"] .totalRevenueList {
|
||||
border-bottom: 1px solid var(--borderColor);
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
import React, { Component } from 'react';
|
||||
import dynamic from "next/dynamic";
|
||||
const Chart = dynamic(() => import("react-apexcharts"), {
|
||||
ssr: false,
|
||||
});
|
||||
|
||||
class RevenueChart extends Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {
|
||||
series: [65],
|
||||
options: {
|
||||
plotOptions: {
|
||||
radialBar: {
|
||||
hollow: {
|
||||
size: "50%",
|
||||
},
|
||||
track: {
|
||||
background: "#ECEFF7",
|
||||
},
|
||||
dataLabels: {
|
||||
name: {
|
||||
show: true,
|
||||
fontSize: '12px',
|
||||
color: '#5B5B98',
|
||||
},
|
||||
value: {
|
||||
offsetY: 3,
|
||||
color: "#00B69B",
|
||||
fontSize: "16px",
|
||||
fontWeight: "500",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
labels: ['Revenue'],
|
||||
fill: {
|
||||
opacity: 1,
|
||||
colors: ["#757FEF"],
|
||||
},
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<>
|
||||
<Chart
|
||||
options={this.state.options}
|
||||
series={this.state.series}
|
||||
height="175"
|
||||
type="radialBar"
|
||||
/>
|
||||
</>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default RevenueChart;
|
||||
@@ -1,193 +0,0 @@
|
||||
import React from "react";
|
||||
import { Box, Typography } from "@mui/material";
|
||||
import Card from "@mui/material/Card";
|
||||
import Menu from "@mui/material/Menu";
|
||||
import MenuItem from "@mui/material/MenuItem";
|
||||
import IconButton from "@mui/material/IconButton";
|
||||
import MoreHorizIcon from "@mui/icons-material/MoreHoriz";
|
||||
import RevenueChart from "./RevenueChart";
|
||||
import styles from "@/components/Analytics/Reports/AvarageReport/AvarageReportList.module.css";
|
||||
|
||||
const AvarageReport = () => {
|
||||
const [anchorEl, setAnchorEl] = React.useState(null);
|
||||
const open = Boolean(anchorEl);
|
||||
const handleClick = (event) => {
|
||||
setAnchorEl(event.currentTarget);
|
||||
};
|
||||
const handleClose = () => {
|
||||
setAnchorEl(null);
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "25px 20px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
justifyContent: "space-between",
|
||||
alignItems: "center",
|
||||
borderBottom: "1px solid #EEF0F7",
|
||||
paddingBottom: "10px",
|
||||
}}
|
||||
|
||||
className="for-dark-bottom-border"
|
||||
>
|
||||
<Typography
|
||||
as="h3"
|
||||
sx={{
|
||||
fontSize: 18,
|
||||
fontWeight: 500,
|
||||
}}
|
||||
>
|
||||
Avarage Report
|
||||
</Typography>
|
||||
|
||||
<Box>
|
||||
<IconButton
|
||||
onClick={handleClick}
|
||||
size="small"
|
||||
aria-controls={open ? "account-menu" : undefined}
|
||||
aria-haspopup="true"
|
||||
aria-expanded={open ? "true" : undefined}
|
||||
>
|
||||
<MoreHorizIcon />
|
||||
</IconButton>
|
||||
</Box>
|
||||
<Menu
|
||||
anchorEl={anchorEl}
|
||||
id="account-menu"
|
||||
open={open}
|
||||
onClose={handleClose}
|
||||
onClick={handleClose}
|
||||
PaperProps={{
|
||||
elevation: 0,
|
||||
sx: {
|
||||
overflow: "visible",
|
||||
filter: "drop-shadow(0px 2px 8px rgba(0,0,0,0.32))",
|
||||
mt: 1.5,
|
||||
"& .MuiAvatar-root": {
|
||||
width: 32,
|
||||
height: 32,
|
||||
ml: -0.5,
|
||||
mr: 1,
|
||||
},
|
||||
"&:before": {
|
||||
content: '""',
|
||||
display: "block",
|
||||
position: "absolute",
|
||||
top: 0,
|
||||
right: 14,
|
||||
width: 10,
|
||||
height: 10,
|
||||
bgcolor: "background.paper",
|
||||
transform: "translateY(-50%) rotate(45deg)",
|
||||
zIndex: 0,
|
||||
},
|
||||
},
|
||||
}}
|
||||
transformOrigin={{ horizontal: "right", vertical: "top" }}
|
||||
anchorOrigin={{ horizontal: "right", vertical: "bottom" }}
|
||||
>
|
||||
<MenuItem sx={{ fontSize: "14px" }}>Last 15 Days</MenuItem>
|
||||
<MenuItem sx={{ fontSize: "14px" }}>Last Month</MenuItem>
|
||||
<MenuItem sx={{ fontSize: "14px" }}>Last Year</MenuItem>
|
||||
</Menu>
|
||||
</Box>
|
||||
|
||||
{/* RevenueChart */}
|
||||
<RevenueChart />
|
||||
|
||||
<>
|
||||
<div className={styles.totalRevenueList}>
|
||||
<p>Avg. Session</p>
|
||||
<div className={styles.rightContent}>
|
||||
<h5>972</h5>
|
||||
<p>
|
||||
<i className="ri-arrow-right-up-line successColor"></i> 49%
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className={styles.totalRevenueList}>
|
||||
<p>Conversion Rate</p>
|
||||
<div className={styles.rightContent}>
|
||||
<h5>102</h5>
|
||||
<p>
|
||||
<i className="ri-arrow-right-down-line dangerColor"></i> 18%
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className={styles.totalRevenueList}>
|
||||
<p>Avg. Duration</p>
|
||||
<div className={styles.rightContent}>
|
||||
<h5>3m</h5>
|
||||
<p>
|
||||
<i className="ri-arrow-right-up-line successColor"></i> 42%
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className={styles.totalRevenueList}>
|
||||
<p>Weekly Earning</p>
|
||||
<div className={styles.rightContent}>
|
||||
<h5>$972</h5>
|
||||
<p>
|
||||
<i className="ri-arrow-right-down-line dangerColor"></i> 28%
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className={styles.totalRevenueList}>
|
||||
<p>Monthly Revenue</p>
|
||||
<div className={styles.rightContent}>
|
||||
<h5>50k</h5>
|
||||
<p>
|
||||
<i className="ri-arrow-right-up-line successColor"></i> 70%
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className={styles.totalRevenueList}>
|
||||
<p>Order Rate</p>
|
||||
<div className={styles.rightContent}>
|
||||
<h5>1026</h5>
|
||||
<p>
|
||||
<i className="ri-arrow-right-down-line dangerColor"></i> 18%
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className={styles.totalRevenueList}>
|
||||
<p>Avg. Visitors</p>
|
||||
<div className={styles.rightContent}>
|
||||
<h5>1.5k</h5>
|
||||
<p>
|
||||
<i className="ri-arrow-right-up-line successColor"></i> 42%
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className={styles.totalRevenueList}>
|
||||
<p>Avg. Sales</p>
|
||||
<div className={styles.rightContent}>
|
||||
<h5>1250k</h5>
|
||||
<p>
|
||||
<i className="ri-arrow-right-down-line dangerColor"></i> 42%
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</>
|
||||
</Card>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default AvarageReport;
|
||||
@@ -1,621 +0,0 @@
|
||||
import React from "react";
|
||||
import { Box, Typography } from "@mui/material";
|
||||
import Card from "@mui/material/Card";
|
||||
import Menu from "@mui/material/Menu";
|
||||
import MenuItem from "@mui/material/MenuItem";
|
||||
import IconButton from "@mui/material/IconButton";
|
||||
import MoreHorizIcon from "@mui/icons-material/MoreHoriz";
|
||||
import PropTypes from "prop-types";
|
||||
import { useTheme } from "@mui/material/styles";
|
||||
import Table from "@mui/material/Table";
|
||||
import TableHead from "@mui/material/TableHead";
|
||||
import TableBody from "@mui/material/TableBody";
|
||||
import TableCell from "@mui/material/TableCell";
|
||||
import TableContainer from "@mui/material/TableContainer";
|
||||
import TableFooter from "@mui/material/TableFooter";
|
||||
import TablePagination from "@mui/material/TablePagination";
|
||||
import TableRow from "@mui/material/TableRow";
|
||||
import Paper from "@mui/material/Paper";
|
||||
import FirstPageIcon from "@mui/icons-material/FirstPage";
|
||||
import KeyboardArrowLeft from "@mui/icons-material/KeyboardArrowLeft";
|
||||
import KeyboardArrowRight from "@mui/icons-material/KeyboardArrowRight";
|
||||
import LastPageIcon from "@mui/icons-material/LastPage";
|
||||
|
||||
function BrowserUsedAndTrafficReport(props) {
|
||||
const theme = useTheme();
|
||||
const { count, page, rowsPerPage, onPageChange } = props;
|
||||
|
||||
const handleFirstPageButtonClick = (event) => {
|
||||
onPageChange(event, 0);
|
||||
};
|
||||
|
||||
const handleBackButtonClick = (event) => {
|
||||
onPageChange(event, page - 1);
|
||||
};
|
||||
|
||||
const handleNextButtonClick = (event) => {
|
||||
onPageChange(event, page + 1);
|
||||
};
|
||||
|
||||
const handleLastPageButtonClick = (event) => {
|
||||
onPageChange(event, Math.max(0, Math.ceil(count / rowsPerPage) - 1));
|
||||
};
|
||||
|
||||
return (
|
||||
<Box sx={{ flexShrink: 0, ml: 2.5 }}>
|
||||
<IconButton
|
||||
onClick={handleFirstPageButtonClick}
|
||||
disabled={page === 0}
|
||||
aria-label="first page"
|
||||
>
|
||||
{theme.direction === "rtl" ? <LastPageIcon /> : <FirstPageIcon />}
|
||||
</IconButton>
|
||||
|
||||
<IconButton
|
||||
onClick={handleBackButtonClick}
|
||||
disabled={page === 0}
|
||||
aria-label="previous page"
|
||||
>
|
||||
{theme.direction === "rtl" ? (
|
||||
<KeyboardArrowRight />
|
||||
) : (
|
||||
<KeyboardArrowLeft />
|
||||
)}
|
||||
</IconButton>
|
||||
|
||||
<IconButton
|
||||
onClick={handleNextButtonClick}
|
||||
disabled={page >= Math.ceil(count / rowsPerPage) - 1}
|
||||
aria-label="next page"
|
||||
>
|
||||
{theme.direction === "rtl" ? (
|
||||
<KeyboardArrowLeft />
|
||||
) : (
|
||||
<KeyboardArrowRight />
|
||||
)}
|
||||
</IconButton>
|
||||
<IconButton
|
||||
onClick={handleLastPageButtonClick}
|
||||
disabled={page >= Math.ceil(count / rowsPerPage) - 1}
|
||||
aria-label="last page"
|
||||
>
|
||||
{theme.direction === "rtl" ? <FirstPageIcon /> : <LastPageIcon />}
|
||||
</IconButton>
|
||||
</Box>
|
||||
);
|
||||
}
|
||||
|
||||
BrowserUsedAndTrafficReport.propTypes = {
|
||||
count: PropTypes.number.isRequired,
|
||||
onPageChange: PropTypes.func.isRequired,
|
||||
page: PropTypes.number.isRequired,
|
||||
rowsPerPage: PropTypes.number.isRequired,
|
||||
};
|
||||
|
||||
function createData(
|
||||
channel,
|
||||
sessions,
|
||||
sessionsProgress,
|
||||
prevPeriod,
|
||||
prevPeriodProgress,
|
||||
transactions,
|
||||
transactionsProgress,
|
||||
conRate,
|
||||
bounceRate,
|
||||
change,
|
||||
iconName,
|
||||
badgeClass
|
||||
) {
|
||||
return {
|
||||
channel,
|
||||
sessions,
|
||||
sessionsProgress,
|
||||
prevPeriod,
|
||||
prevPeriodProgress,
|
||||
transactions,
|
||||
transactionsProgress,
|
||||
conRate,
|
||||
bounceRate,
|
||||
change,
|
||||
iconName,
|
||||
badgeClass,
|
||||
};
|
||||
}
|
||||
|
||||
const rows = [
|
||||
createData(
|
||||
"Organic Search",
|
||||
"10853",
|
||||
"(52%)",
|
||||
"566",
|
||||
"(52%)",
|
||||
"566",
|
||||
"(52%)",
|
||||
"3.2%",
|
||||
"57.8%",
|
||||
"52.80%",
|
||||
"ri-arrow-up-s-fill",
|
||||
"successBadge"
|
||||
),
|
||||
createData(
|
||||
"Direct",
|
||||
"10844",
|
||||
"(50%)",
|
||||
"666",
|
||||
"(50%)",
|
||||
"766",
|
||||
"(50%)",
|
||||
"2.2%",
|
||||
"20.8%",
|
||||
"55.99%",
|
||||
"ri-arrow-up-s-fill",
|
||||
"successBadge"
|
||||
),
|
||||
createData(
|
||||
"Referal",
|
||||
"20844",
|
||||
"(60%)",
|
||||
"754",
|
||||
"(60%)",
|
||||
"899",
|
||||
"(60%)",
|
||||
"1.2%",
|
||||
"60.8%",
|
||||
"60.99%",
|
||||
"ri-arrow-down-s-fill",
|
||||
"dangerBadge"
|
||||
),
|
||||
createData(
|
||||
"Email",
|
||||
"15844",
|
||||
"(50%)",
|
||||
"764",
|
||||
"(50%)",
|
||||
"755",
|
||||
"(50%)",
|
||||
"4.2%",
|
||||
"30.8%",
|
||||
"50.99%",
|
||||
"ri-arrow-up-s-fill",
|
||||
"successBadge"
|
||||
),
|
||||
createData(
|
||||
"Social",
|
||||
"12844",
|
||||
"(50%)",
|
||||
"764",
|
||||
"(50%)",
|
||||
"755",
|
||||
"(50%)",
|
||||
"5.2%",
|
||||
"35.8%",
|
||||
"50.99%",
|
||||
"ri-arrow-up-s-fill",
|
||||
"successBadge"
|
||||
),
|
||||
createData(
|
||||
"Chrome",
|
||||
"5853",
|
||||
"(52%)",
|
||||
"466",
|
||||
"(52%)",
|
||||
"566",
|
||||
"(52%)",
|
||||
"6.2%",
|
||||
"40.8%",
|
||||
"52.80%",
|
||||
"ri-arrow-up-s-fill",
|
||||
"successBadge"
|
||||
),
|
||||
createData(
|
||||
"Safari",
|
||||
"2844",
|
||||
"(50%)",
|
||||
"766",
|
||||
"(50%)",
|
||||
"666",
|
||||
"(50%)",
|
||||
"3.2%",
|
||||
"55.8%",
|
||||
"55.00%",
|
||||
"ri-arrow-up-s-fill",
|
||||
"successBadge"
|
||||
),
|
||||
createData(
|
||||
"Edge",
|
||||
"1844",
|
||||
"(60%)",
|
||||
"454",
|
||||
"(60%)",
|
||||
"399",
|
||||
"(60%)",
|
||||
"7.2%",
|
||||
"10.8%",
|
||||
"60.00%",
|
||||
"ri-arrow-down-s-fill",
|
||||
"dangerBadge"
|
||||
),
|
||||
createData(
|
||||
"Firefox",
|
||||
"15844",
|
||||
"(55%)",
|
||||
"564",
|
||||
"(55%)",
|
||||
"455",
|
||||
"(55%)",
|
||||
"4.2%",
|
||||
"20.8%",
|
||||
"55.00%",
|
||||
"ri-arrow-up-s-fill",
|
||||
"successBadge"
|
||||
),
|
||||
createData(
|
||||
"Opera",
|
||||
"11844",
|
||||
"(50%)",
|
||||
"864",
|
||||
"(50%)",
|
||||
"655",
|
||||
"(50%)",
|
||||
"3.2%",
|
||||
"32.8%",
|
||||
"50.00%",
|
||||
"ri-arrow-up-s-fill",
|
||||
"successBadge"
|
||||
),
|
||||
].sort((a, b) => (a.channel < b.channel ? -1 : 1));
|
||||
|
||||
const BrowserUsedAndTrafficReports = () => {
|
||||
const [anchorEl, setAnchorEl] = React.useState(null);
|
||||
const open = Boolean(anchorEl);
|
||||
const handleClick = (event) => {
|
||||
setAnchorEl(event.currentTarget);
|
||||
};
|
||||
const handleClose = () => {
|
||||
setAnchorEl(null);
|
||||
};
|
||||
|
||||
// Table
|
||||
const [page, setPage] = React.useState(0);
|
||||
const [rowsPerPage, setRowsPerPage] = React.useState(7);
|
||||
|
||||
// Avoid a layout jump when reaching the last page with empty rows.
|
||||
const emptyRows =
|
||||
page > 0 ? Math.max(0, (1 + page) * rowsPerPage - rows.length) : 0;
|
||||
|
||||
const handleChangePage = (event, newPage) => {
|
||||
setPage(newPage);
|
||||
};
|
||||
|
||||
const handleChangeRowsPerPage = (event) => {
|
||||
setRowsPerPage(parseInt(event.target.value, 10));
|
||||
setPage(0);
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "25px 20px 15px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
justifyContent: "space-between",
|
||||
alignItems: "center",
|
||||
paddingBottom: "15px",
|
||||
}}
|
||||
>
|
||||
<Typography
|
||||
as="h3"
|
||||
sx={{
|
||||
fontSize: 18,
|
||||
fontWeight: 500,
|
||||
}}
|
||||
>
|
||||
Browser Used & Traffic Reports
|
||||
</Typography>
|
||||
|
||||
<Box>
|
||||
<IconButton
|
||||
onClick={handleClick}
|
||||
size="small"
|
||||
aria-controls={open ? "account-menu" : undefined}
|
||||
aria-haspopup="true"
|
||||
aria-expanded={open ? "true" : undefined}
|
||||
>
|
||||
<MoreHorizIcon />
|
||||
</IconButton>
|
||||
</Box>
|
||||
<Menu
|
||||
anchorEl={anchorEl}
|
||||
id="account-menu"
|
||||
open={open}
|
||||
onClose={handleClose}
|
||||
onClick={handleClose}
|
||||
PaperProps={{
|
||||
elevation: 0,
|
||||
sx: {
|
||||
overflow: "visible",
|
||||
filter: "drop-shadow(0px 2px 8px rgba(0,0,0,0.32))",
|
||||
mt: 1.5,
|
||||
"& .MuiAvatar-root": {
|
||||
width: 32,
|
||||
height: 32,
|
||||
ml: -0.5,
|
||||
mr: 1,
|
||||
},
|
||||
"&:before": {
|
||||
content: '""',
|
||||
display: "block",
|
||||
position: "absolute",
|
||||
top: 0,
|
||||
right: 14,
|
||||
width: 10,
|
||||
height: 10,
|
||||
bgcolor: "background.paper",
|
||||
transform: "translateY(-50%) rotate(45deg)",
|
||||
zIndex: 0,
|
||||
},
|
||||
},
|
||||
}}
|
||||
transformOrigin={{ horizontal: "right", vertical: "top" }}
|
||||
anchorOrigin={{ horizontal: "right", vertical: "bottom" }}
|
||||
>
|
||||
<MenuItem sx={{ fontSize: "14px" }}>Last 15 Days</MenuItem>
|
||||
<MenuItem sx={{ fontSize: "14px" }}>Last Month</MenuItem>
|
||||
<MenuItem sx={{ fontSize: "14px" }}>Last Year</MenuItem>
|
||||
</Menu>
|
||||
</Box>
|
||||
|
||||
<TableContainer
|
||||
component={Paper}
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
}}
|
||||
>
|
||||
<Table
|
||||
sx={{ minWidth: 800 }}
|
||||
aria-label="custom pagination table"
|
||||
className="dark-table"
|
||||
>
|
||||
<TableHead sx={{ background: "#F7FAFF" }}>
|
||||
<TableRow>
|
||||
<TableCell
|
||||
style={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13.5px",
|
||||
}}
|
||||
>
|
||||
Channel
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
style={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13.5px",
|
||||
}}
|
||||
>
|
||||
Sessions
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
style={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13.5px",
|
||||
}}
|
||||
>
|
||||
Prev.Period
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
style={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13.5px",
|
||||
}}
|
||||
>
|
||||
Transactions
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
style={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13.5px",
|
||||
}}
|
||||
>
|
||||
Con.Rate
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
style={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13.5px",
|
||||
}}
|
||||
>
|
||||
Bounce Rate
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
style={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13.5px",
|
||||
}}
|
||||
>
|
||||
% Change
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
</TableHead>
|
||||
|
||||
<TableBody>
|
||||
{(rowsPerPage > 0
|
||||
? rows.slice(
|
||||
page * rowsPerPage,
|
||||
page * rowsPerPage + rowsPerPage
|
||||
)
|
||||
: rows
|
||||
).map((row) => (
|
||||
<TableRow key={row.channel}>
|
||||
<TableCell
|
||||
style={{
|
||||
fontWeight: "500",
|
||||
fontSize: "13px",
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
color: "#757FEF",
|
||||
}}
|
||||
>
|
||||
{row.channel}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
style={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
color: "#5B5B98",
|
||||
fontWeight: "500",
|
||||
fontSize: "13px",
|
||||
}}
|
||||
>
|
||||
{row.sessions}{" "}
|
||||
<Typography
|
||||
as="span"
|
||||
sx={{ color: "#A9A9C8", fontSize: "13px" }}
|
||||
>
|
||||
{row.sessionsProgress}
|
||||
</Typography>
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
style={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
color: "#5B5B98",
|
||||
fontWeight: "500",
|
||||
fontSize: "13px",
|
||||
}}
|
||||
>
|
||||
{row.prevPeriod}{" "}
|
||||
<Typography
|
||||
as="span"
|
||||
sx={{ color: "#A9A9C8", fontSize: "13px" }}
|
||||
>
|
||||
{row.prevPeriodProgress}
|
||||
</Typography>
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
style={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
color: "#5B5B98",
|
||||
fontWeight: "500",
|
||||
|
||||
fontSize: "13px",
|
||||
}}
|
||||
>
|
||||
{row.transactions}{" "}
|
||||
<Typography
|
||||
as="span"
|
||||
sx={{ color: "#A9A9C8", fontSize: "13px" }}
|
||||
>
|
||||
{row.transactionsProgress}
|
||||
</Typography>
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
style={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
color: "#5B5B98",
|
||||
fontWeight: "500",
|
||||
|
||||
fontSize: "13px",
|
||||
}}
|
||||
>
|
||||
{row.conRate}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
style={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
color: "#5B5B98",
|
||||
fontWeight: "500",
|
||||
|
||||
fontSize: "13px",
|
||||
}}
|
||||
>
|
||||
{row.bounceRate}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
style={{
|
||||
fontWeight: 500,
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13px",
|
||||
}}
|
||||
>
|
||||
<span className={row.badgeClass}>
|
||||
{row.change}{" "}
|
||||
<i
|
||||
className={row.iconName}
|
||||
style={{
|
||||
fontSize: "17px",
|
||||
position: "relative",
|
||||
top: "4px",
|
||||
lineHeight: "1",
|
||||
fontWight: "bold",
|
||||
}}
|
||||
></i>
|
||||
</span>
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
))}
|
||||
|
||||
{emptyRows > 0 && (
|
||||
<TableRow style={{ height: 53 * emptyRows }}>
|
||||
<TableCell
|
||||
colSpan={5}
|
||||
style={{ borderBottom: "1px solid #F7FAFF" }}
|
||||
/>
|
||||
</TableRow>
|
||||
)}
|
||||
</TableBody>
|
||||
|
||||
<TableFooter>
|
||||
<TableRow>
|
||||
<TablePagination
|
||||
rowsPerPageOptions={[5, 10, 25, { label: "All", value: -1 }]}
|
||||
colSpan={8}
|
||||
count={rows.length}
|
||||
rowsPerPage={rowsPerPage}
|
||||
page={page}
|
||||
SelectProps={{
|
||||
inputProps: {
|
||||
"aria-label": "rows per page",
|
||||
},
|
||||
native: true,
|
||||
}}
|
||||
onPageChange={handleChangePage}
|
||||
onRowsPerPageChange={handleChangeRowsPerPage}
|
||||
ActionsComponent={BrowserUsedAndTrafficReport}
|
||||
style={{ borderBottom: "none" }}
|
||||
/>
|
||||
</TableRow>
|
||||
</TableFooter>
|
||||
</Table>
|
||||
</TableContainer>
|
||||
</Card>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default BrowserUsedAndTrafficReports;
|
||||
@@ -1,47 +0,0 @@
|
||||
const events = [
|
||||
{ title: "All Day Event", start: getDate("YEAR-MONTH-01") },
|
||||
{
|
||||
title: "Rendezvous",
|
||||
start: getDate("YEAR-MONTH-07"),
|
||||
end: getDate("YEAR-MONTH-10")
|
||||
},
|
||||
{
|
||||
groupId: "999",
|
||||
title: "Repeating Event",
|
||||
start: getDate("YEAR-MONTH-09T16:00:00+00:00")
|
||||
},
|
||||
{
|
||||
groupId: "999",
|
||||
title: "Repeating Event",
|
||||
start: getDate("YEAR-MONTH-16T16:00:00+00:00")
|
||||
},
|
||||
{
|
||||
title: "Dontiste",
|
||||
start: "YEAR-MONTH-17",
|
||||
end: getDate("YEAR-MONTH-19")
|
||||
},
|
||||
{
|
||||
title: "Consultation",
|
||||
start: getDate("YEAR-MONTH-18T10:30:00+00:00"),
|
||||
end: getDate("YEAR-MONTH-18T12:30:00+00:00")
|
||||
},
|
||||
{ title: "Visit", start: getDate("YEAR-MONTH-18T12:00:00+00:00") },
|
||||
{ title: "maladie", start: getDate("YEAR-MONTH-19T07:00:00+00:00") },
|
||||
{ title: "Meeting", start: getDate("YEAR-MONTH-18T14:30:00+00:00") },
|
||||
{ title: "controlle", start: getDate("YEAR-MONTH-18T17:30:00+00:00") },
|
||||
{ title: "finish", start: getDate("YEAR-MONTH-18T20:00:00+00:00") }
|
||||
];
|
||||
|
||||
function getDate(dayString) {
|
||||
const today = new Date();
|
||||
const year = today.getFullYear().toString();
|
||||
let month = (today.getMonth() + 1).toString();
|
||||
|
||||
if (month.length === 1) {
|
||||
month = "0" + month;
|
||||
}
|
||||
|
||||
return dayString.replace("YEAR", year).replace("MONTH", month);
|
||||
}
|
||||
|
||||
export default events;
|
||||
@@ -1,599 +0,0 @@
|
||||
import Typography from "@mui/material/Typography";
|
||||
import Box from "@mui/material/Box";
|
||||
import IconButton from "@mui/material/IconButton";
|
||||
import VideocamIcon from "@mui/icons-material/Videocam";
|
||||
import CallIcon from "@mui/icons-material/Call";
|
||||
import MoreVertIcon from "@mui/icons-material/MoreVert";
|
||||
import List from "@mui/material/List";
|
||||
import ListItem from "@mui/material/ListItem";
|
||||
import ListItemButton from "@mui/material/ListItemButton";
|
||||
import ListItemText from "@mui/material/ListItemText";
|
||||
import ReplyIcon from "@mui/icons-material/Reply";
|
||||
import DeleteOutlineIcon from "@mui/icons-material/DeleteOutline";
|
||||
import TextField from "@mui/material/TextField";
|
||||
import Button from "@mui/material/Button";
|
||||
import SendIcon from "@mui/icons-material/Send";
|
||||
|
||||
const ChatBox = () => {
|
||||
const handleSubmit = (event) => {
|
||||
event.preventDefault();
|
||||
const data = new FormData(event.currentTarget);
|
||||
console.log({
|
||||
email: data.get("email"),
|
||||
password: data.get("password"),
|
||||
});
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<Box
|
||||
sx={{
|
||||
border: "1px solid #F5F4F6",
|
||||
borderRadius: "14px",
|
||||
}}
|
||||
className="for-dark-chat-box"
|
||||
>
|
||||
{/* Header */}
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
justifyContent: "space-between",
|
||||
borderBottom: "1px solid #F5F4F6",
|
||||
borderRadius: "10px",
|
||||
p: "15px",
|
||||
}}
|
||||
className="for-dark-chat-header"
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
justifyContent: "space-between",
|
||||
}}
|
||||
>
|
||||
<img
|
||||
src="/images/user1.png"
|
||||
alt="user"
|
||||
width="40px"
|
||||
height="40px"
|
||||
className="borRadius100"
|
||||
/>
|
||||
<Box className="ml-1">
|
||||
<Typography as="h5" fontWeight="500">
|
||||
Laurent Perrier
|
||||
</Typography>
|
||||
<Typography fontSize="12px" position="relative">
|
||||
<span className="active-status2 successBgColor"></span> Active
|
||||
Now
|
||||
</Typography>
|
||||
</Box>
|
||||
</Box>
|
||||
|
||||
<Box>
|
||||
<IconButton
|
||||
size="small"
|
||||
sx={{ background: "#F2F6F8" }}
|
||||
className="ml-5px for-dark-button"
|
||||
>
|
||||
<VideocamIcon />
|
||||
</IconButton>
|
||||
|
||||
<IconButton
|
||||
size="small"
|
||||
sx={{ background: "#F2F6F8" }}
|
||||
className="ml-5px for-dark-button"
|
||||
>
|
||||
<CallIcon />
|
||||
</IconButton>
|
||||
|
||||
<IconButton
|
||||
size="small"
|
||||
sx={{ background: "#F2F6F8" }}
|
||||
className="ml-5px for-dark-button"
|
||||
>
|
||||
<MoreVertIcon />
|
||||
</IconButton>
|
||||
</Box>
|
||||
</Box>
|
||||
|
||||
{/* Chat List */}
|
||||
<div className="chat-list-box">
|
||||
{/* Left Chat */}
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
maxWidth: "730px",
|
||||
mb: "20px",
|
||||
}}
|
||||
>
|
||||
<img
|
||||
src="/images/user1.png"
|
||||
alt="user"
|
||||
width="35px"
|
||||
height="35px"
|
||||
className="borRadius100"
|
||||
/>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
}}
|
||||
className="ml-1"
|
||||
>
|
||||
<Box>
|
||||
<Typography
|
||||
sx={{
|
||||
background: "#F5F6FA",
|
||||
borderRadius: "0px 15px 15px 15px",
|
||||
p: "14px 20px",
|
||||
mb: "10px",
|
||||
}}
|
||||
className="dark-BG-101010"
|
||||
>
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
||||
Pharetra ligula non varius curabitur etiam malesuada. Congue
|
||||
eget luctus aliquet consectetur.
|
||||
</Typography>
|
||||
|
||||
<Typography fontSize="12px">19:04</Typography>
|
||||
</Box>
|
||||
|
||||
{/* Replay Dropdown */}
|
||||
<Box className="ml-1">
|
||||
<div className="right-replay-box">
|
||||
<IconButton size="small">
|
||||
<MoreVertIcon fontSize="small" />
|
||||
</IconButton>
|
||||
|
||||
<div className="hover-caption">
|
||||
<List sx={{ display: "inline" }}>
|
||||
<ListItem disablePadding>
|
||||
<ListItemButton sx={{ padding: "1px 15px" }}>
|
||||
<ReplyIcon
|
||||
fontSize="small"
|
||||
sx={{ mt: "-4px" }}
|
||||
className="mr-5px"
|
||||
/>
|
||||
<ListItemText
|
||||
primary="Reply"
|
||||
primaryTypographyProps={{ fontSize: "12px" }}
|
||||
/>
|
||||
</ListItemButton>
|
||||
</ListItem>
|
||||
|
||||
<ListItem disablePadding>
|
||||
<ListItemButton sx={{ padding: "1px 15px" }}>
|
||||
<DeleteOutlineIcon
|
||||
fontSize="small"
|
||||
sx={{ mt: "-4px" }}
|
||||
className="mr-5px"
|
||||
/>
|
||||
<ListItemText
|
||||
primary="Delete"
|
||||
primaryTypographyProps={{ fontSize: "12px" }}
|
||||
/>
|
||||
</ListItemButton>
|
||||
</ListItem>
|
||||
</List>
|
||||
</div>
|
||||
</div>
|
||||
</Box>
|
||||
</Box>
|
||||
</Box>
|
||||
|
||||
{/* Right Chat */}
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
justifyContent: "end",
|
||||
maxWidth: "730px",
|
||||
mb: "20px",
|
||||
}}
|
||||
className="ml-auto"
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
}}
|
||||
className="ml-1"
|
||||
>
|
||||
{/* Replay Dropdown */}
|
||||
<Box>
|
||||
<div className="left-replay-box">
|
||||
<IconButton size="small">
|
||||
<MoreVertIcon fontSize="small" />
|
||||
</IconButton>
|
||||
|
||||
<div className="hover-caption">
|
||||
<List sx={{ display: "inline" }}>
|
||||
<ListItem disablePadding>
|
||||
<ListItemButton sx={{ padding: "1px 15px" }}>
|
||||
<ReplyIcon
|
||||
fontSize="small"
|
||||
sx={{ mt: "-4px" }}
|
||||
className="mr-5px"
|
||||
/>
|
||||
<ListItemText
|
||||
primary="Reply"
|
||||
primaryTypographyProps={{ fontSize: "12px" }}
|
||||
/>
|
||||
</ListItemButton>
|
||||
</ListItem>
|
||||
|
||||
<ListItem disablePadding>
|
||||
<ListItemButton sx={{ padding: "1px 15px" }}>
|
||||
<DeleteOutlineIcon
|
||||
fontSize="small"
|
||||
sx={{ mt: "-4px" }}
|
||||
className="mr-5px"
|
||||
/>
|
||||
<ListItemText
|
||||
primary="Delete"
|
||||
primaryTypographyProps={{ fontSize: "12px" }}
|
||||
/>
|
||||
</ListItemButton>
|
||||
</ListItem>
|
||||
</List>
|
||||
</div>
|
||||
</div>
|
||||
</Box>
|
||||
|
||||
<Box className="mr-1">
|
||||
<Typography
|
||||
sx={{
|
||||
background: "#757FEF",
|
||||
color: "#fff !important",
|
||||
borderRadius: "15px 0 15px 15px",
|
||||
p: "14px 20px",
|
||||
mb: "10px",
|
||||
}}
|
||||
>
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
||||
</Typography>
|
||||
|
||||
<Typography fontSize="12px" textAlign="end">
|
||||
19:04
|
||||
</Typography>
|
||||
</Box>
|
||||
</Box>
|
||||
|
||||
<img
|
||||
src="/images/user2.png"
|
||||
alt="user"
|
||||
width="35px"
|
||||
height="35px"
|
||||
className="borRadius100"
|
||||
/>
|
||||
</Box>
|
||||
|
||||
{/* Left Chat */}
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
maxWidth: "730px",
|
||||
mb: "20px",
|
||||
}}
|
||||
>
|
||||
<img
|
||||
src="/images/user1.png"
|
||||
alt="user"
|
||||
width="35px"
|
||||
height="35px"
|
||||
className="borRadius100"
|
||||
/>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
}}
|
||||
className="ml-1"
|
||||
>
|
||||
<Box>
|
||||
<Typography
|
||||
sx={{
|
||||
background: "#F5F6FA",
|
||||
borderRadius: "0px 15px 15px 15px",
|
||||
p: "14px 20px",
|
||||
mb: "10px",
|
||||
}}
|
||||
className="dark-BG-101010"
|
||||
>
|
||||
Lorem ipsum dolor sit amet 🔥! Lorem ipsum dolor sit amet,
|
||||
consectetur adipiscing elit.
|
||||
</Typography>
|
||||
|
||||
<Typography fontSize="12px">19:04</Typography>
|
||||
</Box>
|
||||
|
||||
{/* Replay Dropdown */}
|
||||
<Box className="ml-1">
|
||||
<div className="right-replay-box">
|
||||
<IconButton size="small">
|
||||
<MoreVertIcon fontSize="small" />
|
||||
</IconButton>
|
||||
|
||||
<div className="hover-caption">
|
||||
<List sx={{ display: "inline" }}>
|
||||
<ListItem disablePadding>
|
||||
<ListItemButton sx={{ padding: "1px 15px" }}>
|
||||
<ReplyIcon
|
||||
fontSize="small"
|
||||
sx={{ mt: "-4px" }}
|
||||
className="mr-5px"
|
||||
/>
|
||||
<ListItemText
|
||||
primary="Reply"
|
||||
primaryTypographyProps={{ fontSize: "12px" }}
|
||||
/>
|
||||
</ListItemButton>
|
||||
</ListItem>
|
||||
|
||||
<ListItem disablePadding>
|
||||
<ListItemButton sx={{ padding: "1px 15px" }}>
|
||||
<DeleteOutlineIcon
|
||||
fontSize="small"
|
||||
sx={{ mt: "-4px" }}
|
||||
className="mr-5px"
|
||||
/>
|
||||
<ListItemText
|
||||
primary="Delete"
|
||||
primaryTypographyProps={{ fontSize: "12px" }}
|
||||
/>
|
||||
</ListItemButton>
|
||||
</ListItem>
|
||||
</List>
|
||||
</div>
|
||||
</div>
|
||||
</Box>
|
||||
</Box>
|
||||
</Box>
|
||||
|
||||
{/* Right Chat */}
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
justifyContent: "end",
|
||||
maxWidth: "730px",
|
||||
mb: "20px",
|
||||
}}
|
||||
className="ml-auto"
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
}}
|
||||
className="ml-1"
|
||||
>
|
||||
{/* Replay Dropdown */}
|
||||
<Box>
|
||||
<div className="left-replay-box">
|
||||
<IconButton size="small">
|
||||
<MoreVertIcon fontSize="small" />
|
||||
</IconButton>
|
||||
|
||||
<div className="hover-caption">
|
||||
<List sx={{ display: "inline" }}>
|
||||
<ListItem disablePadding>
|
||||
<ListItemButton sx={{ padding: "1px 15px" }}>
|
||||
<ReplyIcon
|
||||
fontSize="small"
|
||||
sx={{ mt: "-4px" }}
|
||||
className="mr-5px"
|
||||
/>
|
||||
<ListItemText
|
||||
primary="Reply"
|
||||
primaryTypographyProps={{ fontSize: "12px" }}
|
||||
/>
|
||||
</ListItemButton>
|
||||
</ListItem>
|
||||
|
||||
<ListItem disablePadding>
|
||||
<ListItemButton sx={{ padding: "1px 15px" }}>
|
||||
<DeleteOutlineIcon
|
||||
fontSize="small"
|
||||
sx={{ mt: "-4px" }}
|
||||
className="mr-5px"
|
||||
/>
|
||||
<ListItemText
|
||||
primary="Delete"
|
||||
primaryTypographyProps={{ fontSize: "12px" }}
|
||||
/>
|
||||
</ListItemButton>
|
||||
</ListItem>
|
||||
</List>
|
||||
</div>
|
||||
</div>
|
||||
</Box>
|
||||
|
||||
<Box className="mr-1">
|
||||
<Typography
|
||||
sx={{
|
||||
background: "#757FEF",
|
||||
color: "#fff !important",
|
||||
borderRadius: "15px 0 15px 15px",
|
||||
p: "14px 20px",
|
||||
mb: "10px",
|
||||
}}
|
||||
>
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem
|
||||
ipsum dolor sit
|
||||
</Typography>
|
||||
|
||||
<Typography fontSize="12px" textAlign="end">
|
||||
19:04
|
||||
</Typography>
|
||||
</Box>
|
||||
</Box>
|
||||
|
||||
<img
|
||||
src="/images/user2.png"
|
||||
alt="user"
|
||||
width="35px"
|
||||
height="35px"
|
||||
className="borRadius100"
|
||||
/>
|
||||
</Box>
|
||||
|
||||
{/* Left Chat */}
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
maxWidth: "730px",
|
||||
mb: "20px",
|
||||
}}
|
||||
>
|
||||
<img
|
||||
src="/images/user1.png"
|
||||
alt="user"
|
||||
width="35px"
|
||||
height="35px"
|
||||
className="borRadius100"
|
||||
/>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
}}
|
||||
className="ml-1"
|
||||
>
|
||||
<Box>
|
||||
<Typography
|
||||
sx={{
|
||||
background: "#F5F6FA",
|
||||
borderRadius: "0px 15px 15px 15px",
|
||||
p: "14px 20px",
|
||||
mb: "10px",
|
||||
}}
|
||||
className="dark-BG-101010"
|
||||
>
|
||||
Sed ut perspiciatis unde omnis iste natus error sit voluptatem
|
||||
accusantium doloremque laudantium, totam rem aperiam, eaque
|
||||
ipsa quae ab illo inventore veritatis et quasi architecto
|
||||
beatae vitae dicta sunt explicabo.
|
||||
</Typography>
|
||||
|
||||
<Typography fontSize="12px">19:04</Typography>
|
||||
</Box>
|
||||
|
||||
{/* Replay Dropdown */}
|
||||
<Box className="ml-1">
|
||||
<div className="right-replay-box">
|
||||
<IconButton size="small">
|
||||
<MoreVertIcon fontSize="small" />
|
||||
</IconButton>
|
||||
|
||||
<div className="hover-caption">
|
||||
<List sx={{ display: "inline" }}>
|
||||
<ListItem disablePadding>
|
||||
<ListItemButton sx={{ padding: "1px 15px" }}>
|
||||
<ReplyIcon
|
||||
fontSize="small"
|
||||
sx={{ mt: "-4px" }}
|
||||
className="mr-5px"
|
||||
/>
|
||||
<ListItemText
|
||||
primary="Reply"
|
||||
primaryTypographyProps={{ fontSize: "12px" }}
|
||||
/>
|
||||
</ListItemButton>
|
||||
</ListItem>
|
||||
|
||||
<ListItem disablePadding>
|
||||
<ListItemButton sx={{ padding: "1px 15px" }}>
|
||||
<DeleteOutlineIcon
|
||||
fontSize="small"
|
||||
sx={{ mt: "-4px" }}
|
||||
className="mr-5px"
|
||||
/>
|
||||
<ListItemText
|
||||
primary="Delete"
|
||||
primaryTypographyProps={{ fontSize: "12px" }}
|
||||
/>
|
||||
</ListItemButton>
|
||||
</ListItem>
|
||||
</List>
|
||||
</div>
|
||||
</div>
|
||||
</Box>
|
||||
</Box>
|
||||
</Box>
|
||||
</div>
|
||||
|
||||
{/* Footer */}
|
||||
<Box
|
||||
sx={{
|
||||
background: "#F5F6FA",
|
||||
borderRadius: "15px",
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
p: "15px",
|
||||
position: "relative",
|
||||
}}
|
||||
className="dark-BG-101010"
|
||||
>
|
||||
<Box>
|
||||
<IconButton
|
||||
size="small"
|
||||
sx={{ background: "#F2F6F8" }}
|
||||
className='mr-5px for-dark-button'
|
||||
>
|
||||
<VideocamIcon />
|
||||
</IconButton>
|
||||
|
||||
<IconButton
|
||||
size="small"
|
||||
sx={{ background: "#F2F6F8" }}
|
||||
className='mr-5px for-dark-button'
|
||||
>
|
||||
<CallIcon />
|
||||
</IconButton>
|
||||
</Box>
|
||||
|
||||
<Box
|
||||
component="form"
|
||||
noValidate
|
||||
onSubmit={handleSubmit}
|
||||
sx={{
|
||||
flex: "auto",
|
||||
}}
|
||||
className="pr-60px"
|
||||
>
|
||||
<TextField
|
||||
fullWidth
|
||||
id="typeSomething"
|
||||
label="Type Something..."
|
||||
name="typeSomething"
|
||||
autoComplete="typeSomething"
|
||||
InputProps={{
|
||||
style: {
|
||||
borderRadius: 100,
|
||||
background: "#fff",
|
||||
},
|
||||
}}
|
||||
/>
|
||||
|
||||
<Button
|
||||
type="submit"
|
||||
variant="contained"
|
||||
sx={{
|
||||
textTransform: "capitalize",
|
||||
borderRadius: "100%",
|
||||
fontWeight: "500",
|
||||
fontSize: "16px",
|
||||
padding: "0",
|
||||
minWidth: "44px",
|
||||
minHeight: "44px",
|
||||
position: "absolute",
|
||||
top: "22px",
|
||||
color: "#fff !important"
|
||||
}}
|
||||
className="right-20px"
|
||||
>
|
||||
<SendIcon />
|
||||
</Button>
|
||||
</Box>
|
||||
</Box>
|
||||
</Box>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default ChatBox;
|
||||
@@ -1,599 +0,0 @@
|
||||
import Typography from "@mui/material/Typography";
|
||||
import Box from "@mui/material/Box";
|
||||
import IconButton from "@mui/material/IconButton";
|
||||
import VideocamIcon from "@mui/icons-material/Videocam";
|
||||
import CallIcon from "@mui/icons-material/Call";
|
||||
import MoreVertIcon from "@mui/icons-material/MoreVert";
|
||||
import List from "@mui/material/List";
|
||||
import ListItem from "@mui/material/ListItem";
|
||||
import ListItemButton from "@mui/material/ListItemButton";
|
||||
import ListItemText from "@mui/material/ListItemText";
|
||||
import ReplyIcon from "@mui/icons-material/Reply";
|
||||
import DeleteOutlineIcon from "@mui/icons-material/DeleteOutline";
|
||||
import TextField from "@mui/material/TextField";
|
||||
import Button from "@mui/material/Button";
|
||||
import SendIcon from "@mui/icons-material/Send";
|
||||
|
||||
const ChatBoxThree = () => {
|
||||
const handleSubmit = (event) => {
|
||||
event.preventDefault();
|
||||
const data = new FormData(event.currentTarget);
|
||||
console.log({
|
||||
email: data.get("email"),
|
||||
password: data.get("password"),
|
||||
});
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<Box
|
||||
sx={{
|
||||
border: "1px solid #F5F4F6",
|
||||
borderRadius: "14px",
|
||||
}}
|
||||
className="for-dark-chat-box"
|
||||
>
|
||||
{/* Header */}
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
justifyContent: "space-between",
|
||||
borderBottom: "1px solid #F5F4F6",
|
||||
borderRadius: "10px",
|
||||
p: "15px",
|
||||
}}
|
||||
className="for-dark-chat-header"
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
justifyContent: "space-between",
|
||||
}}
|
||||
>
|
||||
<img
|
||||
src="/images/user3.png"
|
||||
alt="user"
|
||||
width="40px"
|
||||
height="40px"
|
||||
className="borRadius100"
|
||||
/>
|
||||
<Box className="ml-1">
|
||||
<Typography as="h5" fontWeight="500">
|
||||
Bernard Langley
|
||||
</Typography>
|
||||
<Typography fontSize="12px" position="relative">
|
||||
<span className="active-status2 successBgColor"></span> Active
|
||||
Now
|
||||
</Typography>
|
||||
</Box>
|
||||
</Box>
|
||||
|
||||
<Box>
|
||||
<IconButton
|
||||
size="small"
|
||||
sx={{ background: "#F2F6F8" }}
|
||||
className='ml-5px for-dark-button'
|
||||
>
|
||||
<VideocamIcon />
|
||||
</IconButton>
|
||||
|
||||
<IconButton
|
||||
size="small"
|
||||
sx={{ background: "#F2F6F8" }}
|
||||
className='ml-5px for-dark-button'
|
||||
>
|
||||
<CallIcon />
|
||||
</IconButton>
|
||||
|
||||
<IconButton
|
||||
size="small"
|
||||
sx={{ background: "#F2F6F8" }}
|
||||
className='ml-5px for-dark-button'
|
||||
>
|
||||
<MoreVertIcon />
|
||||
</IconButton>
|
||||
</Box>
|
||||
</Box>
|
||||
|
||||
{/* Chat List */}
|
||||
<div className="chat-list-box">
|
||||
{/* Left Chat */}
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
maxWidth: "730px",
|
||||
mb: "20px",
|
||||
}}
|
||||
>
|
||||
<img
|
||||
src="/images/user3.png"
|
||||
alt="user"
|
||||
width="35px"
|
||||
height="35px"
|
||||
className="borRadius100"
|
||||
/>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
}}
|
||||
className="ml-1"
|
||||
>
|
||||
<Box>
|
||||
<Typography
|
||||
sx={{
|
||||
background: "#F5F6FA",
|
||||
borderRadius: "0px 15px 15px 15px",
|
||||
p: "14px 20px",
|
||||
mb: "10px",
|
||||
}}
|
||||
className="dark-BG-101010"
|
||||
>
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
||||
Pharetra ligula non varius curabitur etiam malesuada. Congue
|
||||
eget luctus aliquet consectetur.
|
||||
</Typography>
|
||||
|
||||
<Typography fontSize="12px">19:04</Typography>
|
||||
</Box>
|
||||
|
||||
{/* Replay Dropdown */}
|
||||
<Box className="ml-1">
|
||||
<div className="right-replay-box">
|
||||
<IconButton size="small">
|
||||
<MoreVertIcon fontSize="small" />
|
||||
</IconButton>
|
||||
|
||||
<div className="hover-caption">
|
||||
<List sx={{ display: "inline" }}>
|
||||
<ListItem disablePadding>
|
||||
<ListItemButton sx={{ padding: "1px 15px" }}>
|
||||
<ReplyIcon
|
||||
fontSize="small"
|
||||
sx={{ mt: "-4px" }}
|
||||
className="mr-5px"
|
||||
/>
|
||||
<ListItemText
|
||||
primary="Reply"
|
||||
primaryTypographyProps={{ fontSize: "12px" }}
|
||||
/>
|
||||
</ListItemButton>
|
||||
</ListItem>
|
||||
|
||||
<ListItem disablePadding>
|
||||
<ListItemButton sx={{ padding: "1px 15px" }}>
|
||||
<DeleteOutlineIcon
|
||||
fontSize="small"
|
||||
sx={{ mt: "-4px" }}
|
||||
className="mr-5px"
|
||||
/>
|
||||
<ListItemText
|
||||
primary="Delete"
|
||||
primaryTypographyProps={{ fontSize: "12px" }}
|
||||
/>
|
||||
</ListItemButton>
|
||||
</ListItem>
|
||||
</List>
|
||||
</div>
|
||||
</div>
|
||||
</Box>
|
||||
</Box>
|
||||
</Box>
|
||||
|
||||
{/* Right Chat */}
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
justifyContent: "end",
|
||||
maxWidth: "730px",
|
||||
mb: "20px",
|
||||
}}
|
||||
className="ml-auto"
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
}}
|
||||
className="ml-1"
|
||||
>
|
||||
{/* Replay Dropdown */}
|
||||
<Box>
|
||||
<div className="left-replay-box">
|
||||
<IconButton size="small">
|
||||
<MoreVertIcon fontSize="small" />
|
||||
</IconButton>
|
||||
|
||||
<div className="hover-caption">
|
||||
<List sx={{ display: "inline" }}>
|
||||
<ListItem disablePadding>
|
||||
<ListItemButton sx={{ padding: "1px 15px" }}>
|
||||
<ReplyIcon
|
||||
fontSize="small"
|
||||
sx={{ mt: "-4px" }}
|
||||
className="mr-5px"
|
||||
/>
|
||||
<ListItemText
|
||||
primary="Reply"
|
||||
primaryTypographyProps={{ fontSize: "12px" }}
|
||||
/>
|
||||
</ListItemButton>
|
||||
</ListItem>
|
||||
|
||||
<ListItem disablePadding>
|
||||
<ListItemButton sx={{ padding: "1px 15px" }}>
|
||||
<DeleteOutlineIcon
|
||||
fontSize="small"
|
||||
sx={{ mt: "-4px" }}
|
||||
className="mr-5px"
|
||||
/>
|
||||
<ListItemText
|
||||
primary="Delete"
|
||||
primaryTypographyProps={{ fontSize: "12px" }}
|
||||
/>
|
||||
</ListItemButton>
|
||||
</ListItem>
|
||||
</List>
|
||||
</div>
|
||||
</div>
|
||||
</Box>
|
||||
|
||||
<Box className="mr-1">
|
||||
<Typography
|
||||
sx={{
|
||||
background: "#757FEF",
|
||||
color: "#fff !important",
|
||||
borderRadius: "15px 0 15px 15px",
|
||||
p: "14px 20px",
|
||||
mb: "10px",
|
||||
}}
|
||||
>
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
||||
</Typography>
|
||||
|
||||
<Typography fontSize="12px" textAlign="end">
|
||||
19:04
|
||||
</Typography>
|
||||
</Box>
|
||||
</Box>
|
||||
|
||||
<img
|
||||
src="/images/user5.png"
|
||||
alt="user"
|
||||
width="35px"
|
||||
height="35px"
|
||||
className="borRadius100"
|
||||
/>
|
||||
</Box>
|
||||
|
||||
{/* Left Chat */}
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
maxWidth: "730px",
|
||||
mb: "20px",
|
||||
}}
|
||||
>
|
||||
<img
|
||||
src="/images/user3.png"
|
||||
alt="user"
|
||||
width="35px"
|
||||
height="35px"
|
||||
className="borRadius100"
|
||||
/>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
}}
|
||||
className="ml-1"
|
||||
>
|
||||
<Box>
|
||||
<Typography
|
||||
sx={{
|
||||
background: "#F5F6FA",
|
||||
borderRadius: "0px 15px 15px 15px",
|
||||
p: "14px 20px",
|
||||
mb: "10px",
|
||||
}}
|
||||
className="dark-BG-101010"
|
||||
>
|
||||
Lorem ipsum dolor sit amet 🔥! Lorem ipsum dolor sit amet,
|
||||
consectetur adipiscing elit.
|
||||
</Typography>
|
||||
|
||||
<Typography fontSize="12px">19:04</Typography>
|
||||
</Box>
|
||||
|
||||
{/* Replay Dropdown */}
|
||||
<Box className="ml-1">
|
||||
<div className="right-replay-box">
|
||||
<IconButton size="small">
|
||||
<MoreVertIcon fontSize="small" />
|
||||
</IconButton>
|
||||
|
||||
<div className="hover-caption">
|
||||
<List sx={{ display: "inline" }}>
|
||||
<ListItem disablePadding>
|
||||
<ListItemButton sx={{ padding: "1px 15px" }}>
|
||||
<ReplyIcon
|
||||
fontSize="small"
|
||||
sx={{ mt: "-4px" }}
|
||||
className="mr-5px"
|
||||
/>
|
||||
<ListItemText
|
||||
primary="Reply"
|
||||
primaryTypographyProps={{ fontSize: "12px" }}
|
||||
/>
|
||||
</ListItemButton>
|
||||
</ListItem>
|
||||
|
||||
<ListItem disablePadding>
|
||||
<ListItemButton sx={{ padding: "1px 15px" }}>
|
||||
<DeleteOutlineIcon
|
||||
fontSize="small"
|
||||
sx={{ mt: "-4px" }}
|
||||
className="mr-5px"
|
||||
/>
|
||||
<ListItemText
|
||||
primary="Delete"
|
||||
primaryTypographyProps={{ fontSize: "12px" }}
|
||||
/>
|
||||
</ListItemButton>
|
||||
</ListItem>
|
||||
</List>
|
||||
</div>
|
||||
</div>
|
||||
</Box>
|
||||
</Box>
|
||||
</Box>
|
||||
|
||||
{/* Right Chat */}
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
justifyContent: "end",
|
||||
maxWidth: "730px",
|
||||
mb: "20px",
|
||||
}}
|
||||
className="ml-auto"
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
}}
|
||||
className="ml-1"
|
||||
>
|
||||
{/* Replay Dropdown */}
|
||||
<Box>
|
||||
<div className="left-replay-box">
|
||||
<IconButton size="small">
|
||||
<MoreVertIcon fontSize="small" />
|
||||
</IconButton>
|
||||
|
||||
<div className="hover-caption">
|
||||
<List sx={{ display: "inline" }}>
|
||||
<ListItem disablePadding>
|
||||
<ListItemButton sx={{ padding: "1px 15px" }}>
|
||||
<ReplyIcon
|
||||
fontSize="small"
|
||||
sx={{ mt: "-4px" }}
|
||||
className="mr-5px"
|
||||
/>
|
||||
<ListItemText
|
||||
primary="Reply"
|
||||
primaryTypographyProps={{ fontSize: "12px" }}
|
||||
/>
|
||||
</ListItemButton>
|
||||
</ListItem>
|
||||
|
||||
<ListItem disablePadding>
|
||||
<ListItemButton sx={{ padding: "1px 15px" }}>
|
||||
<DeleteOutlineIcon
|
||||
fontSize="small"
|
||||
sx={{ mt: "-4px" }}
|
||||
className="mr-5px"
|
||||
/>
|
||||
<ListItemText
|
||||
primary="Delete"
|
||||
primaryTypographyProps={{ fontSize: "12px" }}
|
||||
/>
|
||||
</ListItemButton>
|
||||
</ListItem>
|
||||
</List>
|
||||
</div>
|
||||
</div>
|
||||
</Box>
|
||||
|
||||
<Box className="mr-1">
|
||||
<Typography
|
||||
sx={{
|
||||
background: "#757FEF",
|
||||
color: "#fff !important",
|
||||
borderRadius: "15px 0 15px 15px",
|
||||
p: "14px 20px",
|
||||
mb: "10px",
|
||||
}}
|
||||
>
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem
|
||||
ipsum dolor sit
|
||||
</Typography>
|
||||
|
||||
<Typography fontSize="12px" textAlign="end">
|
||||
19:04
|
||||
</Typography>
|
||||
</Box>
|
||||
</Box>
|
||||
|
||||
<img
|
||||
src="/images/user5.png"
|
||||
alt="user"
|
||||
width="35px"
|
||||
height="35px"
|
||||
className="borRadius100"
|
||||
/>
|
||||
</Box>
|
||||
|
||||
{/* Left Chat */}
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
maxWidth: "730px",
|
||||
mb: "20px",
|
||||
}}
|
||||
>
|
||||
<img
|
||||
src="/images/user3.png"
|
||||
alt="user"
|
||||
width="35px"
|
||||
height="35px"
|
||||
className="borRadius100"
|
||||
/>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
}}
|
||||
className="ml-1"
|
||||
>
|
||||
<Box>
|
||||
<Typography
|
||||
sx={{
|
||||
background: "#F5F6FA",
|
||||
borderRadius: "0px 15px 15px 15px",
|
||||
p: "14px 20px",
|
||||
mb: "10px",
|
||||
}}
|
||||
className="dark-BG-101010"
|
||||
>
|
||||
Sed ut perspiciatis unde omnis iste natus error sit voluptatem
|
||||
accusantium doloremque laudantium, totam rem aperiam, eaque
|
||||
ipsa quae ab illo inventore veritatis et quasi architecto
|
||||
beatae vitae dicta sunt explicabo.
|
||||
</Typography>
|
||||
|
||||
<Typography fontSize="12px">19:04</Typography>
|
||||
</Box>
|
||||
|
||||
{/* Replay Dropdown */}
|
||||
<Box className="ml-1">
|
||||
<div className="right-replay-box">
|
||||
<IconButton size="small">
|
||||
<MoreVertIcon fontSize="small" />
|
||||
</IconButton>
|
||||
|
||||
<div className="hover-caption">
|
||||
<List sx={{ display: "inline" }}>
|
||||
<ListItem disablePadding>
|
||||
<ListItemButton sx={{ padding: "1px 15px" }}>
|
||||
<ReplyIcon
|
||||
fontSize="small"
|
||||
sx={{ mt: "-4px" }}
|
||||
className="mr-5px"
|
||||
/>
|
||||
<ListItemText
|
||||
primary="Reply"
|
||||
primaryTypographyProps={{ fontSize: "12px" }}
|
||||
/>
|
||||
</ListItemButton>
|
||||
</ListItem>
|
||||
|
||||
<ListItem disablePadding>
|
||||
<ListItemButton sx={{ padding: "1px 15px" }}>
|
||||
<DeleteOutlineIcon
|
||||
fontSize="small"
|
||||
sx={{ mt: "-4px" }}
|
||||
className="mr-5px"
|
||||
/>
|
||||
<ListItemText
|
||||
primary="Delete"
|
||||
primaryTypographyProps={{ fontSize: "12px" }}
|
||||
/>
|
||||
</ListItemButton>
|
||||
</ListItem>
|
||||
</List>
|
||||
</div>
|
||||
</div>
|
||||
</Box>
|
||||
</Box>
|
||||
</Box>
|
||||
</div>
|
||||
|
||||
{/* Footer */}
|
||||
<Box
|
||||
sx={{
|
||||
background: "#F5F6FA",
|
||||
borderRadius: "15px",
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
p: "15px",
|
||||
position: "relative",
|
||||
}}
|
||||
className="dark-BG-101010"
|
||||
>
|
||||
<Box>
|
||||
<IconButton
|
||||
size="small"
|
||||
sx={{ background: "#F2F6F8" }}
|
||||
className='mr-5px for-dark-button'
|
||||
>
|
||||
<VideocamIcon />
|
||||
</IconButton>
|
||||
|
||||
<IconButton
|
||||
size="small"
|
||||
sx={{ background: "#F2F6F8" }}
|
||||
className='mr-5px for-dark-button'
|
||||
>
|
||||
<CallIcon />
|
||||
</IconButton>
|
||||
</Box>
|
||||
|
||||
<Box
|
||||
component="form"
|
||||
noValidate
|
||||
onSubmit={handleSubmit}
|
||||
sx={{
|
||||
flex: "auto",
|
||||
}}
|
||||
className="pr-60px"
|
||||
>
|
||||
<TextField
|
||||
fullWidth
|
||||
id="typeSomething"
|
||||
label="Type Something..."
|
||||
name="typeSomething"
|
||||
autoComplete="typeSomething"
|
||||
InputProps={{
|
||||
style: {
|
||||
borderRadius: 100,
|
||||
background: "#fff",
|
||||
},
|
||||
}}
|
||||
/>
|
||||
|
||||
<Button
|
||||
type="submit"
|
||||
variant="contained"
|
||||
sx={{
|
||||
textTransform: "capitalize",
|
||||
borderRadius: "100%",
|
||||
fontWeight: "500",
|
||||
fontSize: "16px",
|
||||
padding: "0",
|
||||
minWidth: "44px",
|
||||
minHeight: "44px",
|
||||
position: "absolute",
|
||||
top: "22px",
|
||||
color: "#fff !important"
|
||||
}}
|
||||
className="right-20px"
|
||||
>
|
||||
<SendIcon />
|
||||
</Button>
|
||||
</Box>
|
||||
</Box>
|
||||
</Box>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default ChatBoxThree;
|
||||
@@ -1,599 +0,0 @@
|
||||
import Typography from "@mui/material/Typography";
|
||||
import Box from "@mui/material/Box";
|
||||
import IconButton from "@mui/material/IconButton";
|
||||
import VideocamIcon from "@mui/icons-material/Videocam";
|
||||
import CallIcon from "@mui/icons-material/Call";
|
||||
import MoreVertIcon from "@mui/icons-material/MoreVert";
|
||||
import List from "@mui/material/List";
|
||||
import ListItem from "@mui/material/ListItem";
|
||||
import ListItemButton from "@mui/material/ListItemButton";
|
||||
import ListItemText from "@mui/material/ListItemText";
|
||||
import ReplyIcon from "@mui/icons-material/Reply";
|
||||
import DeleteOutlineIcon from "@mui/icons-material/DeleteOutline";
|
||||
import TextField from "@mui/material/TextField";
|
||||
import Button from "@mui/material/Button";
|
||||
import SendIcon from "@mui/icons-material/Send";
|
||||
|
||||
const ChatBoxTwo = () => {
|
||||
const handleSubmit = (event) => {
|
||||
event.preventDefault();
|
||||
const data = new FormData(event.currentTarget);
|
||||
console.log({
|
||||
email: data.get("email"),
|
||||
password: data.get("password"),
|
||||
});
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<Box
|
||||
sx={{
|
||||
border: "1px solid #F5F4F6",
|
||||
borderRadius: "14px",
|
||||
}}
|
||||
className="for-dark-chat-box"
|
||||
>
|
||||
{/* Header */}
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
justifyContent: "space-between",
|
||||
borderBottom: "1px solid #F5F4F6",
|
||||
borderRadius: "10px",
|
||||
p: "15px",
|
||||
}}
|
||||
className="for-dark-chat-header"
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
justifyContent: "space-between",
|
||||
}}
|
||||
>
|
||||
<img
|
||||
src="/images/user2.png"
|
||||
alt="user"
|
||||
width="40px"
|
||||
height="40px"
|
||||
className="borRadius100"
|
||||
/>
|
||||
<Box className="ml-1">
|
||||
<Typography as="h5" fontWeight="500">
|
||||
Nunez Faulkner
|
||||
</Typography>
|
||||
<Typography fontSize="12px" position="relative">
|
||||
<span className="active-status2 successBgColor"></span> Active
|
||||
Now
|
||||
</Typography>
|
||||
</Box>
|
||||
</Box>
|
||||
|
||||
<Box>
|
||||
<IconButton
|
||||
size="small"
|
||||
sx={{ background: "#F2F6F8" }}
|
||||
className='ml-5px for-dark-button'
|
||||
>
|
||||
<VideocamIcon />
|
||||
</IconButton>
|
||||
|
||||
<IconButton
|
||||
size="small"
|
||||
sx={{ background: "#F2F6F8" }}
|
||||
className='ml-5px for-dark-button'
|
||||
>
|
||||
<CallIcon />
|
||||
</IconButton>
|
||||
|
||||
<IconButton
|
||||
size="small"
|
||||
sx={{ background: "#F2F6F8" }}
|
||||
className='ml-5px for-dark-button'
|
||||
>
|
||||
<MoreVertIcon />
|
||||
</IconButton>
|
||||
</Box>
|
||||
</Box>
|
||||
|
||||
{/* Chat List */}
|
||||
<div className="chat-list-box">
|
||||
{/* Left Chat */}
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
maxWidth: "730px",
|
||||
mb: "20px",
|
||||
}}
|
||||
>
|
||||
<img
|
||||
src="/images/user2.png"
|
||||
alt="user"
|
||||
width="35px"
|
||||
height="35px"
|
||||
className="borRadius100"
|
||||
/>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
}}
|
||||
className="ml-1"
|
||||
>
|
||||
<Box>
|
||||
<Typography
|
||||
sx={{
|
||||
background: "#F5F6FA",
|
||||
borderRadius: "0px 15px 15px 15px",
|
||||
p: "14px 20px",
|
||||
mb: "10px",
|
||||
}}
|
||||
className="dark-BG-101010"
|
||||
>
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
||||
Pharetra ligula non varius curabitur etiam malesuada. Congue
|
||||
eget luctus aliquet consectetur.
|
||||
</Typography>
|
||||
|
||||
<Typography fontSize="12px">19:04</Typography>
|
||||
</Box>
|
||||
|
||||
{/* Replay Dropdown */}
|
||||
<Box className="ml-1">
|
||||
<div className="right-replay-box">
|
||||
<IconButton size="small">
|
||||
<MoreVertIcon fontSize="small" />
|
||||
</IconButton>
|
||||
|
||||
<div className="hover-caption">
|
||||
<List sx={{ display: "inline" }}>
|
||||
<ListItem disablePadding>
|
||||
<ListItemButton sx={{ padding: "1px 15px" }}>
|
||||
<ReplyIcon
|
||||
fontSize="small"
|
||||
sx={{ mt: "-4px" }}
|
||||
className="mr-5px"
|
||||
/>
|
||||
<ListItemText
|
||||
primary="Reply"
|
||||
primaryTypographyProps={{ fontSize: "12px" }}
|
||||
/>
|
||||
</ListItemButton>
|
||||
</ListItem>
|
||||
|
||||
<ListItem disablePadding>
|
||||
<ListItemButton sx={{ padding: "1px 15px" }}>
|
||||
<DeleteOutlineIcon
|
||||
fontSize="small"
|
||||
sx={{ mt: "-4px" }}
|
||||
className="mr-5px"
|
||||
/>
|
||||
<ListItemText
|
||||
primary="Delete"
|
||||
primaryTypographyProps={{ fontSize: "12px" }}
|
||||
/>
|
||||
</ListItemButton>
|
||||
</ListItem>
|
||||
</List>
|
||||
</div>
|
||||
</div>
|
||||
</Box>
|
||||
</Box>
|
||||
</Box>
|
||||
|
||||
{/* Right Chat */}
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
justifyContent: "end",
|
||||
maxWidth: "730px",
|
||||
mb: "20px",
|
||||
}}
|
||||
className="ml-auto"
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
}}
|
||||
className="ml-1"
|
||||
>
|
||||
{/* Replay Dropdown */}
|
||||
<Box>
|
||||
<div className="left-replay-box">
|
||||
<IconButton size="small">
|
||||
<MoreVertIcon fontSize="small" />
|
||||
</IconButton>
|
||||
|
||||
<div className="hover-caption">
|
||||
<List sx={{ display: "inline" }}>
|
||||
<ListItem disablePadding>
|
||||
<ListItemButton sx={{ padding: "1px 15px" }}>
|
||||
<ReplyIcon
|
||||
fontSize="small"
|
||||
sx={{ mt: "-4px" }}
|
||||
className="mr-5px"
|
||||
/>
|
||||
<ListItemText
|
||||
primary="Reply"
|
||||
primaryTypographyProps={{ fontSize: "12px" }}
|
||||
/>
|
||||
</ListItemButton>
|
||||
</ListItem>
|
||||
|
||||
<ListItem disablePadding>
|
||||
<ListItemButton sx={{ padding: "1px 15px" }}>
|
||||
<DeleteOutlineIcon
|
||||
fontSize="small"
|
||||
sx={{ mt: "-4px" }}
|
||||
className="mr-5px"
|
||||
/>
|
||||
<ListItemText
|
||||
primary="Delete"
|
||||
primaryTypographyProps={{ fontSize: "12px" }}
|
||||
/>
|
||||
</ListItemButton>
|
||||
</ListItem>
|
||||
</List>
|
||||
</div>
|
||||
</div>
|
||||
</Box>
|
||||
|
||||
<Box className="mr-1">
|
||||
<Typography
|
||||
sx={{
|
||||
background: "#757FEF",
|
||||
color: "#fff !important",
|
||||
borderRadius: "15px 0 15px 15px",
|
||||
p: "14px 20px",
|
||||
mb: "10px",
|
||||
}}
|
||||
>
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
||||
</Typography>
|
||||
|
||||
<Typography fontSize="12px" textAlign="end">
|
||||
19:04
|
||||
</Typography>
|
||||
</Box>
|
||||
</Box>
|
||||
|
||||
<img
|
||||
src="/images/user4.png"
|
||||
alt="user"
|
||||
width="35px"
|
||||
height="35px"
|
||||
className="borRadius100"
|
||||
/>
|
||||
</Box>
|
||||
|
||||
{/* Left Chat */}
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
maxWidth: "730px",
|
||||
mb: "20px",
|
||||
}}
|
||||
>
|
||||
<img
|
||||
src="/images/user2.png"
|
||||
alt="user"
|
||||
width="35px"
|
||||
height="35px"
|
||||
className="borRadius100"
|
||||
/>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
}}
|
||||
className="ml-1"
|
||||
>
|
||||
<Box>
|
||||
<Typography
|
||||
sx={{
|
||||
background: "#F5F6FA",
|
||||
borderRadius: "0px 15px 15px 15px",
|
||||
p: "14px 20px",
|
||||
mb: "10px",
|
||||
}}
|
||||
className="dark-BG-101010"
|
||||
>
|
||||
Lorem ipsum dolor sit amet 🔥! Lorem ipsum dolor sit amet,
|
||||
consectetur adipiscing elit.
|
||||
</Typography>
|
||||
|
||||
<Typography fontSize="12px">19:04</Typography>
|
||||
</Box>
|
||||
|
||||
{/* Replay Dropdown */}
|
||||
<Box className="ml-1">
|
||||
<div className="right-replay-box">
|
||||
<IconButton size="small">
|
||||
<MoreVertIcon fontSize="small" />
|
||||
</IconButton>
|
||||
|
||||
<div className="hover-caption">
|
||||
<List sx={{ display: "inline" }}>
|
||||
<ListItem disablePadding>
|
||||
<ListItemButton sx={{ padding: "1px 15px" }}>
|
||||
<ReplyIcon
|
||||
fontSize="small"
|
||||
sx={{ mt: "-4px" }}
|
||||
className="mr-5px"
|
||||
/>
|
||||
<ListItemText
|
||||
primary="Reply"
|
||||
primaryTypographyProps={{ fontSize: "12px" }}
|
||||
/>
|
||||
</ListItemButton>
|
||||
</ListItem>
|
||||
|
||||
<ListItem disablePadding>
|
||||
<ListItemButton sx={{ padding: "1px 15px" }}>
|
||||
<DeleteOutlineIcon
|
||||
fontSize="small"
|
||||
sx={{ mt: "-4px" }}
|
||||
className="mr-5px"
|
||||
/>
|
||||
<ListItemText
|
||||
primary="Delete"
|
||||
primaryTypographyProps={{ fontSize: "12px" }}
|
||||
/>
|
||||
</ListItemButton>
|
||||
</ListItem>
|
||||
</List>
|
||||
</div>
|
||||
</div>
|
||||
</Box>
|
||||
</Box>
|
||||
</Box>
|
||||
|
||||
{/* Right Chat */}
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
justifyContent: "end",
|
||||
maxWidth: "730px",
|
||||
mb: "20px",
|
||||
}}
|
||||
className="ml-auto"
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
}}
|
||||
className="ml-1"
|
||||
>
|
||||
{/* Replay Dropdown */}
|
||||
<Box>
|
||||
<div className="left-replay-box">
|
||||
<IconButton size="small">
|
||||
<MoreVertIcon fontSize="small" />
|
||||
</IconButton>
|
||||
|
||||
<div className="hover-caption">
|
||||
<List sx={{ display: "inline" }}>
|
||||
<ListItem disablePadding>
|
||||
<ListItemButton sx={{ padding: "1px 15px" }}>
|
||||
<ReplyIcon
|
||||
fontSize="small"
|
||||
sx={{ mt: "-4px" }}
|
||||
className="mr-5px"
|
||||
/>
|
||||
<ListItemText
|
||||
primary="Reply"
|
||||
primaryTypographyProps={{ fontSize: "12px" }}
|
||||
/>
|
||||
</ListItemButton>
|
||||
</ListItem>
|
||||
|
||||
<ListItem disablePadding>
|
||||
<ListItemButton sx={{ padding: "1px 15px" }}>
|
||||
<DeleteOutlineIcon
|
||||
fontSize="small"
|
||||
sx={{ mt: "-4px" }}
|
||||
className="mr-5px"
|
||||
/>
|
||||
<ListItemText
|
||||
primary="Delete"
|
||||
primaryTypographyProps={{ fontSize: "12px" }}
|
||||
/>
|
||||
</ListItemButton>
|
||||
</ListItem>
|
||||
</List>
|
||||
</div>
|
||||
</div>
|
||||
</Box>
|
||||
|
||||
<Box className="mr-1">
|
||||
<Typography
|
||||
sx={{
|
||||
background: "#757FEF",
|
||||
color: "#fff !important",
|
||||
borderRadius: "15px 0 15px 15px",
|
||||
p: "14px 20px",
|
||||
mb: "10px",
|
||||
}}
|
||||
>
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem
|
||||
ipsum dolor sit
|
||||
</Typography>
|
||||
|
||||
<Typography fontSize="12px" textAlign="end">
|
||||
19:04
|
||||
</Typography>
|
||||
</Box>
|
||||
</Box>
|
||||
|
||||
<img
|
||||
src="/images/user4.png"
|
||||
alt="user"
|
||||
width="35px"
|
||||
height="35px"
|
||||
className="borRadius100"
|
||||
/>
|
||||
</Box>
|
||||
|
||||
{/* Left Chat */}
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
maxWidth: "730px",
|
||||
mb: "20px",
|
||||
}}
|
||||
>
|
||||
<img
|
||||
src="/images/user2.png"
|
||||
alt="user"
|
||||
width="35px"
|
||||
height="35px"
|
||||
className="borRadius100"
|
||||
/>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
}}
|
||||
className="ml-1"
|
||||
>
|
||||
<Box>
|
||||
<Typography
|
||||
sx={{
|
||||
background: "#F5F6FA",
|
||||
borderRadius: "0px 15px 15px 15px",
|
||||
p: "14px 20px",
|
||||
mb: "10px",
|
||||
}}
|
||||
className="dark-BG-101010"
|
||||
>
|
||||
Sed ut perspiciatis unde omnis iste natus error sit voluptatem
|
||||
accusantium doloremque laudantium, totam rem aperiam, eaque
|
||||
ipsa quae ab illo inventore veritatis et quasi architecto
|
||||
beatae vitae dicta sunt explicabo.
|
||||
</Typography>
|
||||
|
||||
<Typography fontSize="12px">19:04</Typography>
|
||||
</Box>
|
||||
|
||||
{/* Replay Dropdown */}
|
||||
<Box className="ml-1">
|
||||
<div className="right-replay-box">
|
||||
<IconButton size="small">
|
||||
<MoreVertIcon fontSize="small" />
|
||||
</IconButton>
|
||||
|
||||
<div className="hover-caption">
|
||||
<List sx={{ display: "inline" }}>
|
||||
<ListItem disablePadding>
|
||||
<ListItemButton sx={{ padding: "1px 15px" }}>
|
||||
<ReplyIcon
|
||||
fontSize="small"
|
||||
sx={{ mt: "-4px" }}
|
||||
className="mr-5px"
|
||||
/>
|
||||
<ListItemText
|
||||
primary="Reply"
|
||||
primaryTypographyProps={{ fontSize: "12px" }}
|
||||
/>
|
||||
</ListItemButton>
|
||||
</ListItem>
|
||||
|
||||
<ListItem disablePadding>
|
||||
<ListItemButton sx={{ padding: "1px 15px" }}>
|
||||
<DeleteOutlineIcon
|
||||
fontSize="small"
|
||||
sx={{ mt: "-4px" }}
|
||||
className="mr-5px"
|
||||
/>
|
||||
<ListItemText
|
||||
primary="Delete"
|
||||
primaryTypographyProps={{ fontSize: "12px" }}
|
||||
/>
|
||||
</ListItemButton>
|
||||
</ListItem>
|
||||
</List>
|
||||
</div>
|
||||
</div>
|
||||
</Box>
|
||||
</Box>
|
||||
</Box>
|
||||
</div>
|
||||
|
||||
{/* Footer */}
|
||||
<Box
|
||||
sx={{
|
||||
background: "#F5F6FA",
|
||||
borderRadius: "15px",
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
p: "15px",
|
||||
position: "relative",
|
||||
}}
|
||||
className="dark-BG-101010"
|
||||
>
|
||||
<Box>
|
||||
<IconButton
|
||||
size="small"
|
||||
sx={{ background: "#F2F6F8" }}
|
||||
className='mr-5px for-dark-button'
|
||||
>
|
||||
<VideocamIcon />
|
||||
</IconButton>
|
||||
|
||||
<IconButton
|
||||
size="small"
|
||||
sx={{ background: "#F2F6F8" }}
|
||||
className='mr-5px for-dark-button'
|
||||
>
|
||||
<CallIcon />
|
||||
</IconButton>
|
||||
</Box>
|
||||
|
||||
<Box
|
||||
component="form"
|
||||
noValidate
|
||||
onSubmit={handleSubmit}
|
||||
sx={{
|
||||
flex: "auto",
|
||||
}}
|
||||
className="pr-60px"
|
||||
>
|
||||
<TextField
|
||||
fullWidth
|
||||
id="typeSomething"
|
||||
label="Type Something..."
|
||||
name="typeSomething"
|
||||
autoComplete="typeSomething"
|
||||
InputProps={{
|
||||
style: {
|
||||
borderRadius: 100,
|
||||
background: "#fff",
|
||||
},
|
||||
}}
|
||||
/>
|
||||
|
||||
<Button
|
||||
type="submit"
|
||||
variant="contained"
|
||||
sx={{
|
||||
textTransform: "capitalize",
|
||||
borderRadius: "100%",
|
||||
fontWeight: "500",
|
||||
fontSize: "16px",
|
||||
padding: "0",
|
||||
minWidth: "44px",
|
||||
minHeight: "44px",
|
||||
position: "absolute",
|
||||
top: "22px",
|
||||
color: "#fff !important"
|
||||
}}
|
||||
className="right-20px"
|
||||
>
|
||||
<SendIcon />
|
||||
</Button>
|
||||
</Box>
|
||||
</Box>
|
||||
</Box>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default ChatBoxTwo;
|
||||
@@ -1,218 +0,0 @@
|
||||
import React from "react";
|
||||
import Grid from "@mui/material/Grid";
|
||||
import { Box, Typography } from "@mui/material";
|
||||
import Card from "@mui/material/Card";
|
||||
import Menu from "@mui/material/Menu";
|
||||
import MenuItem from "@mui/material/MenuItem";
|
||||
import IconButton from "@mui/material/IconButton";
|
||||
import MoreHorizIcon from "@mui/icons-material/MoreHoriz";
|
||||
|
||||
const AssetsData = [
|
||||
{
|
||||
id: "1",
|
||||
icon: "/images/folder.png",
|
||||
title: "Projects",
|
||||
totalFiles: "387 Files",
|
||||
filesSize: "4.5 GB",
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
icon: "/images/folder.png",
|
||||
title: "Documents",
|
||||
totalFiles: "1572 Files",
|
||||
filesSize: "7.5 GB",
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
icon: "/images/folder.png",
|
||||
title: "Media",
|
||||
totalFiles: "1241 Files",
|
||||
filesSize: "2.8 GB",
|
||||
},
|
||||
{
|
||||
id: "4",
|
||||
icon: "/images/folder.png",
|
||||
title: "Applications",
|
||||
totalFiles: "2487 Files",
|
||||
filesSize: "4.5 GB",
|
||||
},
|
||||
{
|
||||
id: "5",
|
||||
icon: "/images/folder.png",
|
||||
title: "ET Template",
|
||||
totalFiles: "60 Files",
|
||||
filesSize: "8 GB",
|
||||
},
|
||||
{
|
||||
id: "6",
|
||||
icon: "/images/folder.png",
|
||||
title: "React Template",
|
||||
totalFiles: "120 Files",
|
||||
filesSize: "6.5 GB",
|
||||
},
|
||||
{
|
||||
id: "7",
|
||||
icon: "/images/folder.png",
|
||||
title: "Material UI",
|
||||
totalFiles: "40 Files",
|
||||
filesSize: "5.5 GB",
|
||||
},
|
||||
{
|
||||
id: "8",
|
||||
icon: "/images/folder.png",
|
||||
title: "WP Themes",
|
||||
totalFiles: "2487 Files",
|
||||
filesSize: "4.5 GB",
|
||||
},
|
||||
{
|
||||
id: "9",
|
||||
icon: "/images/folder.png",
|
||||
title: "Personal Photos",
|
||||
totalFiles: "2587 Files",
|
||||
filesSize: "14 GB",
|
||||
},
|
||||
{
|
||||
id: "10",
|
||||
icon: "/images/folder.png",
|
||||
title: "Mobile Apps",
|
||||
totalFiles: "55 Files",
|
||||
filesSize: "4.5 GB",
|
||||
},
|
||||
{
|
||||
id: "11",
|
||||
icon: "/images/folder.png",
|
||||
title: "Important Files",
|
||||
totalFiles: "200 Files",
|
||||
filesSize: "6.5 GB",
|
||||
},
|
||||
{
|
||||
id: "12",
|
||||
icon: "/images/folder.png",
|
||||
title: "Angular Template",
|
||||
totalFiles: "340 Files",
|
||||
filesSize: "7.5 GB",
|
||||
},
|
||||
];
|
||||
|
||||
const AllAssets = () => {
|
||||
const [anchorEl, setAnchorEl] = React.useState(null);
|
||||
const open = Boolean(anchorEl);
|
||||
const handleClick = (event) => {
|
||||
setAnchorEl(event.currentTarget);
|
||||
};
|
||||
const handleClose = () => {
|
||||
setAnchorEl(null);
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<Grid
|
||||
container
|
||||
rowSpacing={1}
|
||||
columnSpacing={{ xs: 1, sm: 1, md: 1, lg: 1, xl: 2 }}
|
||||
>
|
||||
{AssetsData.map((asset) => (
|
||||
<Grid item xs={12} sm={6} md={6} lg={6} xl={3} key={asset.id}>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "15px 20px 20px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
justifyContent: "end",
|
||||
}}
|
||||
>
|
||||
<Box>
|
||||
<IconButton
|
||||
onClick={handleClick}
|
||||
size="small"
|
||||
aria-controls={open ? "account-menu" : undefined}
|
||||
aria-haspopup="true"
|
||||
aria-expanded={open ? "true" : undefined}
|
||||
>
|
||||
<MoreHorizIcon />
|
||||
</IconButton>
|
||||
</Box>
|
||||
<Menu
|
||||
anchorEl={anchorEl}
|
||||
id="account-menu"
|
||||
open={open}
|
||||
onClose={handleClose}
|
||||
onClick={handleClose}
|
||||
PaperProps={{
|
||||
elevation: 0,
|
||||
sx: {
|
||||
overflow: "visible",
|
||||
filter: "drop-shadow(0px 2px 8px rgba(229,229,229,0.32))",
|
||||
mt: 1.5,
|
||||
"& .MuiAvatar-root": {
|
||||
width: 32,
|
||||
height: 32,
|
||||
ml: -0.5,
|
||||
mr: 1,
|
||||
},
|
||||
"&:before": {
|
||||
content: '""',
|
||||
display: "block",
|
||||
position: "absolute",
|
||||
top: 0,
|
||||
right: 14,
|
||||
width: 10,
|
||||
height: 10,
|
||||
bgcolor: "background.paper",
|
||||
transform: "translateY(-50%) rotate(45deg)",
|
||||
zIndex: 0,
|
||||
},
|
||||
},
|
||||
}}
|
||||
transformOrigin={{ horizontal: "right", vertical: "top" }}
|
||||
anchorOrigin={{ horizontal: "right", vertical: "bottom" }}
|
||||
>
|
||||
<MenuItem sx={{ fontSize: "13px" }}>
|
||||
<i className="ri-edit-2-line mr-5px"></i> Rename
|
||||
</MenuItem>
|
||||
<MenuItem sx={{ fontSize: "13px" }}>
|
||||
<i className="ri-download-cloud-line mr-5px"></i> Download
|
||||
</MenuItem>
|
||||
<MenuItem sx={{ fontSize: "13px" }}>
|
||||
<i className="ri-delete-bin-line mr-5px"></i> Remove
|
||||
</MenuItem>
|
||||
</Menu>
|
||||
</Box>
|
||||
|
||||
<Box
|
||||
sx={{
|
||||
textAlign: "center",
|
||||
padding: "30px 0",
|
||||
}}
|
||||
>
|
||||
<img src={asset.icon} alt="folder" />
|
||||
<Typography as="h3" fontWeight="500" fontSize="14px" mt="10px">
|
||||
{asset.title}
|
||||
</Typography>
|
||||
</Box>
|
||||
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
justifyContent: "space-between",
|
||||
alignItems: "center",
|
||||
}}
|
||||
>
|
||||
<Typography>{asset.totalFiles}</Typography>
|
||||
<Typography>{asset.filesSize}</Typography>
|
||||
</Box>
|
||||
</Card>
|
||||
</Grid>
|
||||
))}
|
||||
</Grid>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default AllAssets;
|
||||
@@ -1,218 +0,0 @@
|
||||
import React from "react";
|
||||
import Grid from "@mui/material/Grid";
|
||||
import { Box, Typography } from "@mui/material";
|
||||
import Card from "@mui/material/Card";
|
||||
import Menu from "@mui/material/Menu";
|
||||
import MenuItem from "@mui/material/MenuItem";
|
||||
import IconButton from "@mui/material/IconButton";
|
||||
import MoreHorizIcon from "@mui/icons-material/MoreHoriz";
|
||||
|
||||
const ProjectsData = [
|
||||
{
|
||||
id: "1",
|
||||
icon: "/images/folder.png",
|
||||
title: "ET Template",
|
||||
totalFiles: "60 Files",
|
||||
filesSize: "8 GB",
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
icon: "/images/folder.png",
|
||||
title: "React Template",
|
||||
totalFiles: "120 Files",
|
||||
filesSize: "6.5 GB",
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
icon: "/images/folder.png",
|
||||
title: "Material UI",
|
||||
totalFiles: "40 Files",
|
||||
filesSize: "5.5 GB",
|
||||
},
|
||||
{
|
||||
id: "4",
|
||||
icon: "/images/folder.png",
|
||||
title: "WP Themes",
|
||||
totalFiles: "2487 Files",
|
||||
filesSize: "4.5 GB",
|
||||
},
|
||||
{
|
||||
id: "5",
|
||||
icon: "/images/folder.png",
|
||||
title: "Personal Photos",
|
||||
totalFiles: "2587 Files",
|
||||
filesSize: "14 GB",
|
||||
},
|
||||
{
|
||||
id: "6",
|
||||
icon: "/images/folder.png",
|
||||
title: "Mobile Apps",
|
||||
totalFiles: "55 Files",
|
||||
filesSize: "4.5 GB",
|
||||
},
|
||||
{
|
||||
id: "7",
|
||||
icon: "/images/folder.png",
|
||||
title: "Important Files",
|
||||
totalFiles: "200 Files",
|
||||
filesSize: "6.5 GB",
|
||||
},
|
||||
{
|
||||
id: "8",
|
||||
icon: "/images/folder.png",
|
||||
title: "Angular Template",
|
||||
totalFiles: "340 Files",
|
||||
filesSize: "7.5 GB",
|
||||
},
|
||||
{
|
||||
id: "9",
|
||||
icon: "/images/folder.png",
|
||||
title: "Projects",
|
||||
totalFiles: "387 Files",
|
||||
filesSize: "4.5 GB",
|
||||
},
|
||||
{
|
||||
id: "10",
|
||||
icon: "/images/folder.png",
|
||||
title: "Documents",
|
||||
totalFiles: "1572 Files",
|
||||
filesSize: "7.5 GB",
|
||||
},
|
||||
{
|
||||
id: "11",
|
||||
icon: "/images/folder.png",
|
||||
title: "Media",
|
||||
totalFiles: "1241 Files",
|
||||
filesSize: "2.8 GB",
|
||||
},
|
||||
{
|
||||
id: "12",
|
||||
icon: "/images/folder.png",
|
||||
title: "Applications",
|
||||
totalFiles: "2487 Files",
|
||||
filesSize: "4.5 GB",
|
||||
},
|
||||
];
|
||||
|
||||
const AllProjects = () => {
|
||||
const [anchorEl, setAnchorEl] = React.useState(null);
|
||||
const open = Boolean(anchorEl);
|
||||
const handleClick = (event) => {
|
||||
setAnchorEl(event.currentTarget);
|
||||
};
|
||||
const handleClose = () => {
|
||||
setAnchorEl(null);
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<Grid
|
||||
container
|
||||
rowSpacing={1}
|
||||
columnSpacing={{ xs: 1, sm: 1, md: 1, lg: 1, xl: 2 }}
|
||||
>
|
||||
{ProjectsData.map((project) => (
|
||||
<Grid item xs={12} sm={6} md={6} lg={6} xl={3} key={project.id}>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "15px 20px 20px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
justifyContent: "end",
|
||||
}}
|
||||
>
|
||||
<Box>
|
||||
<IconButton
|
||||
onClick={handleClick}
|
||||
size="small"
|
||||
aria-controls={open ? "account-menu" : undefined}
|
||||
aria-haspopup="true"
|
||||
aria-expanded={open ? "true" : undefined}
|
||||
>
|
||||
<MoreHorizIcon />
|
||||
</IconButton>
|
||||
</Box>
|
||||
<Menu
|
||||
anchorEl={anchorEl}
|
||||
id="account-menu"
|
||||
open={open}
|
||||
onClose={handleClose}
|
||||
onClick={handleClose}
|
||||
PaperProps={{
|
||||
elevation: 0,
|
||||
sx: {
|
||||
overflow: "visible",
|
||||
filter: "drop-shadow(0px 2px 8px rgba(229,229,229,0.32))",
|
||||
mt: 1.5,
|
||||
"& .MuiAvatar-root": {
|
||||
width: 32,
|
||||
height: 32,
|
||||
ml: -0.5,
|
||||
mr: 1,
|
||||
},
|
||||
"&:before": {
|
||||
content: '""',
|
||||
display: "block",
|
||||
position: "absolute",
|
||||
top: 0,
|
||||
right: 14,
|
||||
width: 10,
|
||||
height: 10,
|
||||
bgcolor: "background.paper",
|
||||
transform: "translateY(-50%) rotate(45deg)",
|
||||
zIndex: 0,
|
||||
},
|
||||
},
|
||||
}}
|
||||
transformOrigin={{ horizontal: "right", vertical: "top" }}
|
||||
anchorOrigin={{ horizontal: "right", vertical: "bottom" }}
|
||||
>
|
||||
<MenuItem sx={{ fontSize: "13px" }}>
|
||||
<i className="ri-edit-2-line mr-5px"></i> Rename
|
||||
</MenuItem>
|
||||
<MenuItem sx={{ fontSize: "13px" }}>
|
||||
<i className="ri-download-cloud-line mr-5px"></i> Download
|
||||
</MenuItem>
|
||||
<MenuItem sx={{ fontSize: "13px" }}>
|
||||
<i className="ri-delete-bin-line mr-5px"></i> Remove
|
||||
</MenuItem>
|
||||
</Menu>
|
||||
</Box>
|
||||
|
||||
<Box
|
||||
sx={{
|
||||
textAlign: "center",
|
||||
padding: "30px 0",
|
||||
}}
|
||||
>
|
||||
<img src={project.icon} alt="folder" />
|
||||
<Typography as="h3" fontWeight="500" fontSize="14px" mt="10px">
|
||||
{project.title}
|
||||
</Typography>
|
||||
</Box>
|
||||
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
justifyContent: "space-between",
|
||||
alignItems: "center",
|
||||
}}
|
||||
>
|
||||
<Typography>{project.totalFiles}</Typography>
|
||||
<Typography>{project.filesSize}</Typography>
|
||||
</Box>
|
||||
</Card>
|
||||
</Grid>
|
||||
))}
|
||||
</Grid>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default AllProjects;
|
||||
@@ -1,469 +0,0 @@
|
||||
import React from "react";
|
||||
import { Box, Typography } from "@mui/material";
|
||||
import Grid from "@mui/material/Grid";
|
||||
import Card from "@mui/material/Card";
|
||||
import Table from "@mui/material/Table";
|
||||
import TableBody from "@mui/material/TableBody";
|
||||
import TableCell from "@mui/material/TableCell";
|
||||
import TableContainer from "@mui/material/TableContainer";
|
||||
import TableHead from "@mui/material/TableHead";
|
||||
import TableRow from "@mui/material/TableRow";
|
||||
import Paper from "@mui/material/Paper";
|
||||
import Tooltip from "@mui/material/Tooltip";
|
||||
import IconButton from "@mui/material/IconButton";
|
||||
import DeleteIcon from "@mui/icons-material/Delete";
|
||||
import CloudDownloadIcon from "@mui/icons-material/CloudDownload";
|
||||
import DriveFileRenameOutlineIcon from "@mui/icons-material/DriveFileRenameOutline";
|
||||
import Backdrop from "@mui/material/Backdrop";
|
||||
import Button from "@mui/material/Button";
|
||||
import Fade from "@mui/material/Fade";
|
||||
import Modal from "@mui/material/Modal";
|
||||
import TextField from "@mui/material/TextField";
|
||||
import AddIcon from "@mui/icons-material/Add";
|
||||
import ClearIcon from "@mui/icons-material/Clear";
|
||||
|
||||
// Create Folder Modal Style
|
||||
const style = {
|
||||
position: "absolute",
|
||||
top: "50%",
|
||||
left: "50%",
|
||||
transform: "translate(-50%, -50%)",
|
||||
maxWidth: 500,
|
||||
width: "100%",
|
||||
bgcolor: "background.paper",
|
||||
boxShadow: 24,
|
||||
borderRadius: "8px",
|
||||
};
|
||||
|
||||
function createData(name, icon, owner, fileSize, listedDate, fileItem) {
|
||||
return { name, icon, owner, fileSize, listedDate, fileItem };
|
||||
}
|
||||
|
||||
const rows = [
|
||||
createData(
|
||||
"Product UI/UX Design",
|
||||
"/images/folder.png",
|
||||
"Danielle Thompson",
|
||||
"0.7 GB",
|
||||
"Mar 08, 2021",
|
||||
"02"
|
||||
),
|
||||
createData(
|
||||
"App Design & Development",
|
||||
"/images/folder.png",
|
||||
"ET Themes",
|
||||
"521 MB",
|
||||
"Feb 13, 2021",
|
||||
"01"
|
||||
),
|
||||
createData(
|
||||
"Ubold Sketch Design",
|
||||
"/images/folder.png",
|
||||
"Gary Coley",
|
||||
"64.2 MB",
|
||||
"Dec 18, 2020",
|
||||
"02"
|
||||
),
|
||||
createData(
|
||||
"Annualreport.pdf",
|
||||
"/images/folder.png",
|
||||
"Cooper Sharwood",
|
||||
"12.5 GB",
|
||||
"Nov 25, 2020",
|
||||
"05"
|
||||
),
|
||||
createData(
|
||||
"Wireframes",
|
||||
"/images/folder.png",
|
||||
"Jasper Rigg",
|
||||
"8.3 MB",
|
||||
"Nov 25, 2019",
|
||||
"03"
|
||||
),
|
||||
createData(
|
||||
"App Design",
|
||||
"/images/folder.png",
|
||||
"ET Agency",
|
||||
"5 GB",
|
||||
"Jan 08, 2022",
|
||||
"15"
|
||||
),
|
||||
createData(
|
||||
"Web Design & Development",
|
||||
"/images/folder.png",
|
||||
"ET Templates",
|
||||
"13 GB",
|
||||
"Jan 13, 2022",
|
||||
"90"
|
||||
),
|
||||
createData(
|
||||
"React Template",
|
||||
"/images/folder.png",
|
||||
"ET Company",
|
||||
"100 GB",
|
||||
"Dec 18, 2021",
|
||||
"120"
|
||||
),
|
||||
createData(
|
||||
"Material Template",
|
||||
"/images/folder.png",
|
||||
"Cooper Sharwood",
|
||||
"12.5 GB",
|
||||
"Nov 25, 2020",
|
||||
"05"
|
||||
),
|
||||
createData(
|
||||
"Angular Template",
|
||||
"/images/folder.png",
|
||||
"Jasper Rigg",
|
||||
"8.3 MB",
|
||||
"Nov 25, 2019",
|
||||
"03"
|
||||
),
|
||||
];
|
||||
|
||||
const AllRecentFiles = () => {
|
||||
// Create Folder Modal
|
||||
const [open, setOpen] = React.useState(false);
|
||||
const handleOpen = () => setOpen(true);
|
||||
const handleClose = () => setOpen(false);
|
||||
|
||||
// Form
|
||||
const handleSubmit = (event) => {
|
||||
event.preventDefault();
|
||||
const data = new FormData(event.currentTarget);
|
||||
console.log({
|
||||
email: data.get("email"),
|
||||
password: data.get("password"),
|
||||
});
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "25px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
justifyContent: "space-between",
|
||||
alignItems: "center",
|
||||
borderBottom: "1px solid #EEF0F7",
|
||||
paddingBottom: "10px",
|
||||
mb: "20px",
|
||||
}}
|
||||
className="for-dark-bottom-border"
|
||||
>
|
||||
<Typography
|
||||
as="h3"
|
||||
sx={{
|
||||
fontSize: 18,
|
||||
fontWeight: 600,
|
||||
}}
|
||||
>
|
||||
Recent Files
|
||||
</Typography>
|
||||
|
||||
<Button
|
||||
onClick={handleOpen}
|
||||
variant="contained"
|
||||
sx={{
|
||||
textTransform: "capitalize",
|
||||
borderRadius: "8px",
|
||||
fontWeight: "600",
|
||||
fontSize: "13px",
|
||||
padding: "12px 20px",
|
||||
color: "#fff !important",
|
||||
}}
|
||||
>
|
||||
<AddIcon
|
||||
sx={{ position: "relative", top: "-1px" }}
|
||||
className="mr-5px"
|
||||
/>{" "}
|
||||
Create Folder
|
||||
</Button>
|
||||
</Box>
|
||||
|
||||
<TableContainer
|
||||
component={Paper}
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
maxHeight: "650px",
|
||||
overflowY: "auto",
|
||||
}}
|
||||
>
|
||||
<Table
|
||||
sx={{ minWidth: 800 }}
|
||||
aria-label="simple table"
|
||||
className="dark-table"
|
||||
>
|
||||
<TableHead sx={{ background: "#F7FAFF" }}>
|
||||
<TableRow>
|
||||
<TableCell
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
Name
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
Owner
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
File Size
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
Listed Date
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
File Item
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="right"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
Actions
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
</TableHead>
|
||||
|
||||
<TableBody>
|
||||
{rows.map((row) => (
|
||||
<TableRow
|
||||
key={row.name}
|
||||
sx={{ "&:last-child td, &:last-child th": { border: 0 } }}
|
||||
>
|
||||
<TableCell
|
||||
sx={{ borderBottom: "1px solid #F7FAFF" }}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
}}
|
||||
>
|
||||
<img src={row.icon} alt="Image" width="22px" />
|
||||
<Typography
|
||||
as="h5"
|
||||
fontWeight="600"
|
||||
fontSize="13px"
|
||||
className="ml-1"
|
||||
>
|
||||
{row.name}
|
||||
</Typography>
|
||||
</Box>
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13px" }}
|
||||
>
|
||||
{row.owner}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13px" }}
|
||||
>
|
||||
{row.fileSize}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13px" }}
|
||||
>
|
||||
{row.listedDate}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13px" }}
|
||||
>
|
||||
{row.fileItem}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="right"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF" }}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "inline-block",
|
||||
}}
|
||||
>
|
||||
<Tooltip title="Remove" placement="top">
|
||||
<IconButton
|
||||
aria-label="remove"
|
||||
size="small"
|
||||
color="danger"
|
||||
className="danger"
|
||||
>
|
||||
<DeleteIcon fontSize="inherit" />
|
||||
</IconButton>
|
||||
</Tooltip>
|
||||
|
||||
<Tooltip title="Download" placement="top">
|
||||
<IconButton
|
||||
aria-label="download"
|
||||
size="small"
|
||||
color="success"
|
||||
className="success"
|
||||
>
|
||||
<CloudDownloadIcon fontSize="inherit" />
|
||||
</IconButton>
|
||||
</Tooltip>
|
||||
|
||||
<Tooltip title="Rename" placement="top">
|
||||
<IconButton
|
||||
aria-label="rename"
|
||||
size="small"
|
||||
color="primary"
|
||||
className="primary"
|
||||
>
|
||||
<DriveFileRenameOutlineIcon fontSize="inherit" />
|
||||
</IconButton>
|
||||
</Tooltip>
|
||||
</Box>
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
))}
|
||||
</TableBody>
|
||||
</Table>
|
||||
</TableContainer>
|
||||
</Card>
|
||||
|
||||
{/* Create Folder Modal */}
|
||||
<Modal
|
||||
aria-labelledby="transition-modal-title"
|
||||
aria-describedby="transition-modal-description"
|
||||
open={open}
|
||||
onClose={handleClose}
|
||||
closeAfterTransition
|
||||
BackdropComponent={Backdrop}
|
||||
BackdropProps={{
|
||||
timeout: 500,
|
||||
}}
|
||||
>
|
||||
<Fade in={open}>
|
||||
<Box sx={style} className="dark-BG-101010">
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
justifyContent: "space-between",
|
||||
alignItems: "center",
|
||||
background: "#EDEFF5",
|
||||
borderRadius: "8px",
|
||||
padding: "25px 20px",
|
||||
}}
|
||||
className="bg-black"
|
||||
>
|
||||
<Typography
|
||||
id="modal-modal-title"
|
||||
variant="h6"
|
||||
component="h2"
|
||||
sx={{
|
||||
fontWeight: "600",
|
||||
fontSize: "20px",
|
||||
}}
|
||||
>
|
||||
Create Folder
|
||||
</Typography>
|
||||
|
||||
<IconButton
|
||||
aria-label="remove"
|
||||
size="small"
|
||||
onClick={handleClose}
|
||||
className="modal-close"
|
||||
>
|
||||
<ClearIcon />
|
||||
</IconButton>
|
||||
</Box>
|
||||
|
||||
<Box component="form" noValidate onSubmit={handleSubmit}>
|
||||
<Box
|
||||
sx={{
|
||||
background: "#fff",
|
||||
padding: "30px 20px",
|
||||
borderRadius: "8px",
|
||||
}}
|
||||
className="dark-BG-101010"
|
||||
>
|
||||
<Grid container alignItems="center" spacing={1}>
|
||||
<Grid item xs={12}>
|
||||
<Typography
|
||||
as="h5"
|
||||
sx={{
|
||||
fontWeight: "600",
|
||||
fontSize: "14px",
|
||||
mb: "12px",
|
||||
}}
|
||||
>
|
||||
Folder Name
|
||||
</Typography>
|
||||
<TextField
|
||||
autoComplete="given-name"
|
||||
name="folderName"
|
||||
required
|
||||
fullWidth
|
||||
id="folderName"
|
||||
label="Folder Name"
|
||||
autoFocus
|
||||
InputProps={{
|
||||
style: { borderRadius: 8 },
|
||||
}}
|
||||
/>
|
||||
</Grid>
|
||||
|
||||
<Grid item xs={12} textAlign="end">
|
||||
<Button
|
||||
type="submit"
|
||||
variant="contained"
|
||||
sx={{
|
||||
mt: 1,
|
||||
textTransform: "capitalize",
|
||||
borderRadius: "8px",
|
||||
fontWeight: "600",
|
||||
fontSize: "13px",
|
||||
padding: "12px 20px",
|
||||
color: "#fff !important",
|
||||
}}
|
||||
>
|
||||
<AddIcon
|
||||
sx={{
|
||||
position: "relative",
|
||||
top: "-2px",
|
||||
}}
|
||||
className="mr-5px"
|
||||
/>{" "}
|
||||
Add Folder
|
||||
</Button>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Box>
|
||||
</Box>
|
||||
</Box>
|
||||
</Fade>
|
||||
</Modal>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default AllRecentFiles;
|
||||
@@ -1,362 +0,0 @@
|
||||
import React from "react";
|
||||
import { Box, Typography } from "@mui/material";
|
||||
import Grid from "@mui/material/Grid";
|
||||
import Card from "@mui/material/Card";
|
||||
import IconButton from "@mui/material/IconButton";
|
||||
import Backdrop from "@mui/material/Backdrop";
|
||||
import Button from "@mui/material/Button";
|
||||
import Fade from "@mui/material/Fade";
|
||||
import Modal from "@mui/material/Modal";
|
||||
import TextField from "@mui/material/TextField";
|
||||
import AddIcon from "@mui/icons-material/Add";
|
||||
import ClearIcon from "@mui/icons-material/Clear";
|
||||
|
||||
// Create Files Modal Style
|
||||
const style = {
|
||||
position: "absolute",
|
||||
top: "50%",
|
||||
left: "50%",
|
||||
transform: "translate(-50%, -50%)",
|
||||
maxWidth: 500,
|
||||
width: "100%",
|
||||
bgcolor: "background.paper",
|
||||
boxShadow: 24,
|
||||
borderRadius: "8px",
|
||||
};
|
||||
|
||||
const FilesData = [
|
||||
{
|
||||
id: "1",
|
||||
icon: "/images/file1.png",
|
||||
title: "sketch-design.zip",
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
icon: "/images/file2.png",
|
||||
title: "Compile.png",
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
icon: "/images/file3.png",
|
||||
title: "Integrations.pdf",
|
||||
},
|
||||
{
|
||||
id: "4",
|
||||
icon: "/images/file4.png",
|
||||
title: "contact @32",
|
||||
},
|
||||
{
|
||||
id: "5",
|
||||
icon: "/images/file5.png",
|
||||
title: "app-Design.doc",
|
||||
},
|
||||
{
|
||||
id: "6",
|
||||
icon: "/images/file6.png",
|
||||
title: "image02.png",
|
||||
},
|
||||
{
|
||||
id: "7",
|
||||
icon: "/images/file7.png",
|
||||
title: "Ubold-sketch.doc",
|
||||
},
|
||||
{
|
||||
id: "8",
|
||||
icon: "/images/file8.png",
|
||||
title: "Annualreport.txt",
|
||||
},
|
||||
{
|
||||
id: "9",
|
||||
icon: "/images/file9.png",
|
||||
title: "Wireframes.xl4",
|
||||
},
|
||||
{
|
||||
id: "10",
|
||||
icon: "/images/file10.png",
|
||||
title: "contact @32.jpg",
|
||||
},
|
||||
{
|
||||
id: "11",
|
||||
icon: "/images/file1.png",
|
||||
title: "sketch-design.zip",
|
||||
},
|
||||
{
|
||||
id: "12",
|
||||
icon: "/images/file2.png",
|
||||
title: "Compile.png",
|
||||
},
|
||||
{
|
||||
id: "13",
|
||||
icon: "/images/file3.png",
|
||||
title: "Integrations.pdf",
|
||||
},
|
||||
{
|
||||
id: "14",
|
||||
icon: "/images/file4.png",
|
||||
title: "contact @32",
|
||||
},
|
||||
{
|
||||
id: "15",
|
||||
icon: "/images/file5.png",
|
||||
title: "app-Design.doc",
|
||||
},
|
||||
{
|
||||
id: "16",
|
||||
icon: "/images/file6.png",
|
||||
title: "image02.png",
|
||||
},
|
||||
{
|
||||
id: "17",
|
||||
icon: "/images/file7.png",
|
||||
title: "Ubold-sketch.doc",
|
||||
},
|
||||
{
|
||||
id: "18",
|
||||
icon: "/images/file8.png",
|
||||
title: "Annualreport.txt",
|
||||
},
|
||||
{
|
||||
id: "19",
|
||||
icon: "/images/file9.png",
|
||||
title: "Wireframes.xl4",
|
||||
},
|
||||
{
|
||||
id: "20",
|
||||
icon: "/images/file10.png",
|
||||
title: "contact @32.jpg",
|
||||
},
|
||||
{
|
||||
id: "21",
|
||||
icon: "/images/file5.png",
|
||||
title: "app-Design.doc",
|
||||
},
|
||||
{
|
||||
id: "22",
|
||||
icon: "/images/file6.png",
|
||||
title: "image02.png",
|
||||
},
|
||||
{
|
||||
id: "23",
|
||||
icon: "/images/file7.png",
|
||||
title: "Ubold-sketch.doc",
|
||||
},
|
||||
{
|
||||
id: "24",
|
||||
icon: "/images/file8.png",
|
||||
title: "Annualreport.txt",
|
||||
},
|
||||
];
|
||||
|
||||
const DocumentsFiles = () => {
|
||||
// Create Files Modal
|
||||
const [open, setOpen] = React.useState(false);
|
||||
const handleOpen = () => setOpen(true);
|
||||
const handleClose = () => setOpen(false);
|
||||
|
||||
// Form
|
||||
const handleSubmit = (event) => {
|
||||
event.preventDefault();
|
||||
const data = new FormData(event.currentTarget);
|
||||
console.log({
|
||||
email: data.get("email"),
|
||||
password: data.get("password"),
|
||||
});
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "25px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
justifyContent: "space-between",
|
||||
alignItems: "center",
|
||||
borderBottom: "1px solid #EEF0F7",
|
||||
paddingBottom: "10px",
|
||||
mb: "20px",
|
||||
}}
|
||||
className="for-dark-bottom-border"
|
||||
>
|
||||
<Typography
|
||||
as="h3"
|
||||
sx={{
|
||||
fontSize: 18,
|
||||
fontWeight: 500,
|
||||
}}
|
||||
>
|
||||
Documents
|
||||
</Typography>
|
||||
|
||||
<Button
|
||||
onClick={handleOpen}
|
||||
variant="contained"
|
||||
sx={{
|
||||
mt: 1,
|
||||
textTransform: "capitalize",
|
||||
borderRadius: "8px",
|
||||
fontWeight: "500",
|
||||
fontSize: "13px",
|
||||
padding: "12px 20px",
|
||||
color: "#fff !important",
|
||||
}}
|
||||
>
|
||||
<AddIcon
|
||||
sx={{ position: "relative", top: "-1px" }}
|
||||
className="mr-5px"
|
||||
/>{" "}
|
||||
Create Files
|
||||
</Button>
|
||||
</Box>
|
||||
|
||||
<Grid
|
||||
container
|
||||
rowSpacing={1}
|
||||
columnSpacing={{ xs: 1, sm: 1, md: 1, lg: 1, xl: 2 }}
|
||||
justifyContent="center"
|
||||
>
|
||||
{FilesData.map((file) => (
|
||||
<Grid item xs={12} sm={6} md={6} lg={4} xl={2} key={file.id}>
|
||||
<Box
|
||||
sx={{
|
||||
background: "#F3F6F9",
|
||||
borderRadius: "10px",
|
||||
padding: "40px 5px",
|
||||
textAlign: "center",
|
||||
}}
|
||||
className="dark-BG-101010"
|
||||
>
|
||||
<img src={file.icon} alt="Icon" width="56px" height="56px" />
|
||||
<Typography mt={1} fontWeight="500" fontSize="13px">
|
||||
{file.title}
|
||||
</Typography>
|
||||
</Box>
|
||||
</Grid>
|
||||
))}
|
||||
</Grid>
|
||||
</Card>
|
||||
|
||||
{/* Create Files Modal */}
|
||||
<Modal
|
||||
aria-labelledby="transition-modal-title"
|
||||
aria-describedby="transition-modal-description"
|
||||
open={open}
|
||||
onClose={handleClose}
|
||||
closeAfterTransition
|
||||
BackdropComponent={Backdrop}
|
||||
BackdropProps={{
|
||||
timeout: 500,
|
||||
}}
|
||||
>
|
||||
<Fade in={open}>
|
||||
<Box sx={style} className="dark-BG-101010">
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
justifyContent: "space-between",
|
||||
alignItems: "center",
|
||||
background: "#EDEFF5",
|
||||
borderRadius: "8px",
|
||||
padding: "25px 20px",
|
||||
}}
|
||||
className="bg-black"
|
||||
>
|
||||
<Typography
|
||||
id="modal-modal-title"
|
||||
variant="h6"
|
||||
component="h2"
|
||||
sx={{
|
||||
fontWeight: "500",
|
||||
fontSize: "20px",
|
||||
}}
|
||||
>
|
||||
Create Folder
|
||||
</Typography>
|
||||
|
||||
<IconButton
|
||||
aria-label="remove"
|
||||
size="small"
|
||||
onClick={handleClose}
|
||||
className="modal-close"
|
||||
>
|
||||
<ClearIcon />
|
||||
</IconButton>
|
||||
</Box>
|
||||
|
||||
<Box component="form" noValidate onSubmit={handleSubmit}>
|
||||
<Box
|
||||
sx={{
|
||||
background: "#fff",
|
||||
padding: "30px 20px",
|
||||
borderRadius: "8px",
|
||||
}}
|
||||
className="dark-BG-101010"
|
||||
>
|
||||
<Grid container alignItems="center" spacing={1}>
|
||||
<Grid item xs={12}>
|
||||
<Typography
|
||||
as="h5"
|
||||
sx={{
|
||||
fontWeight: "500",
|
||||
fontSize: "14px",
|
||||
mb: "12px",
|
||||
}}
|
||||
>
|
||||
Files Name
|
||||
</Typography>
|
||||
|
||||
<TextField
|
||||
autoComplete="given-name"
|
||||
name="filesName"
|
||||
required
|
||||
fullWidth
|
||||
id="filesName"
|
||||
label="Files Name"
|
||||
autoFocus
|
||||
InputProps={{
|
||||
style: { borderRadius: 8 },
|
||||
}}
|
||||
/>
|
||||
</Grid>
|
||||
|
||||
<Grid item xs={12} textAlign="end">
|
||||
<Button
|
||||
type="submit"
|
||||
variant="contained"
|
||||
sx={{
|
||||
mt: 1,
|
||||
textTransform: "capitalize",
|
||||
borderRadius: "8px",
|
||||
fontWeight: "500",
|
||||
fontSize: "13px",
|
||||
padding: "12px 20px",
|
||||
color: "#fff !important",
|
||||
}}
|
||||
>
|
||||
<AddIcon
|
||||
sx={{
|
||||
position: "relative",
|
||||
top: "-2px",
|
||||
}}
|
||||
className="mr-5px"
|
||||
/>{" "}
|
||||
Add Files
|
||||
</Button>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Box>
|
||||
</Box>
|
||||
</Box>
|
||||
</Fade>
|
||||
</Modal>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default DocumentsFiles;
|
||||
@@ -1,291 +0,0 @@
|
||||
import React from "react";
|
||||
import { Box, Typography } from "@mui/material";
|
||||
import Grid from "@mui/material/Grid";
|
||||
import Card from "@mui/material/Card";
|
||||
import IconButton from "@mui/material/IconButton";
|
||||
import Backdrop from "@mui/material/Backdrop";
|
||||
import Button from "@mui/material/Button";
|
||||
import Fade from "@mui/material/Fade";
|
||||
import Modal from "@mui/material/Modal";
|
||||
import TextField from "@mui/material/TextField";
|
||||
import AddIcon from "@mui/icons-material/Add";
|
||||
import ClearIcon from "@mui/icons-material/Clear";
|
||||
|
||||
// Create Files Modal Style
|
||||
const style = {
|
||||
position: "absolute",
|
||||
top: "50%",
|
||||
left: "50%",
|
||||
transform: "translate(-50%, -50%)",
|
||||
maxWidth: 500,
|
||||
width: "100%",
|
||||
bgcolor: "background.paper",
|
||||
boxShadow: 24,
|
||||
borderRadius: "8px",
|
||||
};
|
||||
|
||||
const FilesData = [
|
||||
{
|
||||
id: "1",
|
||||
icon: "/images/file1.png",
|
||||
title: "sketch-design.zip",
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
icon: "/images/file2.png",
|
||||
title: "Compile.png",
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
icon: "/images/file3.png",
|
||||
title: "Integrations.pdf",
|
||||
},
|
||||
{
|
||||
id: "4",
|
||||
icon: "/images/file4.png",
|
||||
title: "contact @32",
|
||||
},
|
||||
{
|
||||
id: "5",
|
||||
icon: "/images/file5.png",
|
||||
title: "app-Design.doc",
|
||||
},
|
||||
{
|
||||
id: "6",
|
||||
icon: "/images/file6.png",
|
||||
title: "image02.png",
|
||||
},
|
||||
{
|
||||
id: "7",
|
||||
icon: "/images/file7.png",
|
||||
title: "Ubold-sketch.doc",
|
||||
},
|
||||
{
|
||||
id: "8",
|
||||
icon: "/images/file8.png",
|
||||
title: "Annualreport.txt",
|
||||
},
|
||||
{
|
||||
id: "9",
|
||||
icon: "/images/file9.png",
|
||||
title: "Wireframes.xl4",
|
||||
},
|
||||
{
|
||||
id: "10",
|
||||
icon: "/images/file10.png",
|
||||
title: "contact @32.jpg",
|
||||
},
|
||||
];
|
||||
|
||||
const Files = () => {
|
||||
// Create Files Modal
|
||||
const [open, setOpen] = React.useState(false);
|
||||
const handleOpen = () => setOpen(true);
|
||||
const handleClose = () => setOpen(false);
|
||||
|
||||
// Form
|
||||
const handleSubmit = (event) => {
|
||||
event.preventDefault();
|
||||
const data = new FormData(event.currentTarget);
|
||||
console.log({
|
||||
email: data.get("email"),
|
||||
password: data.get("password"),
|
||||
});
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "25px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
justifyContent: "space-between",
|
||||
alignItems: "center",
|
||||
borderBottom: "1px solid #EEF0F7",
|
||||
paddingBottom: "10px",
|
||||
mb: "20px",
|
||||
}}
|
||||
className="for-dark-bottom-border"
|
||||
>
|
||||
<Typography
|
||||
as="h3"
|
||||
sx={{
|
||||
fontSize: 18,
|
||||
fontWeight: 500,
|
||||
}}
|
||||
>
|
||||
Files
|
||||
</Typography>
|
||||
|
||||
<Button
|
||||
onClick={handleOpen}
|
||||
variant="contained"
|
||||
sx={{
|
||||
textTransform: "capitalize",
|
||||
borderRadius: "8px",
|
||||
fontWeight: "500",
|
||||
fontSize: "13px",
|
||||
padding: "12px 20px",
|
||||
color: "#fff !important",
|
||||
}}
|
||||
>
|
||||
<AddIcon
|
||||
sx={{ position: "relative", top: "-1px" }}
|
||||
className="mr-5px"
|
||||
/>{" "}
|
||||
Create Files
|
||||
</Button>
|
||||
</Box>
|
||||
|
||||
<Grid
|
||||
container
|
||||
rowSpacing={1}
|
||||
columnSpacing={{ xs: 1, sm: 1, md: 1, lg: 1, xl: 2 }}
|
||||
justifyContent="center"
|
||||
>
|
||||
{FilesData.map((file) => (
|
||||
<Grid item xs={12} sm={6} md={4} lg={4} xl={2} key={file.id}>
|
||||
<Box
|
||||
sx={{
|
||||
background: "#F3F6F9",
|
||||
borderRadius: "10px",
|
||||
padding: "40px 5px",
|
||||
textAlign: "center",
|
||||
}}
|
||||
className="dark-BG-101010"
|
||||
>
|
||||
<img src={file.icon} alt="Icon" width="56px" height="56px" />
|
||||
<Typography mt={1} fontWeight="500" fontSize="13px">
|
||||
{file.title}
|
||||
</Typography>
|
||||
</Box>
|
||||
</Grid>
|
||||
))}
|
||||
</Grid>
|
||||
</Card>
|
||||
|
||||
{/* Create Files Modal */}
|
||||
<Modal
|
||||
aria-labelledby="transition-modal-title"
|
||||
aria-describedby="transition-modal-description"
|
||||
open={open}
|
||||
onClose={handleClose}
|
||||
closeAfterTransition
|
||||
BackdropComponent={Backdrop}
|
||||
BackdropProps={{
|
||||
timeout: 500,
|
||||
}}
|
||||
>
|
||||
<Fade in={open}>
|
||||
<Box sx={style} className="dark-BG-101010">
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
justifyContent: "space-between",
|
||||
alignItems: "center",
|
||||
background: "#EDEFF5",
|
||||
borderRadius: "8px",
|
||||
padding: "25px 20px",
|
||||
}}
|
||||
className="bg-black"
|
||||
>
|
||||
<Typography
|
||||
id="modal-modal-title"
|
||||
variant="h6"
|
||||
component="h2"
|
||||
sx={{
|
||||
fontWeight: "500",
|
||||
fontSize: "20px",
|
||||
}}
|
||||
>
|
||||
Create Folder
|
||||
</Typography>
|
||||
|
||||
<IconButton
|
||||
aria-label="remove"
|
||||
size="small"
|
||||
onClick={handleClose}
|
||||
className="modal-close"
|
||||
>
|
||||
<ClearIcon />
|
||||
</IconButton>
|
||||
</Box>
|
||||
|
||||
<Box component="form" noValidate onSubmit={handleSubmit}>
|
||||
<Box
|
||||
sx={{
|
||||
background: "#fff",
|
||||
padding: "30px 20px",
|
||||
borderRadius: "8px",
|
||||
}}
|
||||
className="dark-BG-101010"
|
||||
>
|
||||
<Grid container alignItems="center" spacing={1}>
|
||||
<Grid item xs={12}>
|
||||
<Typography
|
||||
as="h5"
|
||||
sx={{
|
||||
fontWeight: "500",
|
||||
fontSize: "14px",
|
||||
mb: "12px",
|
||||
}}
|
||||
>
|
||||
Files Name
|
||||
</Typography>
|
||||
|
||||
<TextField
|
||||
autoComplete="given-name"
|
||||
name="filesName"
|
||||
required
|
||||
fullWidth
|
||||
id="filesName"
|
||||
label="Files Name"
|
||||
autoFocus
|
||||
InputProps={{
|
||||
style: { borderRadius: 8 },
|
||||
}}
|
||||
/>
|
||||
</Grid>
|
||||
|
||||
<Grid item xs={12} textAlign="end">
|
||||
<Button
|
||||
type="submit"
|
||||
variant="contained"
|
||||
sx={{
|
||||
mt: 1,
|
||||
textTransform: "capitalize",
|
||||
borderRadius: "8px",
|
||||
fontWeight: "500",
|
||||
fontSize: "13px",
|
||||
padding: "12px 20px",
|
||||
color: "#fff !important",
|
||||
}}
|
||||
>
|
||||
<AddIcon
|
||||
sx={{
|
||||
position: "relative",
|
||||
top: "-2px",
|
||||
}}
|
||||
className="mr-5px"
|
||||
/>{" "}
|
||||
Add Files
|
||||
</Button>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Box>
|
||||
</Box>
|
||||
</Box>
|
||||
</Fade>
|
||||
</Modal>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default Files;
|
||||
@@ -1,470 +0,0 @@
|
||||
import React from "react";
|
||||
import { Box, Typography } from "@mui/material";
|
||||
import Grid from "@mui/material/Grid";
|
||||
import Card from "@mui/material/Card";
|
||||
import Table from "@mui/material/Table";
|
||||
import TableBody from "@mui/material/TableBody";
|
||||
import TableCell from "@mui/material/TableCell";
|
||||
import TableContainer from "@mui/material/TableContainer";
|
||||
import TableHead from "@mui/material/TableHead";
|
||||
import TableRow from "@mui/material/TableRow";
|
||||
import Paper from "@mui/material/Paper";
|
||||
import Tooltip from "@mui/material/Tooltip";
|
||||
import IconButton from "@mui/material/IconButton";
|
||||
import DeleteIcon from "@mui/icons-material/Delete";
|
||||
import CloudDownloadIcon from "@mui/icons-material/CloudDownload";
|
||||
import DriveFileRenameOutlineIcon from "@mui/icons-material/DriveFileRenameOutline";
|
||||
import Backdrop from "@mui/material/Backdrop";
|
||||
import Button from "@mui/material/Button";
|
||||
import Fade from "@mui/material/Fade";
|
||||
import Modal from "@mui/material/Modal";
|
||||
import TextField from "@mui/material/TextField";
|
||||
import AddIcon from "@mui/icons-material/Add";
|
||||
import ClearIcon from "@mui/icons-material/Clear";
|
||||
|
||||
// Create Folder Modal Style
|
||||
const style = {
|
||||
position: "absolute",
|
||||
top: "50%",
|
||||
left: "50%",
|
||||
transform: "translate(-50%, -50%)",
|
||||
maxWidth: 500,
|
||||
width: "100%",
|
||||
bgcolor: "background.paper",
|
||||
boxShadow: 24,
|
||||
borderRadius: "8px",
|
||||
};
|
||||
|
||||
function createData(name, icon, owner, fileSize, listedDate, fileItem) {
|
||||
return { name, icon, owner, fileSize, listedDate, fileItem };
|
||||
}
|
||||
|
||||
const rows = [
|
||||
createData(
|
||||
"Product UI/UX Design",
|
||||
"/images/folder.png",
|
||||
"Danielle Thompson",
|
||||
"0.7 GB",
|
||||
"Mar 08, 2021",
|
||||
"02"
|
||||
),
|
||||
createData(
|
||||
"App Design & Development",
|
||||
"/images/folder.png",
|
||||
"ET Themes",
|
||||
"521 MB",
|
||||
"Feb 13, 2021",
|
||||
"01"
|
||||
),
|
||||
createData(
|
||||
"Ubold Sketch Design",
|
||||
"/images/folder.png",
|
||||
"Gary Coley",
|
||||
"64.2 MB",
|
||||
"Dec 18, 2020",
|
||||
"02"
|
||||
),
|
||||
createData(
|
||||
"Annualreport.pdf",
|
||||
"/images/folder.png",
|
||||
"Cooper Sharwood",
|
||||
"12.5 GB",
|
||||
"Nov 25, 2020",
|
||||
"05"
|
||||
),
|
||||
createData(
|
||||
"Wireframes",
|
||||
"/images/folder.png",
|
||||
"Jasper Rigg",
|
||||
"8.3 MB",
|
||||
"Nov 25, 2019",
|
||||
"03"
|
||||
),
|
||||
createData(
|
||||
"App Design",
|
||||
"/images/folder.png",
|
||||
"ET Agency",
|
||||
"5 GB",
|
||||
"Jan 08, 2022",
|
||||
"15"
|
||||
),
|
||||
createData(
|
||||
"Web Design & Development",
|
||||
"/images/folder.png",
|
||||
"ET Templates",
|
||||
"13 GB",
|
||||
"Jan 13, 2022",
|
||||
"90"
|
||||
),
|
||||
createData(
|
||||
"React Template",
|
||||
"/images/folder.png",
|
||||
"ET Company",
|
||||
"100 GB",
|
||||
"Dec 18, 2021",
|
||||
"120"
|
||||
),
|
||||
createData(
|
||||
"Material Template",
|
||||
"/images/folder.png",
|
||||
"Cooper Sharwood",
|
||||
"12.5 GB",
|
||||
"Nov 25, 2020",
|
||||
"05"
|
||||
),
|
||||
createData(
|
||||
"Angular Template",
|
||||
"/images/folder.png",
|
||||
"Jasper Rigg",
|
||||
"8.3 MB",
|
||||
"Nov 25, 2019",
|
||||
"03"
|
||||
),
|
||||
];
|
||||
|
||||
const ImportantFiles = () => {
|
||||
// Create Folder Modal
|
||||
const [open, setOpen] = React.useState(false);
|
||||
const handleOpen = () => setOpen(true);
|
||||
const handleClose = () => setOpen(false);
|
||||
|
||||
// Form
|
||||
const handleSubmit = (event) => {
|
||||
event.preventDefault();
|
||||
const data = new FormData(event.currentTarget);
|
||||
console.log({
|
||||
email: data.get("email"),
|
||||
password: data.get("password"),
|
||||
});
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "25px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
justifyContent: "space-between",
|
||||
alignItems: "center",
|
||||
borderBottom: "1px solid #EEF0F7",
|
||||
paddingBottom: "10px",
|
||||
mb: "20px",
|
||||
}}
|
||||
className="for-dark-bottom-border"
|
||||
>
|
||||
<Typography
|
||||
as="h3"
|
||||
sx={{
|
||||
fontSize: 18,
|
||||
fontWeight: 500,
|
||||
}}
|
||||
>
|
||||
Important Files
|
||||
</Typography>
|
||||
|
||||
<Button
|
||||
onClick={handleOpen}
|
||||
variant="contained"
|
||||
sx={{
|
||||
textTransform: "capitalize",
|
||||
borderRadius: "8px",
|
||||
fontWeight: "500",
|
||||
fontSize: "13px",
|
||||
padding: "12px 20px",
|
||||
color: "#fff !important",
|
||||
}}
|
||||
>
|
||||
<AddIcon
|
||||
sx={{ position: "relative", top: "-1px" }}
|
||||
className="mr-5px"
|
||||
/>{" "}
|
||||
Create Folder
|
||||
</Button>
|
||||
</Box>
|
||||
|
||||
<TableContainer
|
||||
component={Paper}
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
maxHeight: "650px",
|
||||
overflowY: "auto",
|
||||
}}
|
||||
>
|
||||
<Table
|
||||
sx={{ minWidth: 800 }}
|
||||
aria-label="simple table"
|
||||
className="dark-table"
|
||||
>
|
||||
<TableHead sx={{ background: "#F7FAFF" }}>
|
||||
<TableRow>
|
||||
<TableCell
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
Name
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
Owner
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
File Size
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
Listed Date
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
File Item
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="right"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
Actions
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
</TableHead>
|
||||
|
||||
<TableBody>
|
||||
{rows.map((row) => (
|
||||
<TableRow
|
||||
key={row.name}
|
||||
sx={{ "&:last-child td, &:last-child th": { border: 0 } }}
|
||||
>
|
||||
<TableCell
|
||||
sx={{ borderBottom: "1px solid #F7FAFF" }}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
}}
|
||||
>
|
||||
<img src={row.icon} alt="Image" width="22px" />
|
||||
<Typography
|
||||
as="h5"
|
||||
fontWeight="500"
|
||||
fontSize="13px"
|
||||
className="ml-1"
|
||||
>
|
||||
{row.name}
|
||||
</Typography>
|
||||
</Box>
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13px" }}
|
||||
>
|
||||
{row.owner}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13px" }}
|
||||
>
|
||||
{row.fileSize}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13px" }}
|
||||
>
|
||||
{row.listedDate}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13px" }}
|
||||
>
|
||||
{row.fileItem}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="right"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13px" }}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "inline-block",
|
||||
}}
|
||||
>
|
||||
<Tooltip title="Remove" placement="top">
|
||||
<IconButton
|
||||
aria-label="remove"
|
||||
size="small"
|
||||
color="danger"
|
||||
className="danger"
|
||||
>
|
||||
<DeleteIcon fontSize="inherit" />
|
||||
</IconButton>
|
||||
</Tooltip>
|
||||
|
||||
<Tooltip title="Download" placement="top">
|
||||
<IconButton
|
||||
aria-label="download"
|
||||
size="small"
|
||||
color="success"
|
||||
className="success"
|
||||
>
|
||||
<CloudDownloadIcon fontSize="inherit" />
|
||||
</IconButton>
|
||||
</Tooltip>
|
||||
|
||||
<Tooltip title="Rename" placement="top">
|
||||
<IconButton
|
||||
aria-label="rename"
|
||||
size="small"
|
||||
color="primary"
|
||||
className="primary"
|
||||
>
|
||||
<DriveFileRenameOutlineIcon fontSize="inherit" />
|
||||
</IconButton>
|
||||
</Tooltip>
|
||||
</Box>
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
))}
|
||||
</TableBody>
|
||||
</Table>
|
||||
</TableContainer>
|
||||
</Card>
|
||||
|
||||
{/* Create Folder Modal */}
|
||||
<Modal
|
||||
aria-labelledby="transition-modal-title"
|
||||
aria-describedby="transition-modal-description"
|
||||
open={open}
|
||||
onClose={handleClose}
|
||||
closeAfterTransition
|
||||
BackdropComponent={Backdrop}
|
||||
BackdropProps={{
|
||||
timeout: 500,
|
||||
}}
|
||||
>
|
||||
<Fade in={open}>
|
||||
<Box sx={style} className="dark-BG-101010">
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
justifyContent: "space-between",
|
||||
alignItems: "center",
|
||||
background: "#EDEFF5",
|
||||
borderRadius: "8px",
|
||||
padding: "25px 20px",
|
||||
}}
|
||||
className="bg-black"
|
||||
>
|
||||
<Typography
|
||||
id="modal-modal-title"
|
||||
variant="h6"
|
||||
component="h2"
|
||||
sx={{
|
||||
fontWeight: "500",
|
||||
fontSize: "20px",
|
||||
}}
|
||||
>
|
||||
Create Folder
|
||||
</Typography>
|
||||
|
||||
<IconButton
|
||||
aria-label="remove"
|
||||
size="small"
|
||||
onClick={handleClose}
|
||||
className="modal-close"
|
||||
>
|
||||
<ClearIcon />
|
||||
</IconButton>
|
||||
</Box>
|
||||
|
||||
<Box component="form" noValidate onSubmit={handleSubmit}>
|
||||
<Box
|
||||
sx={{
|
||||
background: "#fff",
|
||||
padding: "30px 20px",
|
||||
borderRadius: "8px",
|
||||
}}
|
||||
className="dark-BG-101010"
|
||||
>
|
||||
<Grid container alignItems="center" spacing={1}>
|
||||
<Grid item xs={12}>
|
||||
<Typography
|
||||
as="h5"
|
||||
sx={{
|
||||
fontWeight: "500",
|
||||
fontSize: "14px",
|
||||
mb: "12px",
|
||||
}}
|
||||
>
|
||||
Folder Name
|
||||
</Typography>
|
||||
|
||||
<TextField
|
||||
autoComplete="given-name"
|
||||
name="folderName"
|
||||
required
|
||||
fullWidth
|
||||
id="folderName"
|
||||
label="Folder Name"
|
||||
autoFocus
|
||||
InputProps={{
|
||||
style: { borderRadius: 8 },
|
||||
}}
|
||||
/>
|
||||
</Grid>
|
||||
|
||||
<Grid item xs={12} textAlign="end">
|
||||
<Button
|
||||
type="submit"
|
||||
variant="contained"
|
||||
sx={{
|
||||
mt: 1,
|
||||
textTransform: "capitalize",
|
||||
borderRadius: "8px",
|
||||
fontWeight: "500",
|
||||
fontSize: "13px",
|
||||
padding: "12px 20px",
|
||||
color: "#fff !important",
|
||||
}}
|
||||
>
|
||||
<AddIcon
|
||||
sx={{
|
||||
position: "relative",
|
||||
top: "-2px",
|
||||
}}
|
||||
className="mr-5px"
|
||||
/>{" "}
|
||||
Add Folder
|
||||
</Button>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Box>
|
||||
</Box>
|
||||
</Box>
|
||||
</Fade>
|
||||
</Modal>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default ImportantFiles;
|
||||
@@ -1,236 +0,0 @@
|
||||
import React from "react";
|
||||
import { useRouter } from "next/router";
|
||||
import Link from "next/link";
|
||||
import Box from "@mui/material/Box";
|
||||
import Card from "@mui/material/Card";
|
||||
import Typography from "@mui/material/Typography";
|
||||
import { styled, alpha } from "@mui/material/styles";
|
||||
import InputBase from "@mui/material/InputBase";
|
||||
import SearchIcon from "@mui/icons-material/Search";
|
||||
import LinearProgress, {
|
||||
linearProgressClasses,
|
||||
} from "@mui/material/LinearProgress";
|
||||
import styles from "@/components/Apps/FileManager/LeftSidebar.module.css";
|
||||
|
||||
// Search field style
|
||||
const Search = styled("div")(({ theme }) => ({
|
||||
position: "relative",
|
||||
borderRadius: 100,
|
||||
backgroundColor: alpha(theme.palette.common.white, 0.15),
|
||||
"&:hover": {
|
||||
backgroundColor: alpha(theme.palette.common.white, 0.25),
|
||||
},
|
||||
marginRight: 0,
|
||||
marginLeft: 0,
|
||||
marginBottom: 15,
|
||||
width: "100%",
|
||||
[theme.breakpoints.up("xs")]: {
|
||||
marginRight: theme.spacing(1),
|
||||
width: "auto",
|
||||
},
|
||||
}));
|
||||
|
||||
const SearchIconWrapper = styled("div")(({ theme }) => ({
|
||||
color: "#757FEF",
|
||||
padding: theme.spacing(0, 2),
|
||||
height: "100%",
|
||||
position: "absolute",
|
||||
right: "0",
|
||||
pointerEvents: "none",
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
justifyContent: "center",
|
||||
zIndex: "5",
|
||||
}));
|
||||
|
||||
const StyledInputBase = styled(InputBase)(({ theme }) => ({
|
||||
color: "inherit",
|
||||
width: "100%",
|
||||
"& .MuiInputBase-input": {
|
||||
backgroundColor: "#F5F7FA",
|
||||
borderRadius: "30px",
|
||||
padding: theme.spacing(1.4, 0, 1.4, 2),
|
||||
},
|
||||
}));
|
||||
|
||||
// Storage Status Progress
|
||||
const BorderLinearProgress = styled(LinearProgress)(({ theme }) => ({
|
||||
height: 5,
|
||||
borderRadius: 5,
|
||||
[`&.${linearProgressClasses.colorPrimary}`]: {
|
||||
backgroundColor:
|
||||
theme.palette.grey[theme.palette.mode === "light" ? 200 : 800],
|
||||
},
|
||||
[`& .${linearProgressClasses.bar}`]: {
|
||||
borderRadius: 5,
|
||||
backgroundColor: theme.palette.mode === "light" ? "#757FEF" : "#308fe8",
|
||||
},
|
||||
}));
|
||||
|
||||
const LeftSidebar = () => {
|
||||
const router = useRouter();
|
||||
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
p: "25px 20px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Typography
|
||||
as="h1"
|
||||
sx={{
|
||||
fontSize: 17,
|
||||
fontWeight: 500,
|
||||
mb: 1,
|
||||
}}
|
||||
>
|
||||
My Drive
|
||||
</Typography>
|
||||
|
||||
{/* Search */}
|
||||
<Search className="ls-search-form">
|
||||
<SearchIconWrapper className="search-btn">
|
||||
<SearchIcon />
|
||||
</SearchIconWrapper>
|
||||
<StyledInputBase
|
||||
placeholder="Search here.."
|
||||
inputProps={{ "aria-label": "search" }}
|
||||
/>
|
||||
</Search>
|
||||
|
||||
{/* Nav */}
|
||||
<ul className={styles.leftNav}>
|
||||
<li
|
||||
className={
|
||||
router.pathname == "/apps/file-manager" ? "activeFMLink" : ""
|
||||
}
|
||||
>
|
||||
<Link href="/apps/file-manager">
|
||||
<i className="ri-folder-line"></i> My Drive
|
||||
</Link>
|
||||
|
||||
<ul>
|
||||
<li
|
||||
className={
|
||||
router.pathname == "/apps/file-manager/assets"
|
||||
? "activeFMLink"
|
||||
: ""
|
||||
}
|
||||
>
|
||||
<Link href="/apps/file-manager/assets">Assets</Link>
|
||||
</li>
|
||||
|
||||
<li
|
||||
className={
|
||||
router.pathname == "/apps/file-manager/projects"
|
||||
? "activeFMLink"
|
||||
: ""
|
||||
}
|
||||
>
|
||||
<Link href="/apps/file-manager/projects">Projects</Link>
|
||||
</li>
|
||||
|
||||
<li
|
||||
className={
|
||||
router.pathname == "/apps/file-manager/personal"
|
||||
? "activeFMLink"
|
||||
: ""
|
||||
}
|
||||
>
|
||||
<Link href="/apps/file-manager/personal">Personal</Link>
|
||||
</li>
|
||||
|
||||
<li
|
||||
className={
|
||||
router.pathname == "/apps/file-manager/templates"
|
||||
? "activeFMLink"
|
||||
: ""
|
||||
}
|
||||
>
|
||||
<Link href="/apps/file-manager/templates">Templates</Link>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li
|
||||
className={
|
||||
router.pathname == "/apps/file-manager/documents"
|
||||
? "activeFMLink"
|
||||
: ""
|
||||
}
|
||||
>
|
||||
<Link href="/apps/file-manager/documents">
|
||||
<i className="ri-file-text-line"></i> Documents
|
||||
</Link>
|
||||
</li>
|
||||
|
||||
<li
|
||||
className={
|
||||
router.pathname == "/apps/file-manager/media"
|
||||
? "activeFMLink"
|
||||
: ""
|
||||
}
|
||||
>
|
||||
<Link href="/apps/file-manager/media">
|
||||
<i className="ri-image-line"></i> Media
|
||||
</Link>
|
||||
</li>
|
||||
|
||||
<li
|
||||
className={
|
||||
router.pathname == "/apps/file-manager/recents"
|
||||
? "activeFMLink"
|
||||
: ""
|
||||
}
|
||||
>
|
||||
<Link href="/apps/file-manager/recents">
|
||||
<i className="ri-time-line"></i> Recents
|
||||
</Link>
|
||||
</li>
|
||||
|
||||
<li
|
||||
className={
|
||||
router.pathname == "/apps/file-manager/important"
|
||||
? "activeFMLink"
|
||||
: ""
|
||||
}
|
||||
>
|
||||
<Link href="/apps/file-manager/important">
|
||||
<i className="ri-star-fill"></i> Important
|
||||
</Link>
|
||||
</li>
|
||||
|
||||
<li
|
||||
className={
|
||||
router.pathname == "/apps/file-manager/trash"
|
||||
? "activeFMLink"
|
||||
: ""
|
||||
}
|
||||
>
|
||||
<Link href="/apps/file-manager/trash">
|
||||
<i className="ri-delete-bin-line"></i> Trash
|
||||
</Link>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
{/* Storage status */}
|
||||
<Box>
|
||||
<Typography fontSize="14px" fontWeight="500" mb="5px">
|
||||
Storage Status
|
||||
</Typography>
|
||||
|
||||
<BorderLinearProgress variant="determinate" value={60} />
|
||||
|
||||
<Typography fontSize="12px" mt="5px" color="#A9A9C8">
|
||||
186.5 GB Used of 120 GB
|
||||
</Typography>
|
||||
</Box>
|
||||
</Card>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default LeftSidebar;
|
||||
@@ -1,73 +0,0 @@
|
||||
.leftNav {
|
||||
padding: 0;
|
||||
margin: 0 0 30px;
|
||||
list-style-type: none;
|
||||
}
|
||||
.leftNav li {
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
.leftNav li:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.leftNav li a {
|
||||
text-decoration: none;
|
||||
color: #260944;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
}
|
||||
.leftNav li a:hover, .leftNav li a:hover i {
|
||||
color: var(--primaryColor);
|
||||
}
|
||||
.leftNav li a i {
|
||||
color: #818093;
|
||||
font-size: 18px;
|
||||
position: relative;
|
||||
top: 3px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.leftNav li ul {
|
||||
padding: 0;
|
||||
margin: 15px 0 0;
|
||||
list-style-type: none;
|
||||
}
|
||||
.leftNav li ul li {
|
||||
position: relative;
|
||||
padding-left: 45px;
|
||||
}
|
||||
.leftNav li ul li::before {
|
||||
content: "";
|
||||
background-color: #818093;
|
||||
width: 6px;
|
||||
height: 6px;
|
||||
border-radius: 100%;
|
||||
position: absolute;
|
||||
left: 30px;
|
||||
top: 6px;
|
||||
}
|
||||
.leftNav li ul li a {
|
||||
color: #5B5B98;
|
||||
font-size: 13.5px;
|
||||
}
|
||||
|
||||
/* For RTL Style */
|
||||
[dir="rtl"] .leftNav li a i {
|
||||
margin-right: 0;
|
||||
margin-left: 5px;
|
||||
}
|
||||
[dir="rtl"] .leftNav li ul li {
|
||||
padding-left: 0;
|
||||
padding-right: 45px;
|
||||
}
|
||||
[dir="rtl"] .leftNav li ul li::before {
|
||||
left: auto;
|
||||
right: 25px;
|
||||
}
|
||||
|
||||
/* For dark mode */
|
||||
[class="dark"] .leftNav li a {
|
||||
color: var(--darkHeadingTextColor);
|
||||
}
|
||||
[class="dark"] .leftNav li ul li a {
|
||||
color: var(--darkBodyTextColor);
|
||||
}
|
||||
@@ -1,294 +0,0 @@
|
||||
import React from "react";
|
||||
import { Box, Typography } from "@mui/material";
|
||||
import Card from "@mui/material/Card";
|
||||
import Table from "@mui/material/Table";
|
||||
import TableBody from "@mui/material/TableBody";
|
||||
import TableCell from "@mui/material/TableCell";
|
||||
import TableContainer from "@mui/material/TableContainer";
|
||||
import TableHead from "@mui/material/TableHead";
|
||||
import TableRow from "@mui/material/TableRow";
|
||||
import Paper from "@mui/material/Paper";
|
||||
import Tooltip from "@mui/material/Tooltip";
|
||||
import IconButton from "@mui/material/IconButton";
|
||||
import DeleteIcon from "@mui/icons-material/Delete";
|
||||
import CloudDownloadIcon from "@mui/icons-material/CloudDownload";
|
||||
import DriveFileRenameOutlineIcon from "@mui/icons-material/DriveFileRenameOutline";
|
||||
|
||||
function createData(name, icon, owner, fileSize, listedDate, fileItem) {
|
||||
return { name, icon, owner, fileSize, listedDate, fileItem };
|
||||
}
|
||||
|
||||
const rows = [
|
||||
createData(
|
||||
"Product UI/UX Design",
|
||||
"/images/media.png",
|
||||
"Danielle Thompson",
|
||||
"0.7 GB",
|
||||
"Mar 08, 2021",
|
||||
"02"
|
||||
),
|
||||
createData(
|
||||
"App Design & Development",
|
||||
"/images/media.png",
|
||||
"ET Themes",
|
||||
"521 MB",
|
||||
"Feb 13, 2021",
|
||||
"01"
|
||||
),
|
||||
createData(
|
||||
"Ubold Sketch Design",
|
||||
"/images/media.png",
|
||||
"Gary Coley",
|
||||
"64.2 MB",
|
||||
"Dec 18, 2020",
|
||||
"02"
|
||||
),
|
||||
createData(
|
||||
"Annualreport.pdf",
|
||||
"/images/media.png",
|
||||
"Cooper Sharwood",
|
||||
"12.5 GB",
|
||||
"Nov 25, 2020",
|
||||
"05"
|
||||
),
|
||||
createData(
|
||||
"Wireframes",
|
||||
"/images/media.png",
|
||||
"Jasper Rigg",
|
||||
"8.3 MB",
|
||||
"Nov 25, 2019",
|
||||
"03"
|
||||
),
|
||||
createData(
|
||||
"App Design",
|
||||
"/images/media.png",
|
||||
"ET Agency",
|
||||
"5 GB",
|
||||
"Jan 08, 2022",
|
||||
"15"
|
||||
),
|
||||
createData(
|
||||
"Web Design & Development",
|
||||
"/images/media.png",
|
||||
"ET Templates",
|
||||
"13 GB",
|
||||
"Jan 13, 2022",
|
||||
"90"
|
||||
),
|
||||
createData(
|
||||
"React Template",
|
||||
"/images/media.png",
|
||||
"ET Company",
|
||||
"100 GB",
|
||||
"Dec 18, 2021",
|
||||
"120"
|
||||
),
|
||||
createData(
|
||||
"Material Template",
|
||||
"/images/media.png",
|
||||
"Cooper Sharwood",
|
||||
"12.5 GB",
|
||||
"Nov 25, 2020",
|
||||
"05"
|
||||
),
|
||||
createData(
|
||||
"Angular Template",
|
||||
"/images/media.png",
|
||||
"Jasper Rigg",
|
||||
"8.3 MB",
|
||||
"Nov 25, 2019",
|
||||
"03"
|
||||
),
|
||||
];
|
||||
|
||||
const MediaFiles = () => {
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "25px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
borderBottom: "1px solid #EEF0F7",
|
||||
paddingBottom: "10px",
|
||||
mb: "20px",
|
||||
}}
|
||||
className="for-dark-bottom-border"
|
||||
>
|
||||
<Typography
|
||||
as="h3"
|
||||
sx={{
|
||||
fontSize: 18,
|
||||
fontWeight: 500,
|
||||
}}
|
||||
>
|
||||
Media
|
||||
</Typography>
|
||||
</Box>
|
||||
|
||||
<TableContainer
|
||||
component={Paper}
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
maxHeight: "800px",
|
||||
overflowY: "auto",
|
||||
}}
|
||||
>
|
||||
<Table
|
||||
sx={{ minWidth: 800 }}
|
||||
aria-label="simple table"
|
||||
className="dark-table"
|
||||
>
|
||||
<TableHead sx={{ background: "#F7FAFF" }}>
|
||||
<TableRow>
|
||||
<TableCell sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}>
|
||||
Name
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
Owner
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
File Size
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
Listed Date
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
File Item
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="right"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
Actions
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
</TableHead>
|
||||
|
||||
<TableBody>
|
||||
{rows.map((row) => (
|
||||
<TableRow
|
||||
key={row.name}
|
||||
sx={{ "&:last-child td, &:last-child th": { border: 0 } }}
|
||||
>
|
||||
<TableCell
|
||||
sx={{ borderBottom: "1px solid #F7FAFF" }}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
}}
|
||||
>
|
||||
<img src={row.icon} alt="Image" width="18px" />
|
||||
<Typography
|
||||
as="h5"
|
||||
fontWeight="500"
|
||||
fontSize="13px"
|
||||
className="ml-1"
|
||||
>
|
||||
{row.name}
|
||||
</Typography>
|
||||
</Box>
|
||||
</TableCell>
|
||||
|
||||
<TableCell sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13px" }}>
|
||||
{row.owner}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13px" }}
|
||||
>
|
||||
{row.fileSize}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13px" }}
|
||||
>
|
||||
{row.listedDate}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13px" }}
|
||||
>
|
||||
{row.fileItem}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="right"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF" }}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "inline-block",
|
||||
}}
|
||||
>
|
||||
<Tooltip title="Remove" placement="top">
|
||||
<IconButton
|
||||
aria-label="remove"
|
||||
size="small"
|
||||
color="danger"
|
||||
className="danger"
|
||||
>
|
||||
<DeleteIcon fontSize="inherit" />
|
||||
</IconButton>
|
||||
</Tooltip>
|
||||
|
||||
<Tooltip title="Download" placement="top">
|
||||
<IconButton
|
||||
aria-label="download"
|
||||
size="small"
|
||||
color="success"
|
||||
className="success"
|
||||
>
|
||||
<CloudDownloadIcon fontSize="inherit" />
|
||||
</IconButton>
|
||||
</Tooltip>
|
||||
|
||||
<Tooltip title="Rename" placement="top">
|
||||
<IconButton
|
||||
aria-label="rename"
|
||||
size="small"
|
||||
color="primary"
|
||||
className="primary"
|
||||
>
|
||||
<DriveFileRenameOutlineIcon fontSize="inherit" />
|
||||
</IconButton>
|
||||
</Tooltip>
|
||||
</Box>
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
))}
|
||||
</TableBody>
|
||||
</Table>
|
||||
</TableContainer>
|
||||
</Card>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default MediaFiles;
|
||||
@@ -1,162 +0,0 @@
|
||||
import React from "react";
|
||||
import Grid from "@mui/material/Grid";
|
||||
import { Box, Typography } from "@mui/material";
|
||||
import Card from "@mui/material/Card";
|
||||
import Menu from "@mui/material/Menu";
|
||||
import MenuItem from "@mui/material/MenuItem";
|
||||
import IconButton from "@mui/material/IconButton";
|
||||
import MoreHorizIcon from "@mui/icons-material/MoreHoriz";
|
||||
|
||||
const MyDriveData = [
|
||||
{
|
||||
id: "1",
|
||||
icon: "/images/folder.png",
|
||||
title: "Projects",
|
||||
totalFiles: "387 Files",
|
||||
filesSize: "4.5 GB",
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
icon: "/images/folder.png",
|
||||
title: "Documents",
|
||||
totalFiles: "1572 Files",
|
||||
filesSize: "7.5 GB",
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
icon: "/images/folder.png",
|
||||
title: "Media",
|
||||
totalFiles: "1241 Files",
|
||||
filesSize: "2.8 GB",
|
||||
},
|
||||
{
|
||||
id: "4",
|
||||
icon: "/images/folder.png",
|
||||
title: "Applications",
|
||||
totalFiles: "2487 Files",
|
||||
filesSize: "4.5 GB",
|
||||
},
|
||||
];
|
||||
|
||||
const MyDrive = () => {
|
||||
const [anchorEl, setAnchorEl] = React.useState(null);
|
||||
const open = Boolean(anchorEl);
|
||||
const handleClick = (event) => {
|
||||
setAnchorEl(event.currentTarget);
|
||||
};
|
||||
const handleClose = () => {
|
||||
setAnchorEl(null);
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<Grid
|
||||
container
|
||||
rowSpacing={1}
|
||||
columnSpacing={{ xs: 1, sm: 1, md: 1, lg: 1, xl: 2 }}
|
||||
>
|
||||
{MyDriveData.map((dInfo) => (
|
||||
<Grid item xs={12} sm={6} md={6} lg={6} xl={3} key={dInfo.id}>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "15px 20px 20px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
justifyContent: "end",
|
||||
}}
|
||||
>
|
||||
<Box>
|
||||
<IconButton
|
||||
onClick={handleClick}
|
||||
size="small"
|
||||
aria-controls={open ? "account-menu" : undefined}
|
||||
aria-haspopup="true"
|
||||
aria-expanded={open ? "true" : undefined}
|
||||
>
|
||||
<MoreHorizIcon />
|
||||
</IconButton>
|
||||
</Box>
|
||||
<Menu
|
||||
anchorEl={anchorEl}
|
||||
id="account-menu"
|
||||
open={open}
|
||||
onClose={handleClose}
|
||||
onClick={handleClose}
|
||||
PaperProps={{
|
||||
elevation: 0,
|
||||
sx: {
|
||||
overflow: "visible",
|
||||
filter: "drop-shadow(0px 2px 8px rgba(229,229,229,0.32))",
|
||||
mt: 1.5,
|
||||
"& .MuiAvatar-root": {
|
||||
width: 32,
|
||||
height: 32,
|
||||
ml: -0.5,
|
||||
mr: 1,
|
||||
},
|
||||
"&:before": {
|
||||
content: '""',
|
||||
display: "block",
|
||||
position: "absolute",
|
||||
top: 0,
|
||||
right: 14,
|
||||
width: 10,
|
||||
height: 10,
|
||||
bgcolor: "background.paper",
|
||||
transform: "translateY(-50%) rotate(45deg)",
|
||||
zIndex: 0,
|
||||
},
|
||||
},
|
||||
}}
|
||||
transformOrigin={{ horizontal: "right", vertical: "top" }}
|
||||
anchorOrigin={{ horizontal: "right", vertical: "bottom" }}
|
||||
>
|
||||
<MenuItem sx={{ fontSize: "13px" }}>
|
||||
<i className="ri-edit-2-line mr-5px"></i> Rename
|
||||
</MenuItem>
|
||||
<MenuItem sx={{ fontSize: "13px" }}>
|
||||
<i className="ri-download-cloud-line mr-5px"></i> Download
|
||||
</MenuItem>
|
||||
<MenuItem sx={{ fontSize: "13px" }}>
|
||||
<i className="ri-delete-bin-line mr-5px"></i> Remove
|
||||
</MenuItem>
|
||||
</Menu>
|
||||
</Box>
|
||||
|
||||
<Box
|
||||
sx={{
|
||||
textAlign: "center",
|
||||
padding: "30px 0",
|
||||
}}
|
||||
>
|
||||
<img src={dInfo.icon} alt="folder" />
|
||||
<Typography as="h3" fontWeight="500" fontSize="14px" mt="10px">
|
||||
{dInfo.title}
|
||||
</Typography>
|
||||
</Box>
|
||||
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
justifyContent: "space-between",
|
||||
alignItems: "center",
|
||||
}}
|
||||
>
|
||||
<Typography>{dInfo.totalFiles}</Typography>
|
||||
<Typography>{dInfo.filesSize}</Typography>
|
||||
</Box>
|
||||
</Card>
|
||||
</Grid>
|
||||
))}
|
||||
</Grid>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default MyDrive;
|
||||
@@ -1,218 +0,0 @@
|
||||
import React from "react";
|
||||
import Grid from "@mui/material/Grid";
|
||||
import { Box, Typography } from "@mui/material";
|
||||
import Card from "@mui/material/Card";
|
||||
import Menu from "@mui/material/Menu";
|
||||
import MenuItem from "@mui/material/MenuItem";
|
||||
import IconButton from "@mui/material/IconButton";
|
||||
import MoreHorizIcon from "@mui/icons-material/MoreHoriz";
|
||||
|
||||
const PersonalFilesData = [
|
||||
{
|
||||
id: "1",
|
||||
icon: "/images/folder.png",
|
||||
title: "Mobile Apps",
|
||||
totalFiles: "55 Files",
|
||||
filesSize: "4.5 GB",
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
icon: "/images/folder.png",
|
||||
title: "Important Files",
|
||||
totalFiles: "200 Files",
|
||||
filesSize: "6.5 GB",
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
icon: "/images/folder.png",
|
||||
title: "Angular Template",
|
||||
totalFiles: "340 Files",
|
||||
filesSize: "7.5 GB",
|
||||
},
|
||||
{
|
||||
id: "4",
|
||||
icon: "/images/folder.png",
|
||||
title: "Projects",
|
||||
totalFiles: "387 Files",
|
||||
filesSize: "4.5 GB",
|
||||
},
|
||||
{
|
||||
id: "5",
|
||||
icon: "/images/folder.png",
|
||||
title: "Documents",
|
||||
totalFiles: "1572 Files",
|
||||
filesSize: "7.5 GB",
|
||||
},
|
||||
{
|
||||
id: "6",
|
||||
icon: "/images/folder.png",
|
||||
title: "ET Template",
|
||||
totalFiles: "60 Files",
|
||||
filesSize: "8 GB",
|
||||
},
|
||||
{
|
||||
id: "7",
|
||||
icon: "/images/folder.png",
|
||||
title: "React Template",
|
||||
totalFiles: "120 Files",
|
||||
filesSize: "6.5 GB",
|
||||
},
|
||||
{
|
||||
id: "8",
|
||||
icon: "/images/folder.png",
|
||||
title: "Material UI",
|
||||
totalFiles: "40 Files",
|
||||
filesSize: "5.5 GB",
|
||||
},
|
||||
{
|
||||
id: "9",
|
||||
icon: "/images/folder.png",
|
||||
title: "WP Themes",
|
||||
totalFiles: "2487 Files",
|
||||
filesSize: "4.5 GB",
|
||||
},
|
||||
{
|
||||
id: "10",
|
||||
icon: "/images/folder.png",
|
||||
title: "Personal Photos",
|
||||
totalFiles: "2587 Files",
|
||||
filesSize: "14 GB",
|
||||
},
|
||||
{
|
||||
id: "11",
|
||||
icon: "/images/folder.png",
|
||||
title: "Media",
|
||||
totalFiles: "1241 Files",
|
||||
filesSize: "2.8 GB",
|
||||
},
|
||||
{
|
||||
id: "12",
|
||||
icon: "/images/folder.png",
|
||||
title: "Applications",
|
||||
totalFiles: "2487 Files",
|
||||
filesSize: "4.5 GB",
|
||||
},
|
||||
];
|
||||
|
||||
const PersonalFiles = () => {
|
||||
const [anchorEl, setAnchorEl] = React.useState(null);
|
||||
const open = Boolean(anchorEl);
|
||||
const handleClick = (event) => {
|
||||
setAnchorEl(event.currentTarget);
|
||||
};
|
||||
const handleClose = () => {
|
||||
setAnchorEl(null);
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<Grid
|
||||
container
|
||||
rowSpacing={1}
|
||||
columnSpacing={{ xs: 1, sm: 1, md: 1, lg: 1, xl: 2 }}
|
||||
>
|
||||
{PersonalFilesData.map((file) => (
|
||||
<Grid item xs={12} sm={6} md={6} lg={6} xl={3} key={file.id}>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "15px 20px 20px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
justifyContent: "end",
|
||||
}}
|
||||
>
|
||||
<Box>
|
||||
<IconButton
|
||||
onClick={handleClick}
|
||||
size="small"
|
||||
aria-controls={open ? "account-menu" : undefined}
|
||||
aria-haspopup="true"
|
||||
aria-expanded={open ? "true" : undefined}
|
||||
>
|
||||
<MoreHorizIcon />
|
||||
</IconButton>
|
||||
</Box>
|
||||
<Menu
|
||||
anchorEl={anchorEl}
|
||||
id="account-menu"
|
||||
open={open}
|
||||
onClose={handleClose}
|
||||
onClick={handleClose}
|
||||
PaperProps={{
|
||||
elevation: 0,
|
||||
sx: {
|
||||
overflow: "visible",
|
||||
filter: "drop-shadow(0px 2px 8px rgba(229,229,229,0.32))",
|
||||
mt: 1.5,
|
||||
"& .MuiAvatar-root": {
|
||||
width: 32,
|
||||
height: 32,
|
||||
ml: -0.5,
|
||||
mr: 1,
|
||||
},
|
||||
"&:before": {
|
||||
content: '""',
|
||||
display: "block",
|
||||
position: "absolute",
|
||||
top: 0,
|
||||
right: 14,
|
||||
width: 10,
|
||||
height: 10,
|
||||
bgcolor: "background.paper",
|
||||
transform: "translateY(-50%) rotate(45deg)",
|
||||
zIndex: 0,
|
||||
},
|
||||
},
|
||||
}}
|
||||
transformOrigin={{ horizontal: "right", vertical: "top" }}
|
||||
anchorOrigin={{ horizontal: "right", vertical: "bottom" }}
|
||||
>
|
||||
<MenuItem sx={{ fontSize: "13px" }}>
|
||||
<i className="ri-edit-2-line mr-5px"></i> Rename
|
||||
</MenuItem>
|
||||
<MenuItem sx={{ fontSize: "13px" }}>
|
||||
<i className="ri-download-cloud-line mr-5px"></i> Download
|
||||
</MenuItem>
|
||||
<MenuItem sx={{ fontSize: "13px" }}>
|
||||
<i className="ri-delete-bin-line mr-5px"></i> Remove
|
||||
</MenuItem>
|
||||
</Menu>
|
||||
</Box>
|
||||
|
||||
<Box
|
||||
sx={{
|
||||
textAlign: "center",
|
||||
padding: "30px 0",
|
||||
}}
|
||||
>
|
||||
<img src={file.icon} alt="folder" />
|
||||
<Typography as="h3" fontWeight="500" fontSize="14px" mt="10px">
|
||||
{file.title}
|
||||
</Typography>
|
||||
</Box>
|
||||
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
justifyContent: "space-between",
|
||||
alignItems: "center",
|
||||
}}
|
||||
>
|
||||
<Typography>{file.totalFiles}</Typography>
|
||||
<Typography>{file.filesSize}</Typography>
|
||||
</Box>
|
||||
</Card>
|
||||
</Grid>
|
||||
))}
|
||||
</Grid>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default PersonalFiles;
|
||||
@@ -1,433 +0,0 @@
|
||||
import React from "react";
|
||||
import { Box, Typography } from "@mui/material";
|
||||
import Grid from "@mui/material/Grid";
|
||||
import Card from "@mui/material/Card";
|
||||
import Table from "@mui/material/Table";
|
||||
import TableBody from "@mui/material/TableBody";
|
||||
import TableCell from "@mui/material/TableCell";
|
||||
import TableContainer from "@mui/material/TableContainer";
|
||||
import TableHead from "@mui/material/TableHead";
|
||||
import TableRow from "@mui/material/TableRow";
|
||||
import Paper from "@mui/material/Paper";
|
||||
import Tooltip from "@mui/material/Tooltip";
|
||||
import IconButton from "@mui/material/IconButton";
|
||||
import DeleteIcon from "@mui/icons-material/Delete";
|
||||
import CloudDownloadIcon from "@mui/icons-material/CloudDownload";
|
||||
import DriveFileRenameOutlineIcon from "@mui/icons-material/DriveFileRenameOutline";
|
||||
import Backdrop from "@mui/material/Backdrop";
|
||||
import Button from "@mui/material/Button";
|
||||
import Fade from "@mui/material/Fade";
|
||||
import Modal from "@mui/material/Modal";
|
||||
import TextField from "@mui/material/TextField";
|
||||
import AddIcon from "@mui/icons-material/Add";
|
||||
import ClearIcon from "@mui/icons-material/Clear";
|
||||
|
||||
// Create Folder Modal Style
|
||||
const style = {
|
||||
position: "absolute",
|
||||
top: "50%",
|
||||
left: "50%",
|
||||
transform: "translate(-50%, -50%)",
|
||||
maxWidth: 500,
|
||||
width: "100%",
|
||||
bgcolor: "background.paper",
|
||||
boxShadow: 24,
|
||||
borderRadius: "8px",
|
||||
};
|
||||
|
||||
function createData(name, icon, owner, fileSize, listedDate, fileItem) {
|
||||
return { name, icon, owner, fileSize, listedDate, fileItem };
|
||||
}
|
||||
|
||||
const rows = [
|
||||
createData(
|
||||
"Product UI/UX Design",
|
||||
"/images/folder.png",
|
||||
"Danielle Thompson",
|
||||
"0.7 GB",
|
||||
"Mar 08, 2021",
|
||||
"02"
|
||||
),
|
||||
createData(
|
||||
"App Design & Development",
|
||||
"/images/folder.png",
|
||||
"ET Themes",
|
||||
"521 MB",
|
||||
"Feb 13, 2021",
|
||||
"01"
|
||||
),
|
||||
createData(
|
||||
"Ubold Sketch Design",
|
||||
"/images/folder.png",
|
||||
"Gary Coley",
|
||||
"64.2 MB",
|
||||
"Dec 18, 2020",
|
||||
"02"
|
||||
),
|
||||
createData(
|
||||
"Annualreport.pdf",
|
||||
"/images/folder.png",
|
||||
"Cooper Sharwood",
|
||||
"12.5 GB",
|
||||
"Nov 25, 2020",
|
||||
"05"
|
||||
),
|
||||
createData(
|
||||
"Wireframes",
|
||||
"/images/folder.png",
|
||||
"Jasper Rigg",
|
||||
"8.3 MB",
|
||||
"Nov 25, 2019",
|
||||
"03"
|
||||
),
|
||||
];
|
||||
|
||||
const RecentFiles = () => {
|
||||
// Create Folder Modal
|
||||
const [open, setOpen] = React.useState(false);
|
||||
const handleOpen = () => setOpen(true);
|
||||
const handleClose = () => setOpen(false);
|
||||
|
||||
// Form
|
||||
const handleSubmit = (event) => {
|
||||
event.preventDefault();
|
||||
const data = new FormData(event.currentTarget);
|
||||
console.log({
|
||||
email: data.get("email"),
|
||||
password: data.get("password"),
|
||||
});
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "25px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
justifyContent: "space-between",
|
||||
alignItems: "center",
|
||||
borderBottom: "1px solid #EEF0F7",
|
||||
paddingBottom: "10px",
|
||||
mb: "20px",
|
||||
}}
|
||||
className="for-dark-bottom-border"
|
||||
>
|
||||
<Typography
|
||||
as="h3"
|
||||
sx={{
|
||||
fontSize: 18,
|
||||
fontWeight: 500,
|
||||
}}
|
||||
>
|
||||
Recent Files
|
||||
</Typography>
|
||||
|
||||
<Button
|
||||
onClick={handleOpen}
|
||||
variant="contained"
|
||||
sx={{
|
||||
textTransform: "capitalize",
|
||||
borderRadius: "8px",
|
||||
fontWeight: "500",
|
||||
fontSize: "13px",
|
||||
padding: "12px 20px",
|
||||
color: "#fff !important",
|
||||
}}
|
||||
>
|
||||
<AddIcon
|
||||
sx={{ position: "relative", top: "-1px" }}
|
||||
className="mr-5px"
|
||||
/>{" "}
|
||||
Create Folder
|
||||
</Button>
|
||||
</Box>
|
||||
|
||||
<TableContainer
|
||||
component={Paper}
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
maxHeight: "355px",
|
||||
overflowY: "auto",
|
||||
}}
|
||||
>
|
||||
<Table
|
||||
sx={{ minWidth: 800 }}
|
||||
aria-label="simple table"
|
||||
className="dark-table"
|
||||
>
|
||||
<TableHead sx={{ background: "#F7FAFF" }}>
|
||||
<TableRow>
|
||||
<TableCell
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
Name
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
Owner
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
File Size
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
Listed Date
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
File Item
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="right"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
Actions
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
</TableHead>
|
||||
|
||||
<TableBody>
|
||||
{rows.map((row) => (
|
||||
<TableRow
|
||||
key={row.name}
|
||||
sx={{ "&:last-child td, &:last-child th": { border: 0 } }}
|
||||
>
|
||||
<TableCell
|
||||
sx={{ borderBottom: "1px solid #F7FAFF" }}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
}}
|
||||
>
|
||||
<img src={row.icon} alt="Image" width="22px" />
|
||||
<Typography
|
||||
as="h5"
|
||||
fontWeight="500"
|
||||
fontSize="13px"
|
||||
className="ml-1"
|
||||
>
|
||||
{row.name}
|
||||
</Typography>
|
||||
</Box>
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13px" }}
|
||||
>
|
||||
{row.owner}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13px" }}
|
||||
>
|
||||
{row.fileSize}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13px" }}
|
||||
>
|
||||
{row.listedDate}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13px" }}
|
||||
>
|
||||
{row.fileItem}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="right"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF" }}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "inline-block",
|
||||
}}
|
||||
>
|
||||
<Tooltip title="Remove" placement="top">
|
||||
<IconButton
|
||||
aria-label="remove"
|
||||
size="small"
|
||||
color="danger"
|
||||
className="danger"
|
||||
>
|
||||
<DeleteIcon fontSize="inherit" />
|
||||
</IconButton>
|
||||
</Tooltip>
|
||||
|
||||
<Tooltip title="Download" placement="top">
|
||||
<IconButton
|
||||
aria-label="download"
|
||||
size="small"
|
||||
color="success"
|
||||
className="success"
|
||||
>
|
||||
<CloudDownloadIcon fontSize="inherit" />
|
||||
</IconButton>
|
||||
</Tooltip>
|
||||
|
||||
<Tooltip title="Rename" placement="top">
|
||||
<IconButton
|
||||
aria-label="rename"
|
||||
size="small"
|
||||
color="primary"
|
||||
className="primary"
|
||||
>
|
||||
<DriveFileRenameOutlineIcon fontSize="inherit" />
|
||||
</IconButton>
|
||||
</Tooltip>
|
||||
</Box>
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
))}
|
||||
</TableBody>
|
||||
</Table>
|
||||
</TableContainer>
|
||||
</Card>
|
||||
|
||||
{/* Create Folder Modal */}
|
||||
<Modal
|
||||
aria-labelledby="transition-modal-title"
|
||||
aria-describedby="transition-modal-description"
|
||||
open={open}
|
||||
onClose={handleClose}
|
||||
closeAfterTransition
|
||||
BackdropComponent={Backdrop}
|
||||
BackdropProps={{
|
||||
timeout: 500,
|
||||
}}
|
||||
>
|
||||
<Fade in={open}>
|
||||
<Box
|
||||
sx={style}
|
||||
className="dark-BG-101010"
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
justifyContent: "space-between",
|
||||
alignItems: "center",
|
||||
background: "#EDEFF5",
|
||||
borderRadius: "8px",
|
||||
padding: "25px 20px",
|
||||
}}
|
||||
className="bg-black"
|
||||
>
|
||||
<Typography
|
||||
id="modal-modal-title"
|
||||
variant="h6"
|
||||
component="h2"
|
||||
sx={{
|
||||
fontWeight: "500",
|
||||
fontSize: "20px",
|
||||
}}
|
||||
>
|
||||
Create Folder
|
||||
</Typography>
|
||||
|
||||
<IconButton
|
||||
aria-label="remove"
|
||||
size="small"
|
||||
onClick={handleClose}
|
||||
className="modal-close"
|
||||
>
|
||||
<ClearIcon />
|
||||
</IconButton>
|
||||
</Box>
|
||||
|
||||
<Box component="form" noValidate onSubmit={handleSubmit}>
|
||||
<Box
|
||||
sx={{
|
||||
background: "#fff",
|
||||
padding: "30px 20px",
|
||||
borderRadius: "8px",
|
||||
}}
|
||||
className="dark-BG-101010"
|
||||
>
|
||||
<Grid container alignItems="center" spacing={1}>
|
||||
<Grid item xs={12}>
|
||||
<Typography
|
||||
as="h5"
|
||||
sx={{
|
||||
fontWeight: "500",
|
||||
fontSize: "14px",
|
||||
mb: "12px",
|
||||
}}
|
||||
>
|
||||
Folder Name
|
||||
</Typography>
|
||||
|
||||
<TextField
|
||||
autoComplete="given-name"
|
||||
name="folderName"
|
||||
required
|
||||
fullWidth
|
||||
id="folderName"
|
||||
label="Folder Name"
|
||||
autoFocus
|
||||
InputProps={{
|
||||
style: { borderRadius: 8 },
|
||||
}}
|
||||
/>
|
||||
</Grid>
|
||||
|
||||
<Grid item xs={12} textAlign="end">
|
||||
<Button
|
||||
type="submit"
|
||||
variant="contained"
|
||||
sx={{
|
||||
mt: 1,
|
||||
textTransform: "capitalize",
|
||||
borderRadius: "8px",
|
||||
fontWeight: "500",
|
||||
fontSize: "13px",
|
||||
padding: "12px 20px",
|
||||
color: "#fff !important",
|
||||
}}
|
||||
>
|
||||
<AddIcon
|
||||
sx={{
|
||||
position: "relative",
|
||||
top: "-2px",
|
||||
}}
|
||||
className="mr-5px"
|
||||
/>{" "}
|
||||
Add Folder
|
||||
</Button>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Box>
|
||||
</Box>
|
||||
</Box>
|
||||
</Fade>
|
||||
</Modal>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default RecentFiles;
|
||||
@@ -1,298 +0,0 @@
|
||||
import React from "react";
|
||||
import { Box, Typography } from "@mui/material";
|
||||
import Card from "@mui/material/Card";
|
||||
import Table from "@mui/material/Table";
|
||||
import TableBody from "@mui/material/TableBody";
|
||||
import TableCell from "@mui/material/TableCell";
|
||||
import TableContainer from "@mui/material/TableContainer";
|
||||
import TableHead from "@mui/material/TableHead";
|
||||
import TableRow from "@mui/material/TableRow";
|
||||
import Paper from "@mui/material/Paper";
|
||||
import Tooltip from "@mui/material/Tooltip";
|
||||
import IconButton from "@mui/material/IconButton";
|
||||
import DeleteIcon from "@mui/icons-material/Delete";
|
||||
import CloudDownloadIcon from "@mui/icons-material/CloudDownload";
|
||||
import DriveFileRenameOutlineIcon from "@mui/icons-material/DriveFileRenameOutline";
|
||||
|
||||
function createData(name, icon, owner, fileSize, listedDate, fileItem) {
|
||||
return { name, icon, owner, fileSize, listedDate, fileItem };
|
||||
}
|
||||
|
||||
const rows = [
|
||||
createData(
|
||||
"Product UI/UX Design",
|
||||
"/images/folder.png",
|
||||
"Danielle Thompson",
|
||||
"0.7 GB",
|
||||
"Mar 08, 2021",
|
||||
"02"
|
||||
),
|
||||
createData(
|
||||
"App Design & Development",
|
||||
"/images/folder.png",
|
||||
"ET Themes",
|
||||
"521 MB",
|
||||
"Feb 13, 2021",
|
||||
"01"
|
||||
),
|
||||
createData(
|
||||
"Ubold Sketch Design",
|
||||
"/images/folder.png",
|
||||
"Gary Coley",
|
||||
"64.2 MB",
|
||||
"Dec 18, 2020",
|
||||
"02"
|
||||
),
|
||||
createData(
|
||||
"Annualreport.pdf",
|
||||
"/images/folder.png",
|
||||
"Cooper Sharwood",
|
||||
"12.5 GB",
|
||||
"Nov 25, 2020",
|
||||
"05"
|
||||
),
|
||||
createData(
|
||||
"Wireframes",
|
||||
"/images/folder.png",
|
||||
"Jasper Rigg",
|
||||
"8.3 MB",
|
||||
"Nov 25, 2019",
|
||||
"03"
|
||||
),
|
||||
createData(
|
||||
"App Design",
|
||||
"/images/folder.png",
|
||||
"ET Agency",
|
||||
"5 GB",
|
||||
"Jan 08, 2022",
|
||||
"15"
|
||||
),
|
||||
createData(
|
||||
"Web Design & Development",
|
||||
"/images/folder.png",
|
||||
"ET Templates",
|
||||
"13 GB",
|
||||
"Jan 13, 2022",
|
||||
"90"
|
||||
),
|
||||
createData(
|
||||
"React Template",
|
||||
"/images/folder.png",
|
||||
"ET Company",
|
||||
"100 GB",
|
||||
"Dec 18, 2021",
|
||||
"120"
|
||||
),
|
||||
createData(
|
||||
"Material Template",
|
||||
"/images/folder.png",
|
||||
"Cooper Sharwood",
|
||||
"12.5 GB",
|
||||
"Nov 25, 2020",
|
||||
"05"
|
||||
),
|
||||
createData(
|
||||
"Angular Template",
|
||||
"/images/folder.png",
|
||||
"Jasper Rigg",
|
||||
"8.3 MB",
|
||||
"Nov 25, 2019",
|
||||
"03"
|
||||
),
|
||||
];
|
||||
|
||||
const TemplateFiles = () => {
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "25px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
borderBottom: "1px solid #EEF0F7",
|
||||
paddingBottom: "10px",
|
||||
mb: "20px",
|
||||
}}
|
||||
className="for-dark-bottom-border"
|
||||
>
|
||||
<Typography
|
||||
as="h3"
|
||||
sx={{
|
||||
fontSize: 18,
|
||||
fontWeight: 500,
|
||||
}}
|
||||
>
|
||||
Templates
|
||||
</Typography>
|
||||
</Box>
|
||||
|
||||
<TableContainer
|
||||
component={Paper}
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
maxHeight: "650px",
|
||||
overflowY: "auto",
|
||||
}}
|
||||
>
|
||||
<Table
|
||||
sx={{ minWidth: 800 }}
|
||||
aria-label="simple table"
|
||||
className="dark-table"
|
||||
>
|
||||
<TableHead sx={{ background: "#F7FAFF" }}>
|
||||
<TableRow>
|
||||
<TableCell
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
Name
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
Owner
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
File Size
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
Listed Date
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
File Item
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="right"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
Actions
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
</TableHead>
|
||||
|
||||
<TableBody>
|
||||
{rows.map((row) => (
|
||||
<TableRow
|
||||
key={row.name}
|
||||
sx={{ "&:last-child td, &:last-child th": { border: 0 } }}
|
||||
>
|
||||
<TableCell
|
||||
sx={{ borderBottom: "1px solid #F7FAFF" }}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
}}
|
||||
>
|
||||
<img src={row.icon} alt="Image" width="22px" />
|
||||
<Typography
|
||||
as="h5"
|
||||
fontWeight="500"
|
||||
fontSize="13px"
|
||||
className="ml-1"
|
||||
>
|
||||
{row.name}
|
||||
</Typography>
|
||||
</Box>
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13px" }}
|
||||
>
|
||||
{row.owner}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13px" }}
|
||||
>
|
||||
{row.fileSize}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13px" }}
|
||||
>
|
||||
{row.listedDate}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13px" }}
|
||||
>
|
||||
{row.fileItem}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="right"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF" }}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "inline-block",
|
||||
}}
|
||||
>
|
||||
<Tooltip title="Remove" placement="top">
|
||||
<IconButton
|
||||
aria-label="remove"
|
||||
size="small"
|
||||
color="danger"
|
||||
className="danger"
|
||||
>
|
||||
<DeleteIcon fontSize="inherit" />
|
||||
</IconButton>
|
||||
</Tooltip>
|
||||
|
||||
<Tooltip title="Download" placement="top">
|
||||
<IconButton
|
||||
aria-label="download"
|
||||
size="small"
|
||||
color="success"
|
||||
className="success"
|
||||
>
|
||||
<CloudDownloadIcon fontSize="inherit" />
|
||||
</IconButton>
|
||||
</Tooltip>
|
||||
|
||||
<Tooltip title="Rename" placement="top">
|
||||
<IconButton
|
||||
aria-label="rename"
|
||||
size="small"
|
||||
color="primary"
|
||||
className="primary"
|
||||
>
|
||||
<DriveFileRenameOutlineIcon fontSize="inherit" />
|
||||
</IconButton>
|
||||
</Tooltip>
|
||||
</Box>
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
))}
|
||||
</TableBody>
|
||||
</Table>
|
||||
</TableContainer>
|
||||
</Card>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default TemplateFiles;
|
||||
@@ -1,274 +0,0 @@
|
||||
import React from "react";
|
||||
import { Box, Typography } from "@mui/material";
|
||||
import Card from "@mui/material/Card";
|
||||
import Table from "@mui/material/Table";
|
||||
import TableBody from "@mui/material/TableBody";
|
||||
import TableCell from "@mui/material/TableCell";
|
||||
import TableContainer from "@mui/material/TableContainer";
|
||||
import TableHead from "@mui/material/TableHead";
|
||||
import TableRow from "@mui/material/TableRow";
|
||||
import Paper from "@mui/material/Paper";
|
||||
import Tooltip from "@mui/material/Tooltip";
|
||||
import IconButton from "@mui/material/IconButton";
|
||||
import DeleteIcon from "@mui/icons-material/Delete";
|
||||
|
||||
function createData(name, icon, owner, fileSize, listedDate, fileItem) {
|
||||
return { name, icon, owner, fileSize, listedDate, fileItem };
|
||||
}
|
||||
|
||||
const rows = [
|
||||
createData(
|
||||
"Product UI/UX Design",
|
||||
"/images/folder.png",
|
||||
"Danielle Thompson",
|
||||
"0.7 GB",
|
||||
"Mar 08, 2021",
|
||||
"02"
|
||||
),
|
||||
createData(
|
||||
"App Design & Development",
|
||||
"/images/folder.png",
|
||||
"ET Themes",
|
||||
"521 MB",
|
||||
"Feb 13, 2021",
|
||||
"01"
|
||||
),
|
||||
createData(
|
||||
"Ubold Sketch Design",
|
||||
"/images/folder.png",
|
||||
"Gary Coley",
|
||||
"64.2 MB",
|
||||
"Dec 18, 2020",
|
||||
"02"
|
||||
),
|
||||
createData(
|
||||
"Annualreport.pdf",
|
||||
"/images/folder.png",
|
||||
"Cooper Sharwood",
|
||||
"12.5 GB",
|
||||
"Nov 25, 2020",
|
||||
"05"
|
||||
),
|
||||
createData(
|
||||
"Wireframes",
|
||||
"/images/folder.png",
|
||||
"Jasper Rigg",
|
||||
"8.3 MB",
|
||||
"Nov 25, 2019",
|
||||
"03"
|
||||
),
|
||||
createData(
|
||||
"App Design",
|
||||
"/images/folder.png",
|
||||
"ET Agency",
|
||||
"5 GB",
|
||||
"Jan 08, 2022",
|
||||
"15"
|
||||
),
|
||||
createData(
|
||||
"Web Design & Development",
|
||||
"/images/folder.png",
|
||||
"ET Templates",
|
||||
"13 GB",
|
||||
"Jan 13, 2022",
|
||||
"90"
|
||||
),
|
||||
createData(
|
||||
"React Template",
|
||||
"/images/folder.png",
|
||||
"ET Company",
|
||||
"100 GB",
|
||||
"Dec 18, 2021",
|
||||
"120"
|
||||
),
|
||||
createData(
|
||||
"Material Template",
|
||||
"/images/folder.png",
|
||||
"Cooper Sharwood",
|
||||
"12.5 GB",
|
||||
"Nov 25, 2020",
|
||||
"05"
|
||||
),
|
||||
createData(
|
||||
"Angular Template",
|
||||
"/images/folder.png",
|
||||
"Jasper Rigg",
|
||||
"8.3 MB",
|
||||
"Nov 25, 2019",
|
||||
"03"
|
||||
),
|
||||
];
|
||||
|
||||
const TrashFiles = () => {
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "25px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
borderBottom: "1px solid #EEF0F7",
|
||||
paddingBottom: "10px",
|
||||
mb: "20px",
|
||||
}}
|
||||
className="for-dark-bottom-border"
|
||||
>
|
||||
<Typography
|
||||
as="h3"
|
||||
sx={{
|
||||
fontSize: 18,
|
||||
fontWeight: 500,
|
||||
}}
|
||||
>
|
||||
Trash Files
|
||||
</Typography>
|
||||
</Box>
|
||||
|
||||
<TableContainer
|
||||
component={Paper}
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
maxHeight: "650px",
|
||||
overflowY: "auto",
|
||||
}}
|
||||
>
|
||||
<Table
|
||||
sx={{ minWidth: 800 }}
|
||||
aria-label="simple table"
|
||||
className="dark-table"
|
||||
>
|
||||
<TableHead sx={{ background: "#F7FAFF" }}>
|
||||
<TableRow>
|
||||
<TableCell
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
Name
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
Owner
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
File Size
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
Listed Date
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
File Item
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="right"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
Actions
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
</TableHead>
|
||||
|
||||
<TableBody>
|
||||
{rows.map((row) => (
|
||||
<TableRow
|
||||
key={row.name}
|
||||
sx={{ "&:last-child td, &:last-child th": { border: 0 } }}
|
||||
>
|
||||
<TableCell
|
||||
sx={{ borderBottom: "1px solid #F7FAFF" }}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
}}
|
||||
>
|
||||
<img src={row.icon} alt="Image" width="22px" />
|
||||
<Typography
|
||||
as="h5"
|
||||
fontWeight="500"
|
||||
fontSize="13px"
|
||||
className="ml-1"
|
||||
>
|
||||
{row.name}
|
||||
</Typography>
|
||||
</Box>
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13px" }}
|
||||
>
|
||||
{row.owner}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13px" }}
|
||||
>
|
||||
{row.fileSize}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13px" }}
|
||||
>
|
||||
{row.listedDate}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13px" }}
|
||||
>
|
||||
{row.fileItem}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="right"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF" }}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "inline-block",
|
||||
}}
|
||||
>
|
||||
<Tooltip title="Remove Permanently" placement="top">
|
||||
<IconButton
|
||||
aria-label="Remove Permanently"
|
||||
size="small"
|
||||
color="danger"
|
||||
className="danger"
|
||||
>
|
||||
<DeleteIcon fontSize="inherit" />
|
||||
</IconButton>
|
||||
</Tooltip>
|
||||
</Box>
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
))}
|
||||
</TableBody>
|
||||
</Table>
|
||||
</TableContainer>
|
||||
</Card>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default TrashFiles;
|
||||
@@ -1,926 +0,0 @@
|
||||
import React from "react";
|
||||
import { Box, Typography } from "@mui/material";
|
||||
import Card from "@mui/material/Card";
|
||||
import IconButton from "@mui/material/IconButton";
|
||||
import PropTypes from "prop-types";
|
||||
import { useTheme } from "@mui/material/styles";
|
||||
import Table from "@mui/material/Table";
|
||||
import TableHead from "@mui/material/TableHead";
|
||||
import TableBody from "@mui/material/TableBody";
|
||||
import TableCell from "@mui/material/TableCell";
|
||||
import TableContainer from "@mui/material/TableContainer";
|
||||
import TableFooter from "@mui/material/TableFooter";
|
||||
import TablePagination from "@mui/material/TablePagination";
|
||||
import TableRow from "@mui/material/TableRow";
|
||||
import Paper from "@mui/material/Paper";
|
||||
import FirstPageIcon from "@mui/icons-material/FirstPage";
|
||||
import KeyboardArrowLeft from "@mui/icons-material/KeyboardArrowLeft";
|
||||
import KeyboardArrowRight from "@mui/icons-material/KeyboardArrowRight";
|
||||
import LastPageIcon from "@mui/icons-material/LastPage";
|
||||
import Tooltip from "@mui/material/Tooltip";
|
||||
import Grid from "@mui/material/Grid";
|
||||
import DeleteIcon from "@mui/icons-material/Delete";
|
||||
import DriveFileRenameOutlineIcon from "@mui/icons-material/DriveFileRenameOutline";
|
||||
import Button from "@mui/material/Button";
|
||||
import TextField from "@mui/material/TextField";
|
||||
import AddIcon from "@mui/icons-material/Add";
|
||||
import ClearIcon from "@mui/icons-material/Clear";
|
||||
import Avatar from "@mui/material/Avatar";
|
||||
import Checkbox from "@mui/material/Checkbox";
|
||||
const label = { inputProps: { "aria-label": "Checkbox demo" } };
|
||||
import { styled } from "@mui/material/styles";
|
||||
import Dialog from "@mui/material/Dialog";
|
||||
import DialogTitle from "@mui/material/DialogTitle";
|
||||
import CloseIcon from "@mui/icons-material/Close";
|
||||
|
||||
// Add Task Modal
|
||||
const BootstrapDialog = styled(Dialog)(({ theme }) => ({
|
||||
"& .MuiDialogContent-root": {
|
||||
padding: theme.spacing(2),
|
||||
},
|
||||
"& .MuiDialogActions-root": {
|
||||
padding: theme.spacing(1),
|
||||
},
|
||||
}));
|
||||
|
||||
function BootstrapDialogTitle(props) {
|
||||
const { children, onClose, ...other } = props;
|
||||
|
||||
return (
|
||||
<DialogTitle sx={{ m: 0, p: 2 }} {...other}>
|
||||
{children}
|
||||
{onClose ? (
|
||||
<IconButton
|
||||
aria-label="close"
|
||||
onClick={onClose}
|
||||
sx={{
|
||||
position: "absolute",
|
||||
right: 8,
|
||||
top: 8,
|
||||
color: (theme) => theme.palette.grey[500],
|
||||
}}
|
||||
>
|
||||
<CloseIcon />
|
||||
</IconButton>
|
||||
) : null}
|
||||
</DialogTitle>
|
||||
);
|
||||
}
|
||||
|
||||
BootstrapDialogTitle.propTypes = {
|
||||
children: PropTypes.node,
|
||||
onClose: PropTypes.func.isRequired,
|
||||
};
|
||||
// End Add Task Modal
|
||||
|
||||
function ToDoList(props) {
|
||||
const theme = useTheme();
|
||||
const { count, page, rowsPerPage, onPageChange } = props;
|
||||
|
||||
const handleFirstPageButtonClick = (event) => {
|
||||
onPageChange(event, 0);
|
||||
};
|
||||
|
||||
const handleBackButtonClick = (event) => {
|
||||
onPageChange(event, page - 1);
|
||||
};
|
||||
|
||||
const handleNextButtonClick = (event) => {
|
||||
onPageChange(event, page + 1);
|
||||
};
|
||||
|
||||
const handleLastPageButtonClick = (event) => {
|
||||
onPageChange(event, Math.max(0, Math.ceil(count / rowsPerPage) - 1));
|
||||
};
|
||||
|
||||
return (
|
||||
<Box sx={{ flexShrink: 0, ml: 2.5 }}>
|
||||
<IconButton
|
||||
onClick={handleFirstPageButtonClick}
|
||||
disabled={page === 0}
|
||||
aria-label="first page"
|
||||
>
|
||||
{theme.direction === "rtl" ? <LastPageIcon /> : <FirstPageIcon />}
|
||||
</IconButton>
|
||||
<IconButton
|
||||
onClick={handleBackButtonClick}
|
||||
disabled={page === 0}
|
||||
aria-label="previous page"
|
||||
>
|
||||
{theme.direction === "rtl" ? (
|
||||
<KeyboardArrowRight />
|
||||
) : (
|
||||
<KeyboardArrowLeft />
|
||||
)}
|
||||
</IconButton>
|
||||
<IconButton
|
||||
onClick={handleNextButtonClick}
|
||||
disabled={page >= Math.ceil(count / rowsPerPage) - 1}
|
||||
aria-label="next page"
|
||||
>
|
||||
{theme.direction === "rtl" ? (
|
||||
<KeyboardArrowLeft />
|
||||
) : (
|
||||
<KeyboardArrowRight />
|
||||
)}
|
||||
</IconButton>
|
||||
<IconButton
|
||||
onClick={handleLastPageButtonClick}
|
||||
disabled={page >= Math.ceil(count / rowsPerPage) - 1}
|
||||
aria-label="last page"
|
||||
>
|
||||
{theme.direction === "rtl" ? <FirstPageIcon /> : <LastPageIcon />}
|
||||
</IconButton>
|
||||
</Box>
|
||||
);
|
||||
}
|
||||
|
||||
ToDoList.propTypes = {
|
||||
count: PropTypes.number.isRequired,
|
||||
onPageChange: PropTypes.func.isRequired,
|
||||
page: PropTypes.number.isRequired,
|
||||
rowsPerPage: PropTypes.number.isRequired,
|
||||
};
|
||||
|
||||
function createData(
|
||||
name,
|
||||
url,
|
||||
startDate,
|
||||
endDate,
|
||||
status,
|
||||
badgeClass,
|
||||
completion,
|
||||
priority
|
||||
) {
|
||||
return {
|
||||
name,
|
||||
url,
|
||||
startDate,
|
||||
endDate,
|
||||
status,
|
||||
badgeClass,
|
||||
completion,
|
||||
priority,
|
||||
};
|
||||
}
|
||||
|
||||
const rows = [
|
||||
createData(
|
||||
"Public Beta Release",
|
||||
"/images/user1.png",
|
||||
"1 Jan 2022",
|
||||
"1 Apr 2022",
|
||||
"Completed",
|
||||
"successBadge",
|
||||
"10/10",
|
||||
"High"
|
||||
),
|
||||
createData(
|
||||
"Fix Platform Errors",
|
||||
"/images/user2.png",
|
||||
"1 Mar 2022",
|
||||
"1 May 2022",
|
||||
"Completed",
|
||||
"successBadge",
|
||||
"10/10",
|
||||
"High"
|
||||
),
|
||||
createData(
|
||||
"Launch our Mobile App",
|
||||
"/images/user3.png",
|
||||
"15 Apr 2022",
|
||||
"15 Jun 2022",
|
||||
"On Going",
|
||||
"primaryBadge",
|
||||
"7/10",
|
||||
"Medium"
|
||||
),
|
||||
createData(
|
||||
"Add the New Pricing Page",
|
||||
"/images/user4.png",
|
||||
"15 May 2022",
|
||||
"15 Jun 2022",
|
||||
"Pending",
|
||||
"dangerBadge",
|
||||
"1/10",
|
||||
"Low"
|
||||
),
|
||||
createData(
|
||||
"Redesign New Online Shop",
|
||||
"/images/user5.png",
|
||||
"15 Jun 2022",
|
||||
"15 Aug 2022",
|
||||
"On Going",
|
||||
"primaryBadge",
|
||||
"0/10",
|
||||
"Low"
|
||||
),
|
||||
createData(
|
||||
"Material Ui Design",
|
||||
"/images/user6.png",
|
||||
"15 Jul 2022",
|
||||
"15 Sep 2022",
|
||||
"On Going",
|
||||
"primaryBadge",
|
||||
"7/10",
|
||||
"Medium"
|
||||
),
|
||||
createData(
|
||||
"Add Progress Track",
|
||||
"/images/user7.png",
|
||||
"15 Mar 2022",
|
||||
"15 May 2022",
|
||||
"Completed",
|
||||
"successBadge",
|
||||
"10/10",
|
||||
"High"
|
||||
),
|
||||
createData(
|
||||
"Web Design",
|
||||
"/images/user8.png",
|
||||
"15 Aug 2022",
|
||||
"15 Dec 2022",
|
||||
"On Going",
|
||||
"primaryBadge",
|
||||
"9/10",
|
||||
"High"
|
||||
),
|
||||
createData(
|
||||
"Web Development",
|
||||
"/images/user9.png",
|
||||
"15 Nov 2022",
|
||||
"15 Jan 2023",
|
||||
"On Going",
|
||||
"primaryBadge",
|
||||
"8/10",
|
||||
"High"
|
||||
),
|
||||
createData(
|
||||
"React App Development",
|
||||
"/images/user10.png",
|
||||
"15 Jan 2022",
|
||||
"15 Mar 2022",
|
||||
"Completed",
|
||||
"successBadge",
|
||||
"10/10",
|
||||
"High"
|
||||
),
|
||||
createData(
|
||||
"eCommerce Development",
|
||||
"/images/user11.png",
|
||||
"15 Mar 2022",
|
||||
"15 May 2022",
|
||||
"On Going",
|
||||
"primaryBadge",
|
||||
"8/10",
|
||||
"Medium"
|
||||
),
|
||||
createData(
|
||||
"App Development",
|
||||
"/images/user12.png",
|
||||
"15 May 2022",
|
||||
"15 Jul 2022",
|
||||
"On Going",
|
||||
"primaryBadge",
|
||||
"5/10",
|
||||
"Medium"
|
||||
),
|
||||
].sort((a, b) => (a.name < b.name ? -1 : 1));
|
||||
|
||||
const ToDoLists = () => {
|
||||
const [page, setPage] = React.useState(0);
|
||||
const [rowsPerPage, setRowsPerPage] = React.useState(8);
|
||||
|
||||
// Avoid a layout jump when reaching the last page with empty rows.
|
||||
const emptyRows =
|
||||
page > 0 ? Math.max(0, (1 + page) * rowsPerPage - rows.length) : 0;
|
||||
|
||||
const handleChangePage = (event, newPage) => {
|
||||
setPage(newPage);
|
||||
};
|
||||
|
||||
const handleChangeRowsPerPage = (event) => {
|
||||
setRowsPerPage(parseInt(event.target.value, 10));
|
||||
setPage(0);
|
||||
};
|
||||
|
||||
// Add task modal
|
||||
const [open, setOpen] = React.useState(false);
|
||||
|
||||
const handleClickOpen = () => {
|
||||
setOpen(true);
|
||||
};
|
||||
const handleClose = () => {
|
||||
setOpen(false);
|
||||
};
|
||||
|
||||
const handleSubmit = (event) => {
|
||||
event.preventDefault();
|
||||
const data = new FormData(event.currentTarget);
|
||||
console.log({
|
||||
email: data.get("email"),
|
||||
password: data.get("password"),
|
||||
});
|
||||
};
|
||||
// End Add Task Modal
|
||||
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "25px 20px 15px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
justifyContent: "space-between",
|
||||
alignItems: "center",
|
||||
borderBottom: "1px solid #EEF0F7",
|
||||
paddingBottom: "10px",
|
||||
mb: "20px",
|
||||
}}
|
||||
className="for-dark-bottom-border"
|
||||
>
|
||||
<Typography
|
||||
as="h3"
|
||||
sx={{
|
||||
fontSize: 18,
|
||||
fontWeight: 500,
|
||||
}}
|
||||
>
|
||||
My Tasks
|
||||
</Typography>
|
||||
|
||||
<Button
|
||||
onClick={handleClickOpen}
|
||||
variant="contained"
|
||||
sx={{
|
||||
textTransform: "capitalize",
|
||||
borderRadius: "8px",
|
||||
fontWeight: "500",
|
||||
fontSize: "13px",
|
||||
padding: "12px 20px",
|
||||
color: "#fff !important",
|
||||
}}
|
||||
>
|
||||
<AddIcon
|
||||
sx={{ position: "relative", top: "-1px" }}
|
||||
className="mr-5px"
|
||||
/>{" "}
|
||||
Add Task
|
||||
</Button>
|
||||
</Box>
|
||||
|
||||
<TableContainer
|
||||
component={Paper}
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
}}
|
||||
>
|
||||
<Table
|
||||
sx={{ minWidth: 930 }}
|
||||
aria-label="custom pagination table"
|
||||
className="dark-table"
|
||||
>
|
||||
<TableHead sx={{ background: "#F7FAFF" }}>
|
||||
<TableRow>
|
||||
<TableCell
|
||||
sx={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13.5px",
|
||||
}}
|
||||
>
|
||||
Name
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
sx={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13.5px",
|
||||
}}
|
||||
>
|
||||
Assigned
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
sx={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13.5px",
|
||||
}}
|
||||
>
|
||||
Start Date
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
sx={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13.5px",
|
||||
}}
|
||||
>
|
||||
End Date
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13.5px",
|
||||
}}
|
||||
>
|
||||
Status
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13.5px",
|
||||
}}
|
||||
>
|
||||
Completion
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13.5px",
|
||||
}}
|
||||
>
|
||||
Priority
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="right"
|
||||
sx={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13.5px",
|
||||
}}
|
||||
>
|
||||
Action
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
</TableHead>
|
||||
|
||||
<TableBody>
|
||||
{(rowsPerPage > 0
|
||||
? rows.slice(
|
||||
page * rowsPerPage,
|
||||
page * rowsPerPage + rowsPerPage
|
||||
)
|
||||
: rows
|
||||
).map((row) => (
|
||||
<TableRow key={row.name}>
|
||||
<TableCell
|
||||
sx={{
|
||||
fontWeight: "500",
|
||||
fontSize: "13px",
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
color: "#260944",
|
||||
pt: "16px",
|
||||
pb: "16px",
|
||||
}}
|
||||
>
|
||||
<Checkbox {...label} size="small" />
|
||||
{row.name}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
sx={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
pt: "16px",
|
||||
pb: "16px",
|
||||
}}
|
||||
>
|
||||
<Avatar
|
||||
alt="User"
|
||||
src={row.url}
|
||||
sx={{ width: 35, height: 35 }}
|
||||
/>
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
sx={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13px",
|
||||
pt: "16px",
|
||||
pb: "16px",
|
||||
}}
|
||||
>
|
||||
{row.startDate}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
sx={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13px",
|
||||
pt: "16px",
|
||||
pb: "16px",
|
||||
}}
|
||||
>
|
||||
{row.endDate}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{
|
||||
fontWeight: 500,
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "11px",
|
||||
pt: "16px",
|
||||
pb: "16px",
|
||||
}}
|
||||
>
|
||||
<span className={row.badgeClass}>{row.status}</span>
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
sx={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13px",
|
||||
pt: "16px",
|
||||
pb: "16px",
|
||||
}}
|
||||
align="center"
|
||||
>
|
||||
{row.completion}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
sx={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13px",
|
||||
pt: "16px",
|
||||
pb: "16px",
|
||||
}}
|
||||
align="center"
|
||||
>
|
||||
{row.priority}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="right"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF" }}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "inline-block",
|
||||
}}
|
||||
>
|
||||
<Tooltip title="Remove" placement="top">
|
||||
<IconButton
|
||||
aria-label="remove"
|
||||
size="small"
|
||||
color="danger"
|
||||
className="danger"
|
||||
>
|
||||
<DeleteIcon fontSize="inherit" />
|
||||
</IconButton>
|
||||
</Tooltip>
|
||||
|
||||
<Tooltip title="Rename" placement="top">
|
||||
<IconButton
|
||||
aria-label="rename"
|
||||
size="small"
|
||||
color="primary"
|
||||
className="primary"
|
||||
>
|
||||
<DriveFileRenameOutlineIcon fontSize="inherit" />
|
||||
</IconButton>
|
||||
</Tooltip>
|
||||
</Box>
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
))}
|
||||
|
||||
{emptyRows > 0 && (
|
||||
<TableRow style={{ height: 53 * emptyRows }}>
|
||||
<TableCell
|
||||
colSpan={4}
|
||||
style={{ borderBottom: "1px solid #F7FAFF" }}
|
||||
/>
|
||||
</TableRow>
|
||||
)}
|
||||
</TableBody>
|
||||
|
||||
<TableFooter>
|
||||
<TableRow>
|
||||
<TablePagination
|
||||
rowsPerPageOptions={[5, 10, 25, { label: "All", value: -1 }]}
|
||||
colSpan={8}
|
||||
count={rows.length}
|
||||
rowsPerPage={rowsPerPage}
|
||||
page={page}
|
||||
SelectProps={{
|
||||
inputProps: {
|
||||
"aria-label": "rows per page",
|
||||
},
|
||||
native: true,
|
||||
}}
|
||||
onPageChange={handleChangePage}
|
||||
onRowsPerPageChange={handleChangeRowsPerPage}
|
||||
ActionsComponent={ToDoList}
|
||||
style={{ borderBottom: "none" }}
|
||||
/>
|
||||
</TableRow>
|
||||
</TableFooter>
|
||||
</Table>
|
||||
</TableContainer>
|
||||
</Card>
|
||||
|
||||
{/* Add task modal */}
|
||||
<BootstrapDialog
|
||||
onClose={handleClose}
|
||||
aria-labelledby="customized-dialog-title"
|
||||
open={open}
|
||||
>
|
||||
<Box>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
justifyContent: "space-between",
|
||||
alignItems: "center",
|
||||
background: "#EDEFF5",
|
||||
borderRadius: "8px",
|
||||
padding: "20px 20px",
|
||||
}}
|
||||
className="bg-black"
|
||||
>
|
||||
<Typography
|
||||
id="modal-modal-title"
|
||||
variant="h6"
|
||||
component="h2"
|
||||
sx={{
|
||||
fontWeight: "500",
|
||||
fontSize: "20px",
|
||||
}}
|
||||
>
|
||||
Add Task
|
||||
</Typography>
|
||||
|
||||
<IconButton
|
||||
aria-label="remove"
|
||||
size="small"
|
||||
onClick={handleClose}
|
||||
className="modal-close"
|
||||
>
|
||||
<ClearIcon />
|
||||
</IconButton>
|
||||
</Box>
|
||||
|
||||
<Box component="form" noValidate onSubmit={handleSubmit}>
|
||||
<Box
|
||||
sx={{
|
||||
background: "#fff",
|
||||
padding: "20px 20px",
|
||||
borderRadius: "8px",
|
||||
}}
|
||||
className="dark-BG-101010"
|
||||
>
|
||||
<Grid container alignItems="center" spacing={2}>
|
||||
<Grid item xs={12} md={12} lg={12}>
|
||||
<Typography
|
||||
as="h5"
|
||||
sx={{
|
||||
fontWeight: "500",
|
||||
fontSize: "14px",
|
||||
mb: "12px",
|
||||
}}
|
||||
>
|
||||
Task
|
||||
</Typography>
|
||||
|
||||
<TextField
|
||||
autoComplete="task"
|
||||
name="task"
|
||||
required
|
||||
fullWidth
|
||||
id="task"
|
||||
label="Task"
|
||||
autoFocus
|
||||
InputProps={{
|
||||
style: { borderRadius: 8 },
|
||||
}}
|
||||
className="for-dark-input"
|
||||
/>
|
||||
</Grid>
|
||||
|
||||
<Grid item xs={12} md={12} lg={6}>
|
||||
<Typography
|
||||
as="h5"
|
||||
sx={{
|
||||
fontWeight: "500",
|
||||
fontSize: "14px",
|
||||
mb: "12px",
|
||||
}}
|
||||
>
|
||||
Member
|
||||
</Typography>
|
||||
|
||||
<TextField
|
||||
autoComplete="image"
|
||||
name="image"
|
||||
required
|
||||
fullWidth
|
||||
id="image"
|
||||
type="file"
|
||||
autoFocus
|
||||
InputProps={{
|
||||
style: { borderRadius: 8 },
|
||||
}}
|
||||
/>
|
||||
</Grid>
|
||||
|
||||
<Grid item xs={12} md={12} lg={6}>
|
||||
<Typography
|
||||
as="h5"
|
||||
sx={{
|
||||
fontWeight: "500",
|
||||
fontSize: "14px",
|
||||
mb: "12px",
|
||||
}}
|
||||
>
|
||||
Start Date
|
||||
</Typography>
|
||||
|
||||
<TextField
|
||||
autoComplete="start-date"
|
||||
name="startDate"
|
||||
required
|
||||
fullWidth
|
||||
id="startDate"
|
||||
type="date"
|
||||
autoFocus
|
||||
InputProps={{
|
||||
style: { borderRadius: 8 },
|
||||
}}
|
||||
/>
|
||||
</Grid>
|
||||
|
||||
<Grid item xs={12} md={12} lg={6}>
|
||||
<Typography
|
||||
as="h5"
|
||||
sx={{
|
||||
fontWeight: "500",
|
||||
fontSize: "14px",
|
||||
mb: "12px",
|
||||
}}
|
||||
>
|
||||
End Date
|
||||
</Typography>
|
||||
|
||||
<TextField
|
||||
autoComplete="end-date"
|
||||
name="endDate"
|
||||
required
|
||||
fullWidth
|
||||
id="endDate"
|
||||
type="date"
|
||||
autoFocus
|
||||
InputProps={{
|
||||
style: { borderRadius: 8 },
|
||||
}}
|
||||
/>
|
||||
</Grid>
|
||||
|
||||
<Grid item xs={12} md={12} lg={6}>
|
||||
<Typography
|
||||
as="h5"
|
||||
sx={{
|
||||
fontWeight: "500",
|
||||
fontSize: "14px",
|
||||
mb: "12px",
|
||||
}}
|
||||
>
|
||||
Status
|
||||
</Typography>
|
||||
|
||||
<TextField
|
||||
autoComplete="status"
|
||||
name="status"
|
||||
required
|
||||
fullWidth
|
||||
id="status"
|
||||
label="Status"
|
||||
autoFocus
|
||||
InputProps={{
|
||||
style: { borderRadius: 8 },
|
||||
}}
|
||||
/>
|
||||
</Grid>
|
||||
|
||||
<Grid item xs={12} md={12} lg={6}>
|
||||
<Typography
|
||||
as="h5"
|
||||
sx={{
|
||||
fontWeight: "500",
|
||||
fontSize: "14px",
|
||||
mb: "12px",
|
||||
}}
|
||||
>
|
||||
Completion
|
||||
</Typography>
|
||||
|
||||
<TextField
|
||||
autoComplete="completion"
|
||||
name="completion"
|
||||
required
|
||||
fullWidth
|
||||
id="completion"
|
||||
label="0/10"
|
||||
autoFocus
|
||||
InputProps={{
|
||||
style: { borderRadius: 8 },
|
||||
}}
|
||||
/>
|
||||
</Grid>
|
||||
|
||||
<Grid item xs={12} md={12} lg={6}>
|
||||
<Typography
|
||||
as="h5"
|
||||
sx={{
|
||||
fontWeight: "500",
|
||||
fontSize: "14px",
|
||||
mb: "12px",
|
||||
}}
|
||||
>
|
||||
Priority
|
||||
</Typography>
|
||||
|
||||
<TextField
|
||||
autoComplete="priority"
|
||||
name="priority"
|
||||
required
|
||||
fullWidth
|
||||
id="priority"
|
||||
label="High/medium/low"
|
||||
autoFocus
|
||||
InputProps={{
|
||||
style: { borderRadius: 8 },
|
||||
}}
|
||||
/>
|
||||
</Grid>
|
||||
|
||||
<Grid item xs={12} textAlign="end">
|
||||
<Button
|
||||
variant="contained"
|
||||
color="secondary"
|
||||
sx={{
|
||||
mt: 1,
|
||||
textTransform: "capitalize",
|
||||
borderRadius: "8px",
|
||||
fontWeight: "500",
|
||||
fontSize: "13px",
|
||||
padding: "12px 20px",
|
||||
color: "#fff !important"
|
||||
}}
|
||||
onClick={handleClose}
|
||||
className="mr-15px"
|
||||
>
|
||||
<ClearIcon
|
||||
sx={{
|
||||
position: "relative",
|
||||
top: "-1px",
|
||||
}}
|
||||
className="mr-5px"
|
||||
/>{" "}
|
||||
Cancel
|
||||
</Button>
|
||||
|
||||
<Button
|
||||
type="submit"
|
||||
variant="contained"
|
||||
sx={{
|
||||
mt: 1,
|
||||
textTransform: "capitalize",
|
||||
borderRadius: "8px",
|
||||
fontWeight: "500",
|
||||
fontSize: "13px",
|
||||
padding: "12px 20px",
|
||||
color: "#fff !important"
|
||||
}}
|
||||
>
|
||||
<AddIcon
|
||||
sx={{
|
||||
position: "relative",
|
||||
top: "-1px",
|
||||
}}
|
||||
className="mr-5px"
|
||||
/>{" "}
|
||||
Add Task
|
||||
</Button>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Box>
|
||||
</Box>
|
||||
</Box>
|
||||
</BootstrapDialog>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default ToDoLists;
|
||||
@@ -1,244 +0,0 @@
|
||||
.favicon {
|
||||
position: relative;
|
||||
top: 5px;
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
/* googleBtn */
|
||||
.googleBtn {
|
||||
background: #FFFFFF;
|
||||
border: 1px solid #EDEFF5;
|
||||
border-radius: 8px;
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
padding: 16px 25px 16px 55px;
|
||||
color: #260944;
|
||||
font-weight: 500;
|
||||
font-size: 14px;
|
||||
text-decoration: none;
|
||||
transition: .6s;
|
||||
-webkit-transition: .6s;
|
||||
margin-right: 7px;
|
||||
position: relative;
|
||||
}
|
||||
.googleBtn:hover {
|
||||
box-shadow: rgba(0, 0, 0, 0.15) 1.95px 1.95px 2.6px;
|
||||
}
|
||||
.googleBtn img {
|
||||
position: absolute;
|
||||
top: 15px;
|
||||
left: 25px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
/* Facebook Btn */
|
||||
.fbBtn {
|
||||
background: #4776D0;
|
||||
border: 1px solid #4776D0;
|
||||
border-radius: 8px;
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
padding: 16px 25px 16px 55px;
|
||||
color: #fff !important;
|
||||
font-weight: 500;
|
||||
font-size: 14px;
|
||||
text-decoration: none;
|
||||
transition: .6s;
|
||||
-webkit-transition: .6s;
|
||||
margin-left: 7px;
|
||||
position: relative;
|
||||
}
|
||||
.fbBtn:hover {
|
||||
box-shadow: rgba(0, 0, 0, 0.15) 1.95px 1.95px 2.6px;
|
||||
}
|
||||
.fbBtn img {
|
||||
position: absolute;
|
||||
top: 15px;
|
||||
left: 25px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
/* or */
|
||||
.or {
|
||||
text-align: center;
|
||||
position: relative;
|
||||
margin-bottom: 30px;
|
||||
color: #777E90;
|
||||
font-weight: 500;
|
||||
z-index: 0;
|
||||
}
|
||||
.or:before {
|
||||
content: "";
|
||||
background: #E2E8F0;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 1px;
|
||||
left: 0;
|
||||
top: 10px;
|
||||
z-index: -1;
|
||||
}
|
||||
.or span {
|
||||
background-color: #F5F5F5;
|
||||
display: inline-block;
|
||||
padding: 0 10px;
|
||||
}
|
||||
|
||||
/* Lock screen */
|
||||
.profileBox {
|
||||
background-color: #fff;
|
||||
border-radius: 10px;
|
||||
position: relative;
|
||||
}
|
||||
.header {
|
||||
background: #EAEDFB;
|
||||
border-radius: 10px 10px 0px 0px;
|
||||
padding: 30px 15px 50px;
|
||||
position: relative;
|
||||
}
|
||||
.headerContent {
|
||||
max-width: 300px;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
.header h1 {
|
||||
margin: 0 0 10px;
|
||||
font-size: 18px;
|
||||
color: #757FEF;
|
||||
font-weight: 500;
|
||||
}
|
||||
.header p {
|
||||
margin: 0;
|
||||
font-size: 14px;
|
||||
color: #757FEF;
|
||||
}
|
||||
.header img {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
.profileInfo {
|
||||
position: relative;
|
||||
text-align: center;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.profileInfo img {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
border: 5px solid #fff;
|
||||
border-radius: 100%;
|
||||
box-shadow: rgba(0, 0, 0, 0.16) 0px 1px 4px;
|
||||
}
|
||||
.profileInfo h3 {
|
||||
margin: 5px 0 0;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 767px) {
|
||||
.googleBtn {
|
||||
padding: 13px 15px 13px 40px;
|
||||
font-size: 12px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
.googleBtn img {
|
||||
left: 15px;
|
||||
top: 10px;
|
||||
}
|
||||
.fbBtn {
|
||||
padding: 13px 15px 13px 40px;
|
||||
font-size: 12px;
|
||||
margin-left: 5px;
|
||||
}
|
||||
.fbBtn img {
|
||||
left: 15px;
|
||||
top: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
/* For RTL Style */
|
||||
[dir="rtl"] .favicon {
|
||||
margin-left: 0;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
/* googleBtn */
|
||||
[dir="rtl"] .googleBtn {
|
||||
margin-right: 0;
|
||||
margin-left: 7px;
|
||||
padding: 16px 55px 16px 25px;
|
||||
}
|
||||
[dir="rtl"] .googleBtn img {
|
||||
left: auto;
|
||||
right: 25px;
|
||||
margin-right: 0;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
/* Facebook Btn */
|
||||
[dir="rtl"] .fbBtn {
|
||||
margin-left: 0;
|
||||
margin-right: 7px;
|
||||
padding: 16px 55px 16px 25px;
|
||||
}
|
||||
[dir="rtl"] .fbBtn img {
|
||||
left: auto;
|
||||
right: 25px;
|
||||
margin-right: 0;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
/* or */
|
||||
[dir="rtl"] .or:before {
|
||||
left: auto;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
/* Lock screen */
|
||||
[dir="rtl"] .header img {
|
||||
right: auto;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
/* For dark mode */
|
||||
[class="dark"] .or {
|
||||
color: #fff;
|
||||
}
|
||||
[class="dark"] .or:before {
|
||||
background: var(--borderColor);
|
||||
}
|
||||
[class="dark"] .or span {
|
||||
background-color: #000;
|
||||
}
|
||||
|
||||
/* googleBtn */
|
||||
[class="dark"] .googleBtn {
|
||||
background: var(--colorBlack);
|
||||
border: 1px solid var(--colorBlack);
|
||||
}
|
||||
|
||||
/* Lock screen */
|
||||
[class="dark"] .header {
|
||||
background: #101010;
|
||||
}
|
||||
|
||||
|
||||
@media only screen and (max-width: 767px) {
|
||||
[dir="rtl"] .googleBtn {
|
||||
margin-right: 0;
|
||||
margin-left: 5px;
|
||||
}
|
||||
[dir="rtl"] .googleBtn img {
|
||||
left: auto;
|
||||
right: 15px;
|
||||
top: 14px;
|
||||
}
|
||||
[dir="rtl"] .fbBtn {
|
||||
margin-left: 0;
|
||||
margin-right: 5px;
|
||||
}
|
||||
[dir="rtl"] .fbBtn img {
|
||||
left: auto;
|
||||
right: 15px;
|
||||
top: 14px;
|
||||
}
|
||||
}
|
||||
@@ -1,121 +0,0 @@
|
||||
import React from "react";
|
||||
import Link from "next/link";
|
||||
import Grid from "@mui/material/Grid";
|
||||
import { Typography } from "@mui/material";
|
||||
import { Box } from "@mui/system";
|
||||
import TextField from "@mui/material/TextField";
|
||||
import Button from "@mui/material/Button";
|
||||
import styles from "@/components/Authentication/Authentication.module.css";
|
||||
|
||||
const ForgotPasswordForm = () => {
|
||||
const handleSubmit = (event) => {
|
||||
event.preventDefault();
|
||||
const data = new FormData(event.currentTarget);
|
||||
console.log({
|
||||
email: data.get("email"),
|
||||
password: data.get("password"),
|
||||
});
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<div className="authenticationBox">
|
||||
<Box
|
||||
component="main"
|
||||
sx={{
|
||||
maxWidth: "510px",
|
||||
ml: "auto",
|
||||
mr: "auto",
|
||||
padding: "50px 0 100px",
|
||||
}}
|
||||
>
|
||||
<Grid item xs={12} md={12} lg={12} xl={12}>
|
||||
<Box>
|
||||
<Typography as="h1" fontSize="28px" fontWeight="700" mb="5px">
|
||||
Forgot Password?{" "}
|
||||
<img
|
||||
src="/images/favicon.png"
|
||||
alt="favicon"
|
||||
className={styles.favicon}
|
||||
/>
|
||||
</Typography>
|
||||
|
||||
<Typography fontSize="15px" mb="30px">
|
||||
Enter your email and we′ll send you instructions to reset your
|
||||
password
|
||||
</Typography>
|
||||
|
||||
<Box component="form" noValidate onSubmit={handleSubmit}>
|
||||
<Box
|
||||
sx={{
|
||||
background: "#fff",
|
||||
padding: "30px 20px",
|
||||
borderRadius: "10px",
|
||||
mb: "20px",
|
||||
}}
|
||||
className="bg-black"
|
||||
>
|
||||
<Grid container alignItems="center" spacing={2}>
|
||||
<Grid item xs={12}>
|
||||
<Typography
|
||||
component="label"
|
||||
sx={{
|
||||
fontWeight: "500",
|
||||
fontSize: "14px",
|
||||
mb: "10px",
|
||||
display: "block",
|
||||
}}
|
||||
>
|
||||
Email
|
||||
</Typography>
|
||||
|
||||
<TextField
|
||||
required
|
||||
fullWidth
|
||||
id="email"
|
||||
label="Email Address"
|
||||
name="email"
|
||||
autoComplete="email"
|
||||
InputProps={{
|
||||
style: { borderRadius: 8 },
|
||||
}}
|
||||
/>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Box>
|
||||
|
||||
<Button
|
||||
type="submit"
|
||||
fullWidth
|
||||
variant="contained"
|
||||
sx={{
|
||||
mt: 1,
|
||||
textTransform: "capitalize",
|
||||
borderRadius: "8px",
|
||||
fontWeight: "500",
|
||||
fontSize: "16px",
|
||||
padding: "12px 10px",
|
||||
color: "#fff !important"
|
||||
}}
|
||||
>
|
||||
Send Reset Link
|
||||
</Button>
|
||||
</Box>
|
||||
|
||||
<Box as="div" textAlign="center" mt="20px">
|
||||
<Link
|
||||
href="/authentication/sign-in/"
|
||||
className="primaryColor text-decoration-none"
|
||||
>
|
||||
<i className="ri-arrow-left-s-line"></i> Back to Sign in
|
||||
</Link>
|
||||
</Box>
|
||||
</Box>
|
||||
</Grid>
|
||||
</Box>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default ForgotPasswordForm;
|
||||
@@ -1,119 +0,0 @@
|
||||
import React from "react";
|
||||
import Grid from "@mui/material/Grid";
|
||||
import { Typography } from "@mui/material";
|
||||
import { Box } from "@mui/system";
|
||||
import TextField from "@mui/material/TextField";
|
||||
import Button from "@mui/material/Button";
|
||||
import styles from "@/components/Authentication/Authentication.module.css";
|
||||
|
||||
const LockScreenForm = () => {
|
||||
const handleSubmit = (event) => {
|
||||
event.preventDefault();
|
||||
const data = new FormData(event.currentTarget);
|
||||
console.log({
|
||||
email: data.get("email"),
|
||||
password: data.get("password"),
|
||||
});
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<div className="authenticationBox">
|
||||
<Box
|
||||
component="main"
|
||||
sx={{
|
||||
maxWidth: "510px",
|
||||
ml: "auto",
|
||||
mr: "auto",
|
||||
padding: "80px 0 100px",
|
||||
}}
|
||||
>
|
||||
<Grid item xs={12} md={12} lg={12} xl={12}>
|
||||
<Box>
|
||||
<Box component="form" noValidate onSubmit={handleSubmit}>
|
||||
<div className={styles.profileBox}>
|
||||
<div className={styles.header}>
|
||||
<div className={styles.headerContent}>
|
||||
<h1>Welcome to admash Dashboard!</h1>
|
||||
<p>
|
||||
Hello Andrew Burns, enter your password to unlock the
|
||||
screen !
|
||||
</p>
|
||||
</div>
|
||||
<img
|
||||
src="/images/working-on-table.png"
|
||||
alt="Working on table"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<Box
|
||||
sx={{
|
||||
background: "#fff",
|
||||
padding: "30px 20px",
|
||||
mb: "20px",
|
||||
}}
|
||||
className="bg-black"
|
||||
>
|
||||
<div className={styles.profileInfo}>
|
||||
<img src="/images/profile.png" alt="Profile" />
|
||||
<h3>Andrew Burns</h3>
|
||||
</div>
|
||||
|
||||
<Grid container alignItems="center" spacing={2}>
|
||||
<Grid item xs={12}>
|
||||
<Typography
|
||||
component="label"
|
||||
sx={{
|
||||
fontWeight: "500",
|
||||
fontSize: "14px",
|
||||
mb: "10px",
|
||||
display: "block",
|
||||
}}
|
||||
>
|
||||
Password
|
||||
</Typography>
|
||||
|
||||
<TextField
|
||||
required
|
||||
fullWidth
|
||||
name="password"
|
||||
label="Password"
|
||||
type="password"
|
||||
id="password"
|
||||
autoComplete="new-password"
|
||||
InputProps={{
|
||||
style: { borderRadius: 8 },
|
||||
}}
|
||||
/>
|
||||
</Grid>
|
||||
|
||||
<Grid item xs={12}>
|
||||
<Button
|
||||
type="submit"
|
||||
fullWidth
|
||||
variant="contained"
|
||||
sx={{
|
||||
textTransform: "capitalize",
|
||||
borderRadius: "8px",
|
||||
fontWeight: "500",
|
||||
fontSize: "16px",
|
||||
padding: "12px 10px",
|
||||
color: "#fff !important",
|
||||
}}
|
||||
>
|
||||
Unlock
|
||||
</Button>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Box>
|
||||
</Box>
|
||||
</Box>
|
||||
</Grid>
|
||||
</Box>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default LockScreenForm;
|
||||
@@ -1,189 +0,0 @@
|
||||
import React from "react";
|
||||
import Link from "next/link";
|
||||
import Grid from "@mui/material/Grid";
|
||||
import { Typography } from "@mui/material";
|
||||
import { Box } from "@mui/system";
|
||||
import TextField from "@mui/material/TextField";
|
||||
import Button from "@mui/material/Button";
|
||||
import FormControlLabel from "@mui/material/FormControlLabel";
|
||||
import Checkbox from "@mui/material/Checkbox";
|
||||
import styles from "@/components/Authentication/Authentication.module.css";
|
||||
|
||||
const SignInForm = () => {
|
||||
const handleSubmit = (event) => {
|
||||
event.preventDefault();
|
||||
const data = new FormData(event.currentTarget);
|
||||
console.log({
|
||||
email: data.get("email"),
|
||||
password: data.get("password"),
|
||||
});
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<div className="authenticationBox">
|
||||
<Box
|
||||
component="main"
|
||||
sx={{
|
||||
maxWidth: "510px",
|
||||
ml: "auto",
|
||||
mr: "auto",
|
||||
padding: "50px 0 100px",
|
||||
}}
|
||||
>
|
||||
<Grid item xs={12} md={12} lg={12} xl={12}>
|
||||
<Box>
|
||||
<Typography as="h1" fontSize="28px" fontWeight="700" mb="5px">
|
||||
Sign In{" "}
|
||||
<img
|
||||
src="/images/favicon.png"
|
||||
alt="favicon"
|
||||
className={styles.favicon}
|
||||
/>
|
||||
</Typography>
|
||||
|
||||
<Typography fontSize="15px" mb="30px">
|
||||
Already have an account?{" "}
|
||||
<Link
|
||||
href="/authentication/sign-up"
|
||||
className="primaryColor text-decoration-none"
|
||||
>
|
||||
Sign up
|
||||
</Link>
|
||||
</Typography>
|
||||
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
justifyContent: "space-between",
|
||||
alignItems: "center",
|
||||
mb: "30px",
|
||||
}}
|
||||
>
|
||||
<Link href="#" className={styles.googleBtn}>
|
||||
<img src="/images/google-icon.png" />
|
||||
Sign in with Google
|
||||
</Link>
|
||||
|
||||
<Link href="#" className={styles.fbBtn}>
|
||||
<img src="/images/fb-icon.png" />
|
||||
Sign in with Facebook
|
||||
</Link>
|
||||
</Box>
|
||||
|
||||
<div className={styles.or}>
|
||||
<span>or</span>
|
||||
</div>
|
||||
|
||||
<Box component="form" noValidate onSubmit={handleSubmit}>
|
||||
<Box
|
||||
sx={{
|
||||
background: "#fff",
|
||||
padding: "30px 20px",
|
||||
borderRadius: "10px",
|
||||
mb: "20px",
|
||||
}}
|
||||
className="bg-black"
|
||||
>
|
||||
<Grid container alignItems="center" spacing={2}>
|
||||
<Grid item xs={12}>
|
||||
<Typography
|
||||
component="label"
|
||||
sx={{
|
||||
fontWeight: "500",
|
||||
fontSize: "14px",
|
||||
mb: "10px",
|
||||
display: "block",
|
||||
}}
|
||||
>
|
||||
Email
|
||||
</Typography>
|
||||
|
||||
<TextField
|
||||
required
|
||||
fullWidth
|
||||
id="email"
|
||||
label="Email Address"
|
||||
name="email"
|
||||
autoComplete="email"
|
||||
InputProps={{
|
||||
style: { borderRadius: 8 },
|
||||
}}
|
||||
/>
|
||||
</Grid>
|
||||
|
||||
<Grid item xs={12}>
|
||||
<Typography
|
||||
component="label"
|
||||
sx={{
|
||||
fontWeight: "500",
|
||||
fontSize: "14px",
|
||||
mb: "10px",
|
||||
display: "block",
|
||||
}}
|
||||
>
|
||||
Password
|
||||
</Typography>
|
||||
|
||||
<TextField
|
||||
required
|
||||
fullWidth
|
||||
name="password"
|
||||
label="Password"
|
||||
type="password"
|
||||
id="password"
|
||||
autoComplete="new-password"
|
||||
InputProps={{
|
||||
style: { borderRadius: 8 },
|
||||
}}
|
||||
/>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Box>
|
||||
|
||||
<Grid container alignItems="center" spacing={2}>
|
||||
<Grid item xs={6} sm={6}>
|
||||
<FormControlLabel
|
||||
control={
|
||||
<Checkbox value="allowExtraEmails" color="primary" />
|
||||
}
|
||||
label="Remember me."
|
||||
/>
|
||||
</Grid>
|
||||
|
||||
<Grid item xs={6} sm={6} textAlign="end">
|
||||
<Link
|
||||
href="/authentication/forgot-password"
|
||||
className="primaryColor text-decoration-none"
|
||||
>
|
||||
Forgot your password?
|
||||
</Link>
|
||||
</Grid>
|
||||
</Grid>
|
||||
|
||||
<Button
|
||||
type="submit"
|
||||
fullWidth
|
||||
variant="contained"
|
||||
sx={{
|
||||
mt: 2,
|
||||
textTransform: "capitalize",
|
||||
borderRadius: "8px",
|
||||
fontWeight: "500",
|
||||
fontSize: "16px",
|
||||
padding: "12px 10px",
|
||||
color: "#fff !important",
|
||||
}}
|
||||
>
|
||||
Sign In
|
||||
</Button>
|
||||
</Box>
|
||||
</Box>
|
||||
</Grid>
|
||||
</Box>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default SignInForm;
|
||||
@@ -1,240 +0,0 @@
|
||||
import React from "react";
|
||||
import Link from "next/link";
|
||||
import Grid from "@mui/material/Grid";
|
||||
import { Typography } from "@mui/material";
|
||||
import { Box } from "@mui/system";
|
||||
import TextField from "@mui/material/TextField";
|
||||
import Button from "@mui/material/Button";
|
||||
import FormControlLabel from "@mui/material/FormControlLabel";
|
||||
import Checkbox from "@mui/material/Checkbox";
|
||||
import styles from "@/components/Authentication/Authentication.module.css";
|
||||
|
||||
const SignUpForm = () => {
|
||||
const handleSubmit = (event) => {
|
||||
event.preventDefault();
|
||||
const data = new FormData(event.currentTarget);
|
||||
console.log({
|
||||
email: data.get("email"),
|
||||
password: data.get("password"),
|
||||
});
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<div className="authenticationBox">
|
||||
<Box
|
||||
component="main"
|
||||
sx={{
|
||||
maxWidth: "510px",
|
||||
ml: "auto",
|
||||
mr: "auto",
|
||||
padding: "50px 0 100px",
|
||||
}}
|
||||
>
|
||||
<Grid item xs={12} md={12} lg={12} xl={12}>
|
||||
<Box>
|
||||
<Typography as="h1" fontSize="28px" fontWeight="700" mb="5px">
|
||||
Get’s started.{" "}
|
||||
<img
|
||||
src="/images/favicon.png"
|
||||
alt="favicon"
|
||||
className={styles.favicon}
|
||||
/>
|
||||
</Typography>
|
||||
|
||||
<Typography fontSize="15px" mb="30px">
|
||||
Already have an account?{" "}
|
||||
<Link
|
||||
href="/authentication/sign-in/"
|
||||
className="primaryColor text-decoration-none"
|
||||
>
|
||||
Sign in
|
||||
</Link>
|
||||
</Typography>
|
||||
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
justifyContent: "space-between",
|
||||
alignItems: "center",
|
||||
mb: "30px",
|
||||
}}
|
||||
>
|
||||
<Link href="#" className={styles.googleBtn}>
|
||||
<img src="/images/google-icon.png" /> Sign in with Google
|
||||
</Link>
|
||||
|
||||
<Link href="#" className={styles.fbBtn}>
|
||||
<img src="/images/fb-icon.png" /> Sign in with Facebook
|
||||
</Link>
|
||||
</Box>
|
||||
|
||||
<div className={styles.or}>
|
||||
<span>or</span>
|
||||
</div>
|
||||
|
||||
<Box component="form" noValidate onSubmit={handleSubmit}>
|
||||
<Box
|
||||
sx={{
|
||||
background: "#fff",
|
||||
padding: "30px 20px",
|
||||
borderRadius: "10px",
|
||||
mb: "20px",
|
||||
}}
|
||||
className="bg-black"
|
||||
>
|
||||
<Grid container alignItems="center" spacing={2}>
|
||||
<Grid item xs={12}>
|
||||
<Typography
|
||||
component="label"
|
||||
sx={{
|
||||
fontWeight: "500",
|
||||
fontSize: "14px",
|
||||
mb: "10px",
|
||||
display: "block",
|
||||
}}
|
||||
>
|
||||
First Name
|
||||
</Typography>
|
||||
|
||||
<TextField
|
||||
autoComplete="given-name"
|
||||
name="firstName"
|
||||
required
|
||||
fullWidth
|
||||
id="firstName"
|
||||
label="First Name"
|
||||
autoFocus
|
||||
InputProps={{
|
||||
style: { borderRadius: 8 },
|
||||
}}
|
||||
/>
|
||||
</Grid>
|
||||
|
||||
<Grid item xs={12}>
|
||||
<Typography
|
||||
component="label"
|
||||
sx={{
|
||||
fontWeight: "500",
|
||||
fontSize: "14px",
|
||||
mb: "10px",
|
||||
display: "block",
|
||||
}}
|
||||
>
|
||||
Last Name
|
||||
</Typography>
|
||||
|
||||
<TextField
|
||||
required
|
||||
fullWidth
|
||||
id="lastName"
|
||||
label="Last Name"
|
||||
name="lastName"
|
||||
autoComplete="family-name"
|
||||
InputProps={{
|
||||
style: { borderRadius: 8 },
|
||||
}}
|
||||
/>
|
||||
</Grid>
|
||||
|
||||
<Grid item xs={12}>
|
||||
<Typography
|
||||
component="label"
|
||||
sx={{
|
||||
fontWeight: "500",
|
||||
fontSize: "14px",
|
||||
mb: "10px",
|
||||
display: "block",
|
||||
}}
|
||||
>
|
||||
Email
|
||||
</Typography>
|
||||
|
||||
<TextField
|
||||
required
|
||||
fullWidth
|
||||
id="email"
|
||||
label="Email Address"
|
||||
name="email"
|
||||
autoComplete="email"
|
||||
InputProps={{
|
||||
style: { borderRadius: 8 },
|
||||
}}
|
||||
/>
|
||||
</Grid>
|
||||
|
||||
<Grid item xs={12}>
|
||||
<Typography
|
||||
component="label"
|
||||
sx={{
|
||||
fontWeight: "500",
|
||||
fontSize: "14px",
|
||||
mb: "10px",
|
||||
display: "block",
|
||||
}}
|
||||
>
|
||||
Password
|
||||
</Typography>
|
||||
|
||||
<TextField
|
||||
required
|
||||
fullWidth
|
||||
name="password"
|
||||
label="Password"
|
||||
type="password"
|
||||
id="password"
|
||||
autoComplete="new-password"
|
||||
InputProps={{
|
||||
style: { borderRadius: 8 },
|
||||
}}
|
||||
/>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Box>
|
||||
|
||||
<Grid container alignItems="center" spacing={2}>
|
||||
<Grid item xs={6} sm={6}>
|
||||
<FormControlLabel
|
||||
control={
|
||||
<Checkbox value="allowExtraEmails" color="primary" />
|
||||
}
|
||||
label="Remember me."
|
||||
/>
|
||||
</Grid>
|
||||
|
||||
<Grid item xs={6} sm={6} textAlign="end">
|
||||
<Link
|
||||
href="/authentication/forgot-password"
|
||||
className="primaryColor text-decoration-none"
|
||||
>
|
||||
Forgot your password?
|
||||
</Link>
|
||||
</Grid>
|
||||
</Grid>
|
||||
|
||||
<Button
|
||||
type="submit"
|
||||
fullWidth
|
||||
variant="contained"
|
||||
sx={{
|
||||
mt: 2,
|
||||
textTransform: "capitalize",
|
||||
borderRadius: "8px",
|
||||
fontWeight: "500",
|
||||
fontSize: "16px",
|
||||
padding: "12px 10px",
|
||||
color: "#fff !important",
|
||||
}}
|
||||
>
|
||||
Sign Up
|
||||
</Button>
|
||||
</Box>
|
||||
</Box>
|
||||
</Grid>
|
||||
</Box>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default SignUpForm;
|
||||
@@ -1,40 +0,0 @@
|
||||
.timelineList .tList {
|
||||
position: relative;
|
||||
margin-bottom: 15px;
|
||||
padding-bottom: 15px;
|
||||
border-bottom: 1px solid #F7FAFF;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.timelineList .tList:last-child {
|
||||
border: none;
|
||||
padding-bottom: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.timelineList .tList .content {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.timelineList .tList .content img {
|
||||
margin-right: 10px;
|
||||
width: 27px;
|
||||
}
|
||||
.timelineList .tList .content h5 {
|
||||
margin: 0;
|
||||
color: #5B5B98;
|
||||
font-size: 13px;
|
||||
font-weight: 500;
|
||||
}
|
||||
.timelineList .tList .date {
|
||||
color: #A9A9C8;
|
||||
font-size: 12px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 1800px) {
|
||||
.timelineList .tList {
|
||||
margin-bottom: 16.5px;
|
||||
padding-bottom: 16.5px;
|
||||
}
|
||||
}
|
||||
@@ -1,158 +0,0 @@
|
||||
import React from "react";
|
||||
import { Box, Typography } from "@mui/material";
|
||||
import Card from "@mui/material/Card";
|
||||
import Menu from "@mui/material/Menu";
|
||||
import MenuItem from "@mui/material/MenuItem";
|
||||
import IconButton from "@mui/material/IconButton";
|
||||
import MoreHorizIcon from "@mui/icons-material/MoreHoriz";
|
||||
import styles from "@/components/Dashboard/ProjectManagement/ActivityTimeline/ActivityTimeline.module.css";
|
||||
|
||||
const ActivityTimelineData = [
|
||||
{
|
||||
id: "1",
|
||||
image: '/images/pdf-icon.png',
|
||||
title: "Donald updated the status",
|
||||
time: "54 min ago",
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
image: '/images/man.png',
|
||||
title: "Design new UI and check sales",
|
||||
time: "10 hours ago",
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
title: "James Bangs Client Meeting",
|
||||
image: '/images/small-product-img.png',
|
||||
time: "5 min ago",
|
||||
},
|
||||
{
|
||||
id: "4",
|
||||
title: "Joseph Rust opened new showcase",
|
||||
image: '/images/small-product-img2.png',
|
||||
time: "10 min ago",
|
||||
},
|
||||
{
|
||||
id: "5",
|
||||
title: "Brust opened new showcase",
|
||||
image: '/images/small-product-img3.png',
|
||||
time: "15 min ago",
|
||||
},
|
||||
{
|
||||
id: "6",
|
||||
title: "Create a new project for client",
|
||||
image: '/images/man.png',
|
||||
time: "20 min ago",
|
||||
},
|
||||
];
|
||||
|
||||
const ActivityTimeline = () => {
|
||||
const [anchorEl, setAnchorEl] = React.useState(null);
|
||||
const open = Boolean(anchorEl);
|
||||
const handleClick = (event) => {
|
||||
setAnchorEl(event.currentTarget);
|
||||
};
|
||||
const handleClose = () => {
|
||||
setAnchorEl(null);
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "25px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
justifyContent: "space-between",
|
||||
alignItems: "center",
|
||||
borderBottom: "1px solid #EEF0F7",
|
||||
paddingBottom: "10px",
|
||||
mb: "20px",
|
||||
}}
|
||||
className="for-dark-bottom-border"
|
||||
>
|
||||
<Typography
|
||||
as="h3"
|
||||
sx={{
|
||||
fontSize: 18,
|
||||
fontWeight: 500,
|
||||
}}
|
||||
>
|
||||
Activity Timeline
|
||||
</Typography>
|
||||
|
||||
<Box>
|
||||
<IconButton
|
||||
onClick={handleClick}
|
||||
size="small"
|
||||
aria-controls={open ? "account-menu" : undefined}
|
||||
aria-haspopup="true"
|
||||
aria-expanded={open ? "true" : undefined}
|
||||
>
|
||||
<MoreHorizIcon />
|
||||
</IconButton>
|
||||
</Box>
|
||||
<Menu
|
||||
anchorEl={anchorEl}
|
||||
id="account-menu"
|
||||
open={open}
|
||||
onClose={handleClose}
|
||||
onClick={handleClose}
|
||||
PaperProps={{
|
||||
elevation: 0,
|
||||
sx: {
|
||||
overflow: "visible",
|
||||
filter: "drop-shadow(0px 2px 8px rgba(0,0,0,0.32))",
|
||||
mt: 1.5,
|
||||
"& .MuiAvatar-root": {
|
||||
width: 32,
|
||||
height: 32,
|
||||
ml: -0.5,
|
||||
mr: 1,
|
||||
},
|
||||
"&:before": {
|
||||
content: '""',
|
||||
display: "block",
|
||||
position: "absolute",
|
||||
top: 0,
|
||||
right: 14,
|
||||
width: 10,
|
||||
height: 10,
|
||||
bgcolor: "background.paper",
|
||||
transform: "translateY(-50%) rotate(45deg)",
|
||||
zIndex: 0,
|
||||
},
|
||||
},
|
||||
}}
|
||||
transformOrigin={{ horizontal: "right", vertical: "top" }}
|
||||
anchorOrigin={{ horizontal: "right", vertical: "bottom" }}
|
||||
>
|
||||
<MenuItem>Last 15 Days</MenuItem>
|
||||
<MenuItem>Last Month</MenuItem>
|
||||
<MenuItem>Last Year</MenuItem>
|
||||
</Menu>
|
||||
</Box>
|
||||
|
||||
<div className={styles.timelineList}>
|
||||
{ActivityTimelineData.slice(0, 6).map((timeline) => (
|
||||
<div className={styles.tList} key={timeline.id}>
|
||||
<div className={styles.content}>
|
||||
<img src={timeline.image} alt="Icon" />
|
||||
<h5>{timeline.title}</h5>
|
||||
</div>
|
||||
<p className={styles.date}>{timeline.time}</p>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</Card>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default ActivityTimeline;
|
||||
@@ -1,87 +0,0 @@
|
||||
import React from "react";
|
||||
import Grid from "@mui/material/Grid";
|
||||
import Box from "@mui/material/Box";
|
||||
import Card from "@mui/material/Card";
|
||||
import Typography from "@mui/material/Typography";
|
||||
|
||||
const FeaturesData = [
|
||||
{
|
||||
id: "1",
|
||||
subTitle: "Completed Projects",
|
||||
title: "24k",
|
||||
image: "/images/users-icon.png",
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
subTitle: "Pending Projects",
|
||||
title: "17",
|
||||
image: "/images/graph-icon.png",
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
subTitle: "Total Revenue",
|
||||
title: "16.2M",
|
||||
image: "/images/work-icon.png",
|
||||
}
|
||||
];
|
||||
|
||||
const Features = () => {
|
||||
return (
|
||||
<>
|
||||
<Grid
|
||||
container
|
||||
justifyContent="center"
|
||||
rowSpacing={1}
|
||||
columnSpacing={{ xs: 1, sm: 2, md: 2 }}
|
||||
>
|
||||
{FeaturesData.map((feature) => (
|
||||
<Grid item xs={12} sm={6} md={4} lg={4} key={feature.id}>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "30px 20px 20px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
width: "58px",
|
||||
height: "58px",
|
||||
lineHeight: "85px",
|
||||
background: "rgba(85, 112, 241, 0.12)",
|
||||
borderRadius: "8px",
|
||||
textAlign: "center",
|
||||
}}
|
||||
className='mr-15px'
|
||||
>
|
||||
<img src={feature.image} alt="Icon" />
|
||||
</Box>
|
||||
|
||||
<Box>
|
||||
<Typography variant="p" sx={{ fontSize: '13px', mb: "5px" }}>
|
||||
{feature.subTitle}
|
||||
</Typography>
|
||||
<Typography
|
||||
variant="h1"
|
||||
sx={{ fontSize: 28, fontWeight: 700, }}
|
||||
>
|
||||
{feature.title}
|
||||
</Typography>
|
||||
</Box>
|
||||
</Box>
|
||||
</Card>
|
||||
</Grid>
|
||||
))}
|
||||
</Grid>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default Features;
|
||||
@@ -1,414 +0,0 @@
|
||||
import React from "react";
|
||||
import { Box, Typography } from "@mui/material";
|
||||
import Card from "@mui/material/Card";
|
||||
import IconButton from "@mui/material/IconButton";
|
||||
import PropTypes from "prop-types";
|
||||
import { useTheme } from "@mui/material/styles";
|
||||
import Table from "@mui/material/Table";
|
||||
import TableHead from "@mui/material/TableHead";
|
||||
import TableBody from "@mui/material/TableBody";
|
||||
import TableCell from "@mui/material/TableCell";
|
||||
import TableContainer from "@mui/material/TableContainer";
|
||||
import TableFooter from "@mui/material/TableFooter";
|
||||
import TablePagination from "@mui/material/TablePagination";
|
||||
import TableRow from "@mui/material/TableRow";
|
||||
import Paper from "@mui/material/Paper";
|
||||
import FirstPageIcon from "@mui/icons-material/FirstPage";
|
||||
import KeyboardArrowLeft from "@mui/icons-material/KeyboardArrowLeft";
|
||||
import KeyboardArrowRight from "@mui/icons-material/KeyboardArrowRight";
|
||||
import LastPageIcon from "@mui/icons-material/LastPage";
|
||||
|
||||
function MyTask(props) {
|
||||
const theme = useTheme();
|
||||
const { count, page, rowsPerPage, onPageChange } = props;
|
||||
|
||||
const handleFirstPageButtonClick = (event) => {
|
||||
onPageChange(event, 0);
|
||||
};
|
||||
|
||||
const handleBackButtonClick = (event) => {
|
||||
onPageChange(event, page - 1);
|
||||
};
|
||||
|
||||
const handleNextButtonClick = (event) => {
|
||||
onPageChange(event, page + 1);
|
||||
};
|
||||
|
||||
const handleLastPageButtonClick = (event) => {
|
||||
onPageChange(event, Math.max(0, Math.ceil(count / rowsPerPage) - 1));
|
||||
};
|
||||
|
||||
return (
|
||||
<Box sx={{ flexShrink: 0, ml: 2.5 }}>
|
||||
<IconButton
|
||||
onClick={handleFirstPageButtonClick}
|
||||
disabled={page === 0}
|
||||
aria-label="first page"
|
||||
>
|
||||
{theme.direction === "rtl" ? <LastPageIcon /> : <FirstPageIcon />}
|
||||
</IconButton>
|
||||
<IconButton
|
||||
onClick={handleBackButtonClick}
|
||||
disabled={page === 0}
|
||||
aria-label="previous page"
|
||||
>
|
||||
{theme.direction === "rtl" ? (
|
||||
<KeyboardArrowRight />
|
||||
) : (
|
||||
<KeyboardArrowLeft />
|
||||
)}
|
||||
</IconButton>
|
||||
<IconButton
|
||||
onClick={handleNextButtonClick}
|
||||
disabled={page >= Math.ceil(count / rowsPerPage) - 1}
|
||||
aria-label="next page"
|
||||
>
|
||||
{theme.direction === "rtl" ? (
|
||||
<KeyboardArrowLeft />
|
||||
) : (
|
||||
<KeyboardArrowRight />
|
||||
)}
|
||||
</IconButton>
|
||||
<IconButton
|
||||
onClick={handleLastPageButtonClick}
|
||||
disabled={page >= Math.ceil(count / rowsPerPage) - 1}
|
||||
aria-label="last page"
|
||||
>
|
||||
{theme.direction === "rtl" ? <FirstPageIcon /> : <LastPageIcon />}
|
||||
</IconButton>
|
||||
</Box>
|
||||
);
|
||||
}
|
||||
|
||||
MyTask.propTypes = {
|
||||
count: PropTypes.number.isRequired,
|
||||
onPageChange: PropTypes.func.isRequired,
|
||||
page: PropTypes.number.isRequired,
|
||||
rowsPerPage: PropTypes.number.isRequired,
|
||||
};
|
||||
|
||||
function createData(name, startDate, endDate, status, badgeClass, budget) {
|
||||
return {
|
||||
name,
|
||||
startDate,
|
||||
endDate,
|
||||
status,
|
||||
badgeClass,
|
||||
budget
|
||||
};
|
||||
}
|
||||
|
||||
const rows = [
|
||||
createData(
|
||||
"Public Beta Release",
|
||||
"1 Jan 2022",
|
||||
"1 Apr 2022",
|
||||
"Completed",
|
||||
"successBadge",
|
||||
"$1250"
|
||||
),
|
||||
createData(
|
||||
"Fix Platform Errors",
|
||||
"1 Mar 2022",
|
||||
"1 May 2022",
|
||||
"Completed",
|
||||
"successBadge",
|
||||
"$1550"
|
||||
),
|
||||
createData(
|
||||
"Launch our Mobile App",
|
||||
"15 Apr 2022",
|
||||
"15 Jun 2022",
|
||||
"On Going",
|
||||
"primaryBadge",
|
||||
"$2500"
|
||||
),
|
||||
createData(
|
||||
"Add the New Pricing Page",
|
||||
"15 May 2022",
|
||||
"15 Jun 2022",
|
||||
"Pending",
|
||||
"dangerBadge",
|
||||
"$100"
|
||||
),
|
||||
createData(
|
||||
"Redesign New Online Shop",
|
||||
"15 Jun 2022",
|
||||
"15 Aug 2022",
|
||||
"On Going",
|
||||
"primaryBadge",
|
||||
"$1000"
|
||||
),
|
||||
createData(
|
||||
"Material Ui Design",
|
||||
"15 Jul 2022",
|
||||
"15 Sep 2022",
|
||||
"On Going",
|
||||
"primaryBadge",
|
||||
"$2200"
|
||||
),
|
||||
createData(
|
||||
"Add Progress Track",
|
||||
"15 Mar 2022",
|
||||
"15 May 2022",
|
||||
"Completed",
|
||||
"successBadge",
|
||||
"$1400"
|
||||
),
|
||||
createData(
|
||||
"Web Design",
|
||||
"15 Aug 2022",
|
||||
"15 Dec 2022",
|
||||
"On Going",
|
||||
"primaryBadge",
|
||||
"$4000"
|
||||
),
|
||||
createData(
|
||||
"Web Development",
|
||||
"15 Nov 2022",
|
||||
"15 Jan 2023",
|
||||
"On Going",
|
||||
"primaryBadge",
|
||||
"$400"
|
||||
),
|
||||
createData(
|
||||
"React App Development",
|
||||
"15 Jan 2022",
|
||||
"15 Mar 2022",
|
||||
"Completed",
|
||||
"successBadge",
|
||||
"$1200"
|
||||
),
|
||||
createData(
|
||||
"eCommerce Development",
|
||||
"15 Mar 2022",
|
||||
"15 May 2022",
|
||||
"On Going",
|
||||
"primaryBadge",
|
||||
"$250"
|
||||
),
|
||||
createData(
|
||||
"App Development",
|
||||
"15 May 2022",
|
||||
"15 Jul 2022",
|
||||
"On Going",
|
||||
"primaryBadge",
|
||||
"$3400"
|
||||
),
|
||||
].sort((a, b) => (a.name < b.name ? -1 : 1));
|
||||
|
||||
const MyTasks = () => {
|
||||
const [page, setPage] = React.useState(0);
|
||||
const [rowsPerPage, setRowsPerPage] = React.useState(8);
|
||||
|
||||
// Avoid a layout jump when reaching the last page with empty rows.
|
||||
const emptyRows =
|
||||
page > 0 ? Math.max(0, (1 + page) * rowsPerPage - rows.length) : 0;
|
||||
|
||||
const handleChangePage = (event, newPage) => {
|
||||
setPage(newPage);
|
||||
};
|
||||
|
||||
const handleChangeRowsPerPage = (event) => {
|
||||
setRowsPerPage(parseInt(event.target.value, 10));
|
||||
setPage(0);
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "25px 20px 15px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
paddingBottom: "10px",
|
||||
}}
|
||||
>
|
||||
<Typography
|
||||
as="h3"
|
||||
sx={{
|
||||
fontSize: 18,
|
||||
fontWeight: 500,
|
||||
}}
|
||||
>
|
||||
My Tasks
|
||||
</Typography>
|
||||
</Box>
|
||||
|
||||
<TableContainer
|
||||
component={Paper}
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
}}
|
||||
>
|
||||
<Table
|
||||
sx={{ minWidth: 700 }}
|
||||
aria-label="custom pagination table"
|
||||
className="dark-table"
|
||||
>
|
||||
<TableHead sx={{ background: "#F7FAFF" }}>
|
||||
<TableRow>
|
||||
<TableCell
|
||||
sx={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13.5px",
|
||||
}}
|
||||
>
|
||||
Name
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
sx={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13.5px",
|
||||
}}
|
||||
>
|
||||
Start Date
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
sx={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13.5px",
|
||||
}}
|
||||
>
|
||||
End Date
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13.5px",
|
||||
}}
|
||||
>
|
||||
Status
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13.5px",
|
||||
}}
|
||||
>
|
||||
Budget
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
</TableHead>
|
||||
|
||||
<TableBody>
|
||||
{(rowsPerPage > 0
|
||||
? rows.slice(
|
||||
page * rowsPerPage,
|
||||
page * rowsPerPage + rowsPerPage
|
||||
)
|
||||
: rows
|
||||
).map((row) => (
|
||||
<TableRow key={row.name}>
|
||||
<TableCell
|
||||
sx={{
|
||||
fontWeight: "500",
|
||||
fontSize: "13px",
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
color: "#260944",
|
||||
pt: '16px',
|
||||
pb: '16px',
|
||||
}}
|
||||
>
|
||||
{row.name}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
sx={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13px",
|
||||
pt: '16px',
|
||||
pb: '16px',
|
||||
}}
|
||||
>
|
||||
{row.startDate}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
sx={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13px",
|
||||
pt: '16px',
|
||||
pb: '16px',
|
||||
}}
|
||||
>
|
||||
{row.endDate}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{
|
||||
fontWeight: 500,
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "11px",
|
||||
pt: '16px',
|
||||
pb: '16px',
|
||||
}}
|
||||
>
|
||||
<span className={row.badgeClass}>{row.status}</span>
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
sx={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13px",
|
||||
pt: '16px',
|
||||
pb: '16px',
|
||||
}}
|
||||
align="center"
|
||||
>
|
||||
{row.budget}
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
))}
|
||||
|
||||
{emptyRows > 0 && (
|
||||
<TableRow style={{ height: 53 * emptyRows }}>
|
||||
<TableCell
|
||||
colSpan={4}
|
||||
style={{ borderBottom: "1px solid #F7FAFF" }}
|
||||
/>
|
||||
</TableRow>
|
||||
)}
|
||||
</TableBody>
|
||||
|
||||
<TableFooter>
|
||||
<TableRow>
|
||||
<TablePagination
|
||||
rowsPerPageOptions={[5, 10, 25, { label: "All", value: -1 }]}
|
||||
colSpan={8}
|
||||
count={rows.length}
|
||||
rowsPerPage={rowsPerPage}
|
||||
page={page}
|
||||
SelectProps={{
|
||||
inputProps: {
|
||||
"aria-label": "rows per page",
|
||||
},
|
||||
native: true,
|
||||
}}
|
||||
onPageChange={handleChangePage}
|
||||
onRowsPerPageChange={handleChangeRowsPerPage}
|
||||
ActionsComponent={MyTask}
|
||||
style={{ borderBottom: "none" }}
|
||||
/>
|
||||
</TableRow>
|
||||
</TableFooter>
|
||||
</Table>
|
||||
</TableContainer>
|
||||
</Card>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default MyTasks;
|
||||
@@ -1,172 +0,0 @@
|
||||
import React from "react";
|
||||
import { Box } from "@mui/material";
|
||||
import Card from "@mui/material/Card";
|
||||
import { Typography } from "@mui/material";
|
||||
import InputLabel from "@mui/material/InputLabel";
|
||||
import MenuItem from "@mui/material/MenuItem";
|
||||
import FormControl from "@mui/material/FormControl";
|
||||
import Select from "@mui/material/Select";
|
||||
import dynamic from "next/dynamic";
|
||||
const Chart = dynamic(() => import("react-apexcharts"), {
|
||||
ssr: false,
|
||||
});
|
||||
|
||||
const Overview = () => {
|
||||
// Select Form
|
||||
const [select, setSelect] = React.useState("");
|
||||
const handleChange = (event) => {
|
||||
setSelect(event.target.value);
|
||||
};
|
||||
|
||||
// Chart
|
||||
const series = [
|
||||
{
|
||||
name: "Income",
|
||||
data: [20, 35, 20, 40, 40, 50, 25, 25, 35, 30, 25, 40],
|
||||
},
|
||||
];
|
||||
const options = {
|
||||
chart: {
|
||||
toolbar: {
|
||||
show: false,
|
||||
},
|
||||
events: {
|
||||
click: function (chart, w, e) {
|
||||
// console.log(chart, w, e)
|
||||
},
|
||||
},
|
||||
},
|
||||
colors: ["#90C6E0"],
|
||||
plotOptions: {
|
||||
bar: {
|
||||
columnWidth: "30%",
|
||||
distributed: true,
|
||||
},
|
||||
},
|
||||
dataLabels: {
|
||||
enabled: false,
|
||||
},
|
||||
legend: {
|
||||
show: false,
|
||||
},
|
||||
xaxis: {
|
||||
categories: [
|
||||
["Jan"],
|
||||
["Feb"],
|
||||
["Mar"],
|
||||
["Api"],
|
||||
["May"],
|
||||
["Jun"],
|
||||
["Jul"],
|
||||
["Aug"],
|
||||
["Sep"],
|
||||
["Oct"],
|
||||
["Nov"],
|
||||
["Dec"],
|
||||
],
|
||||
labels: {
|
||||
style: {
|
||||
colors: "#A9A9C8",
|
||||
fontSize: "12px",
|
||||
},
|
||||
},
|
||||
},
|
||||
yaxis: {
|
||||
labels: {
|
||||
style: {
|
||||
colors: "#A9A9C8",
|
||||
fontSize: "12px",
|
||||
},
|
||||
},
|
||||
axisBorder: {
|
||||
show: false,
|
||||
colors: "#f6f6f7",
|
||||
},
|
||||
},
|
||||
fill: {
|
||||
opacity: 1,
|
||||
},
|
||||
tooltip: {
|
||||
y: {
|
||||
formatter: function (val) {
|
||||
return "$" + val + "k";
|
||||
},
|
||||
},
|
||||
},
|
||||
grid: {
|
||||
show: true,
|
||||
borderColor: "#EDEFF5",
|
||||
strokeDashArray: 5,
|
||||
},
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "25px 25px 15px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
justifyContent: "space-between",
|
||||
borderBottom: "1px solid #EEF0F7",
|
||||
paddingBottom: "10px",
|
||||
marginBottom: "10px",
|
||||
}}
|
||||
className="for-dark-bottom-border"
|
||||
>
|
||||
<Typography
|
||||
as="h3"
|
||||
sx={{
|
||||
fontSize: 18,
|
||||
fontWeight: 500,
|
||||
}}
|
||||
>
|
||||
Overview
|
||||
</Typography>
|
||||
<Box>
|
||||
<FormControl sx={{ minWidth: 120 }} size="small">
|
||||
<InputLabel id="demo-select-small" sx={{ fontSize: "14px" }}>
|
||||
Select
|
||||
</InputLabel>
|
||||
<Select
|
||||
labelId="demo-select-small"
|
||||
id="demo-select-small"
|
||||
value={select}
|
||||
label="Select"
|
||||
onChange={handleChange}
|
||||
sx={{ fontSize: "14px" }}
|
||||
>
|
||||
<MenuItem value={0} sx={{ fontSize: "14px" }}>
|
||||
Today
|
||||
</MenuItem>
|
||||
<MenuItem value={1} sx={{ fontSize: "14px" }}>
|
||||
This Week
|
||||
</MenuItem>
|
||||
<MenuItem value={2} sx={{ fontSize: "14px" }}>
|
||||
Last Month
|
||||
</MenuItem>
|
||||
<MenuItem value={3} sx={{ fontSize: "14px" }}>
|
||||
Last 12 Months
|
||||
</MenuItem>
|
||||
<MenuItem value={4} sx={{ fontSize: "14px" }}>
|
||||
All Time
|
||||
</MenuItem>
|
||||
</Select>
|
||||
</FormControl>
|
||||
</Box>
|
||||
</Box>
|
||||
|
||||
<Chart options={options} series={series} type="bar" height={250} />
|
||||
</Card>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default Overview;
|
||||
@@ -1,96 +0,0 @@
|
||||
import React from "react";
|
||||
import { Box, Typography } from "@mui/material";
|
||||
import Card from "@mui/material/Card";
|
||||
|
||||
const personalInfo = [
|
||||
{
|
||||
title: "Full Name :",
|
||||
text: "Andrew Burns",
|
||||
},
|
||||
{
|
||||
title: "Mobile :",
|
||||
text: "(123) 123 1234",
|
||||
},
|
||||
{
|
||||
title: "Email :",
|
||||
text: "andrewburns@gmail.com",
|
||||
},
|
||||
{
|
||||
title: "Location : ",
|
||||
text: "USA",
|
||||
},
|
||||
{
|
||||
title: "Experience : ",
|
||||
text: "Back end Developer",
|
||||
},
|
||||
];
|
||||
|
||||
const PersonalInformation = () => {
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "25px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
borderBottom: "1px solid #EEF0F7",
|
||||
paddingBottom: "10px",
|
||||
mb: "20px",
|
||||
}}
|
||||
className="for-dark-bottom-border"
|
||||
>
|
||||
<Typography
|
||||
as="h3"
|
||||
sx={{
|
||||
fontSize: 18,
|
||||
fontWeight: 500,
|
||||
}}
|
||||
>
|
||||
Personal Information
|
||||
</Typography>
|
||||
</Box>
|
||||
|
||||
<Box>
|
||||
<Typography as="h4" fontWeight="500" fontSize="15px" mb={1}>
|
||||
About Me:
|
||||
</Typography>
|
||||
|
||||
<Typography mb={1}>
|
||||
Hi I'm Andrew Burns,has been the industry's standard dummy text ever
|
||||
since the 1500s, when an unknown printer took a galley of type.
|
||||
</Typography>
|
||||
|
||||
{personalInfo.map((info) => (
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
p: "10px 0",
|
||||
}}
|
||||
className="for-dark-bottom-border"
|
||||
key={info.title}
|
||||
>
|
||||
<Typography
|
||||
as="h4"
|
||||
fontWeight="500"
|
||||
fontSize="14px"
|
||||
width="100px"
|
||||
>
|
||||
{info.title}
|
||||
</Typography>
|
||||
|
||||
<Typography>{info.text}</Typography>
|
||||
</Box>
|
||||
))}
|
||||
</Box>
|
||||
</Card>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default PersonalInformation;
|
||||
@@ -1,75 +0,0 @@
|
||||
import React, { Component } from "react";
|
||||
import dynamic from "next/dynamic";
|
||||
const Chart = dynamic(() => import("react-apexcharts"), {
|
||||
ssr: false,
|
||||
});
|
||||
import styles from "@/components/Dashboard/Analytics/Profile/ImpressionShare.module.css"
|
||||
|
||||
class ImpressionShare extends Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
|
||||
this.state = {
|
||||
series: [45],
|
||||
options: {
|
||||
chart: {
|
||||
type: "radialBar",
|
||||
offsetY: -20,
|
||||
sparkline: {
|
||||
enabled: true,
|
||||
},
|
||||
},
|
||||
plotOptions: {
|
||||
radialBar: {
|
||||
startAngle: -110,
|
||||
endAngle: 110,
|
||||
track: {
|
||||
background: "#e7e7e7",
|
||||
strokeWidth: "90%",
|
||||
margin: 5,
|
||||
},
|
||||
dataLabels: {
|
||||
name: {
|
||||
show: false,
|
||||
},
|
||||
value: {
|
||||
offsetY: -2,
|
||||
fontSize: "15px",
|
||||
fontWeight: "500",
|
||||
color: '#5B5B98'
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
grid: {
|
||||
padding: {
|
||||
top: -10,
|
||||
},
|
||||
},
|
||||
fill: {
|
||||
colors: ["#00B69B"],
|
||||
},
|
||||
labels: ["Average Results"],
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<>
|
||||
<div className={styles.chartBox}>
|
||||
<Chart
|
||||
options={this.state.options}
|
||||
series={this.state.series}
|
||||
type="radialBar"
|
||||
height={100}
|
||||
/>
|
||||
<h4>Excellent</h4>
|
||||
<h3>Impression Share</h3>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default ImpressionShare;
|
||||
@@ -1,24 +0,0 @@
|
||||
.chartBox {
|
||||
text-align: center;
|
||||
top: 12px;
|
||||
position: relative;
|
||||
}
|
||||
.chartBox h4 {
|
||||
margin: 0;
|
||||
color: #00B69B;
|
||||
font-weight: 500;
|
||||
font-size: 11px;
|
||||
line-height: 14px;
|
||||
position: absolute;
|
||||
bottom: 30px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
}
|
||||
.chartBox h3 {
|
||||
margin: 0;
|
||||
color: #5B5B98;
|
||||
font-weight: 500;
|
||||
font-size: 12px;
|
||||
position: relative;
|
||||
bottom: 7px;
|
||||
}
|
||||
@@ -1,57 +0,0 @@
|
||||
.profileBox {
|
||||
background-color: #fff;
|
||||
border-radius: 10px;
|
||||
position: relative;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
.header {
|
||||
background: #EAEDFB;
|
||||
border-radius: 10px 10px 0px 0px;
|
||||
padding: 30px 15px 50px;
|
||||
position: relative;
|
||||
}
|
||||
.headerContent {
|
||||
max-width: 300px;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
.header h1 {
|
||||
margin: 0 0 10px;
|
||||
font-size: 18px;
|
||||
color: #757FEF;
|
||||
font-weight: 500;
|
||||
}
|
||||
.header p {
|
||||
margin: 0;
|
||||
font-size: 14px;
|
||||
color: #757FEF;
|
||||
}
|
||||
.header img {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
}
|
||||
.profileInfoContent {
|
||||
padding: 0 15px 30px;
|
||||
}
|
||||
.profileInfo {
|
||||
position: relative;
|
||||
}
|
||||
.profileInfo img {
|
||||
position: absolute;
|
||||
top: -30px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
border: 5px solid #fff;
|
||||
border-radius: 100%;
|
||||
box-shadow: rgba(0, 0, 0, 0.16) 0px 1px 4px;
|
||||
}
|
||||
.profileInfo h3 {
|
||||
margin: 0 0 5px;
|
||||
font-size: 14px;
|
||||
padding-top: 45px;
|
||||
}
|
||||
.profileInfo p {
|
||||
margin: 0;
|
||||
font-size: 13px;
|
||||
}
|
||||
@@ -1,47 +0,0 @@
|
||||
import React from "react";
|
||||
import Grid from "@mui/material/Grid";
|
||||
import Link from "@mui/material/Link";
|
||||
import styles from "@/components/Dashboard/Analytics/Profile/Profile.module.css";
|
||||
import ImpressionShare from "./ImpressionShare";
|
||||
|
||||
const ProfileInfo = () => {
|
||||
return (
|
||||
<>
|
||||
<div className={styles.profileBox}>
|
||||
<div className={styles.header}>
|
||||
<div className={styles.headerContent}>
|
||||
<h1>Welcome to admash Dashboard!</h1>
|
||||
<p>
|
||||
You have done 68% 😎 more sales today. Check your new badge in
|
||||
your profile.
|
||||
</p>
|
||||
</div>
|
||||
<img src="/images/working-on-table.png" alt="Working on table" />
|
||||
</div>
|
||||
|
||||
<div className={styles.profileInfoContent}>
|
||||
<Grid
|
||||
container
|
||||
alignItems="flex-end"
|
||||
rowSpacing={1}
|
||||
columnSpacing={{ xs: 1, sm: 2, md: 2 }}
|
||||
>
|
||||
<Grid item xs={6} md={6} lg={8}>
|
||||
<div className={styles.profileInfo}>
|
||||
<img src="/images/profile.png" alt="Profile" />
|
||||
<h3>Andrew Burns</h3>
|
||||
<p>Programmer</p>
|
||||
</div>
|
||||
</Grid>
|
||||
|
||||
<Grid item xs={6} md={6} lg={4}>
|
||||
<ImpressionShare />
|
||||
</Grid>
|
||||
</Grid>
|
||||
</div>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default ProfileInfo;
|
||||
@@ -1,90 +0,0 @@
|
||||
.timelineList .tList {
|
||||
position: relative;
|
||||
padding-left: 20px;
|
||||
margin-bottom: 9px;
|
||||
padding-bottom: 9px;
|
||||
border-bottom: 1px solid #F7FAFF;
|
||||
}
|
||||
.timelineList .tList:last-child {
|
||||
border: none;
|
||||
padding-bottom: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.timelineList .tList::before {
|
||||
content: '';
|
||||
background: linear-gradient(149.1deg, #99B8F3 14.61%, #177FCB 130.18%);
|
||||
box-shadow: 0px 2.98686px 13.4409px rgba(126, 172, 235, 0.25);
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
border-radius: 100%;
|
||||
position: absolute;
|
||||
top: 4px;
|
||||
left: 0;
|
||||
}
|
||||
.timelineList .tList::after {
|
||||
content: '';
|
||||
background: #F7FAFF;
|
||||
width: 3px;
|
||||
height: 75px;
|
||||
border-radius: 5px;
|
||||
position: absolute;
|
||||
top: 18px;
|
||||
left: 3px;
|
||||
}
|
||||
.timelineList .tList h4 {
|
||||
font-weight: 500;
|
||||
font-size: 14px;
|
||||
margin: 0 0 8px;
|
||||
}
|
||||
.timelineList .tList .content {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.timelineList .tList .content img {
|
||||
margin-right: 10px;
|
||||
width: 27px;
|
||||
}
|
||||
.timelineList .tList .content h5 {
|
||||
margin: 0;
|
||||
color: #5B5B98;
|
||||
font-size: 13px;
|
||||
font-weight: 500;
|
||||
}
|
||||
.timelineList .tList .date {
|
||||
color: #A9A9C8;
|
||||
font-size: 12px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* For RTL Style */
|
||||
[dir="rtl"] .timelineList .tList {
|
||||
padding-left: 0;
|
||||
padding-right: 20px;
|
||||
}
|
||||
[dir="rtl"] .timelineList .tList::before {
|
||||
left: auto;
|
||||
right: 0;
|
||||
}
|
||||
[dir="rtl"] .timelineList .tList::after {
|
||||
left: auto;
|
||||
right: 3px;
|
||||
}
|
||||
[dir="rtl"] .timelineList .tList .content img {
|
||||
margin-right: 0;
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
/* For dark mode */
|
||||
[class="dark"] .timelineList .tList {
|
||||
border-bottom: 1px solid var(--borderColor);
|
||||
}
|
||||
[class="dark"] .timelineList .tList:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
[class="dark"] .timelineList .tList .content h5 {
|
||||
color: var(--darkBodyTextColor);
|
||||
}
|
||||
[class="dark"] .timelineList .tList::after {
|
||||
background: var(--borderColor);
|
||||
}
|
||||
@@ -1,151 +0,0 @@
|
||||
import React from "react";
|
||||
import { Box, Typography } from "@mui/material";
|
||||
import Card from "@mui/material/Card";
|
||||
import Menu from "@mui/material/Menu";
|
||||
import MenuItem from "@mui/material/MenuItem";
|
||||
import IconButton from "@mui/material/IconButton";
|
||||
import MoreHorizIcon from "@mui/icons-material/MoreHoriz";
|
||||
import styles from "@/components/Dashboard/Analytics/ActivityTimeline/ActivityTimeline.module.css";
|
||||
|
||||
const ActivityTimelineData = [
|
||||
{
|
||||
id: "1",
|
||||
title: "8 Invoices have been paid",
|
||||
subTitle: "Invoices have been paid to the company.",
|
||||
icon: "/images/pdf-icon.png",
|
||||
date: "11:47 PM Wednesday",
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
title: "8 Invoices have been paid",
|
||||
subTitle: "Create a new project for client Johnson John",
|
||||
icon: "/images/man.png",
|
||||
date: "April, 18",
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
title: "Added new style collection",
|
||||
subTitle: "Product uploaded By Nesta Technologies",
|
||||
icon: "/images/small-product-img.png",
|
||||
date: "02:14 PM Today",
|
||||
},
|
||||
{
|
||||
id: "4",
|
||||
title: "Brust opened new showcase",
|
||||
subTitle: "Product uploaded By Nesta Technologies",
|
||||
icon: "/images/small-product-img2.png",
|
||||
date: "5 Min Ago",
|
||||
},
|
||||
];
|
||||
|
||||
const ActivityTimeline = () => {
|
||||
const [anchorEl, setAnchorEl] = React.useState(null);
|
||||
const open = Boolean(anchorEl);
|
||||
const handleClick = (event) => {
|
||||
setAnchorEl(event.currentTarget);
|
||||
};
|
||||
const handleClose = () => {
|
||||
setAnchorEl(null);
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "25px 20px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
justifyContent: "space-between",
|
||||
alignItems: "center",
|
||||
borderBottom: "1px solid #EEF0F7",
|
||||
paddingBottom: "10px",
|
||||
mb: "15px",
|
||||
}}
|
||||
className="for-dark-bottom-border"
|
||||
>
|
||||
<Typography
|
||||
as="h3"
|
||||
sx={{
|
||||
fontSize: 18,
|
||||
fontWeight: 500,
|
||||
}}
|
||||
>
|
||||
Activity Timeline
|
||||
</Typography>
|
||||
|
||||
<Box>
|
||||
<IconButton
|
||||
onClick={handleClick}
|
||||
size="small"
|
||||
aria-controls={open ? "account-menu" : undefined}
|
||||
aria-haspopup="true"
|
||||
aria-expanded={open ? "true" : undefined}
|
||||
>
|
||||
<MoreHorizIcon />
|
||||
</IconButton>
|
||||
</Box>
|
||||
<Menu
|
||||
anchorEl={anchorEl}
|
||||
id="account-menu"
|
||||
open={open}
|
||||
onClose={handleClose}
|
||||
onClick={handleClose}
|
||||
PaperProps={{
|
||||
elevation: 0,
|
||||
sx: {
|
||||
overflow: "visible",
|
||||
filter: "drop-shadow(0px 2px 8px rgba(0,0,0,0.32))",
|
||||
mt: 1.5,
|
||||
"& .MuiAvatar-root": {
|
||||
width: 32,
|
||||
height: 32,
|
||||
ml: -0.5,
|
||||
mr: 1,
|
||||
},
|
||||
"&:before": {
|
||||
content: '""',
|
||||
display: "block",
|
||||
position: "absolute",
|
||||
top: 0,
|
||||
right: 14,
|
||||
width: 10,
|
||||
height: 10,
|
||||
bgcolor: "background.paper",
|
||||
transform: "translateY(-50%) rotate(45deg)",
|
||||
zIndex: 0,
|
||||
},
|
||||
},
|
||||
}}
|
||||
transformOrigin={{ horizontal: "right", vertical: "top" }}
|
||||
anchorOrigin={{ horizontal: "right", vertical: "bottom" }}
|
||||
>
|
||||
<MenuItem>Last 15 Days</MenuItem>
|
||||
<MenuItem>Last Month</MenuItem>
|
||||
<MenuItem>Last Year</MenuItem>
|
||||
</Menu>
|
||||
</Box>
|
||||
|
||||
<div className={styles.timelineList}>
|
||||
{ActivityTimelineData.slice(0, 4).map((timeline) => (
|
||||
<div className={styles.tList} key={timeline.id}>
|
||||
<h4>{timeline.title}</h4>
|
||||
<div className={styles.content}>
|
||||
<img src={timeline.icon} alt="Icon" />
|
||||
<h5>{timeline.subTitle}</h5>
|
||||
</div>
|
||||
<p className={styles.date}>{timeline.date}</p>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</Card>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default ActivityTimeline;
|
||||
@@ -1,112 +0,0 @@
|
||||
import React from "react";
|
||||
import { Box } from "@mui/material";
|
||||
import Card from "@mui/material/Card";
|
||||
import { Typography } from "@mui/material";
|
||||
import InputLabel from "@mui/material/InputLabel";
|
||||
import MenuItem from "@mui/material/MenuItem";
|
||||
import FormControl from "@mui/material/FormControl";
|
||||
import Select from "@mui/material/Select";
|
||||
import Chart from "chart.js/auto";
|
||||
import { Line } from "react-chartjs-2";
|
||||
|
||||
const labels = ["Sat", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri"];
|
||||
|
||||
const data = {
|
||||
labels: labels,
|
||||
datasets: [
|
||||
{
|
||||
label: "New Visitors",
|
||||
backgroundColor: "#6F52ED",
|
||||
borderColor: "#6F52ED",
|
||||
data: [30, 40, 30, 80, 65, 70, 30],
|
||||
},
|
||||
{
|
||||
label: "Unique Visitors",
|
||||
backgroundColor: "#2DB6F5",
|
||||
borderColor: "#2DB6F5",
|
||||
data: [55, 60, 55, 45, 35, 55, 60],
|
||||
},
|
||||
{
|
||||
label: "Previous Visitors",
|
||||
backgroundColor: "#F765A3",
|
||||
borderColor: "#F765A3",
|
||||
data: [45, 30, 40, 30, 20, 30, 40],
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
const options = {
|
||||
plugins: {
|
||||
legend: {
|
||||
labels: {
|
||||
color: '#5B5B98'
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
const AudienceOverview = () => {
|
||||
// Select Form
|
||||
const [select, setSelect] = React.useState("");
|
||||
const handleChange = (event) => {
|
||||
setSelect(event.target.value);
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "25px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
justifyContent: "space-between",
|
||||
borderBottom: "1px solid #EEF0F7",
|
||||
paddingBottom: "10px",
|
||||
marginBottom: "15px",
|
||||
}}
|
||||
className="for-dark-bottom-border"
|
||||
>
|
||||
<Typography
|
||||
as="h3"
|
||||
sx={{
|
||||
fontSize: 18,
|
||||
fontWeight: 500,
|
||||
}}
|
||||
>
|
||||
Audience Overview
|
||||
</Typography>
|
||||
<Box>
|
||||
<FormControl sx={{ minWidth: 120 }} size="small">
|
||||
<InputLabel id="demo-select-small" sx={{ fontSize: '14px' }}>Select</InputLabel>
|
||||
<Select
|
||||
labelId="demo-select-small"
|
||||
id="demo-select-small"
|
||||
value={select}
|
||||
label="Select"
|
||||
onChange={handleChange}
|
||||
sx={{ fontSize: '14px' }}
|
||||
>
|
||||
<MenuItem value={0} sx={{ fontSize: '14px' }}>Today</MenuItem>
|
||||
<MenuItem value={1} sx={{ fontSize: '14px' }}>Last 7 Days</MenuItem>
|
||||
<MenuItem value={2} sx={{ fontSize: '14px' }}>Last Month</MenuItem>
|
||||
<MenuItem value={3} sx={{ fontSize: '14px' }}>Last 12 Months</MenuItem>
|
||||
<MenuItem value={4} sx={{ fontSize: '14px' }}>All Time</MenuItem>
|
||||
</Select>
|
||||
</FormControl>
|
||||
</Box>
|
||||
</Box>
|
||||
|
||||
<Line data={data} options={options} height={100}/>
|
||||
</Card>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default AudienceOverview;
|
||||
@@ -1,548 +0,0 @@
|
||||
import React from "react";
|
||||
import { Box, Typography } from "@mui/material";
|
||||
import Card from "@mui/material/Card";
|
||||
import Menu from "@mui/material/Menu";
|
||||
import MenuItem from "@mui/material/MenuItem";
|
||||
import IconButton from "@mui/material/IconButton";
|
||||
import MoreHorizIcon from "@mui/icons-material/MoreHoriz";
|
||||
import PropTypes from "prop-types";
|
||||
import { useTheme } from "@mui/material/styles";
|
||||
import Table from "@mui/material/Table";
|
||||
import TableHead from "@mui/material/TableHead";
|
||||
import TableBody from "@mui/material/TableBody";
|
||||
import TableCell from "@mui/material/TableCell";
|
||||
import TableContainer from "@mui/material/TableContainer";
|
||||
import TableFooter from "@mui/material/TableFooter";
|
||||
import TablePagination from "@mui/material/TablePagination";
|
||||
import TableRow from "@mui/material/TableRow";
|
||||
import Paper from "@mui/material/Paper";
|
||||
import FirstPageIcon from "@mui/icons-material/FirstPage";
|
||||
import KeyboardArrowLeft from "@mui/icons-material/KeyboardArrowLeft";
|
||||
import KeyboardArrowRight from "@mui/icons-material/KeyboardArrowRight";
|
||||
import LastPageIcon from "@mui/icons-material/LastPage";
|
||||
|
||||
function BrowserUsedAndTrafficReport(props) {
|
||||
const theme = useTheme();
|
||||
const { count, page, rowsPerPage, onPageChange } = props;
|
||||
|
||||
const handleFirstPageButtonClick = (event) => {
|
||||
onPageChange(event, 0);
|
||||
};
|
||||
|
||||
const handleBackButtonClick = (event) => {
|
||||
onPageChange(event, page - 1);
|
||||
};
|
||||
|
||||
const handleNextButtonClick = (event) => {
|
||||
onPageChange(event, page + 1);
|
||||
};
|
||||
|
||||
const handleLastPageButtonClick = (event) => {
|
||||
onPageChange(event, Math.max(0, Math.ceil(count / rowsPerPage) - 1));
|
||||
};
|
||||
|
||||
return (
|
||||
<Box sx={{ flexShrink: 0, ml: 2.5 }}>
|
||||
<IconButton
|
||||
onClick={handleFirstPageButtonClick}
|
||||
disabled={page === 0}
|
||||
aria-label="first page"
|
||||
>
|
||||
{theme.direction === "rtl" ? <LastPageIcon /> : <FirstPageIcon />}
|
||||
</IconButton>
|
||||
<IconButton
|
||||
onClick={handleBackButtonClick}
|
||||
disabled={page === 0}
|
||||
aria-label="previous page"
|
||||
>
|
||||
{theme.direction === "rtl" ? (
|
||||
<KeyboardArrowRight />
|
||||
) : (
|
||||
<KeyboardArrowLeft />
|
||||
)}
|
||||
</IconButton>
|
||||
<IconButton
|
||||
onClick={handleNextButtonClick}
|
||||
disabled={page >= Math.ceil(count / rowsPerPage) - 1}
|
||||
aria-label="next page"
|
||||
>
|
||||
{theme.direction === "rtl" ? (
|
||||
<KeyboardArrowLeft />
|
||||
) : (
|
||||
<KeyboardArrowRight />
|
||||
)}
|
||||
</IconButton>
|
||||
<IconButton
|
||||
onClick={handleLastPageButtonClick}
|
||||
disabled={page >= Math.ceil(count / rowsPerPage) - 1}
|
||||
aria-label="last page"
|
||||
>
|
||||
{theme.direction === "rtl" ? <FirstPageIcon /> : <LastPageIcon />}
|
||||
</IconButton>
|
||||
</Box>
|
||||
);
|
||||
}
|
||||
|
||||
BrowserUsedAndTrafficReport.propTypes = {
|
||||
count: PropTypes.number.isRequired,
|
||||
onPageChange: PropTypes.func.isRequired,
|
||||
page: PropTypes.number.isRequired,
|
||||
rowsPerPage: PropTypes.number.isRequired,
|
||||
};
|
||||
|
||||
function createData(
|
||||
channel,
|
||||
sessions,
|
||||
sessionsProgress,
|
||||
prevPeriod,
|
||||
prevPeriodProgress,
|
||||
transactions,
|
||||
transactionsProgress,
|
||||
change,
|
||||
iconName,
|
||||
badgeClass
|
||||
) {
|
||||
return {
|
||||
channel,
|
||||
sessions,
|
||||
sessionsProgress,
|
||||
prevPeriod,
|
||||
prevPeriodProgress,
|
||||
transactions,
|
||||
transactionsProgress,
|
||||
change,
|
||||
iconName,
|
||||
badgeClass,
|
||||
};
|
||||
}
|
||||
|
||||
const rows = [
|
||||
createData(
|
||||
"Organic search",
|
||||
"10853",
|
||||
"(52%)",
|
||||
"566",
|
||||
"(52%)",
|
||||
"566",
|
||||
"(52%)",
|
||||
"52.80%",
|
||||
"ri-arrow-up-s-fill",
|
||||
"successBadge"
|
||||
),
|
||||
createData(
|
||||
"Direct",
|
||||
"10844",
|
||||
"(50%)",
|
||||
"666",
|
||||
"(50%)",
|
||||
"766",
|
||||
"(50%)",
|
||||
"55.99%",
|
||||
"ri-arrow-up-s-fill",
|
||||
"successBadge"
|
||||
),
|
||||
createData(
|
||||
"Referal",
|
||||
"20844",
|
||||
"(60%)",
|
||||
"754",
|
||||
"(60%)",
|
||||
"899",
|
||||
"(60%)",
|
||||
"60.99%",
|
||||
"ri-arrow-down-s-fill",
|
||||
"dangerBadge"
|
||||
),
|
||||
createData(
|
||||
"Email",
|
||||
"15844",
|
||||
"(50%)",
|
||||
"764",
|
||||
"(50%)",
|
||||
"755",
|
||||
"(50%)",
|
||||
"50.99%",
|
||||
"ri-arrow-up-s-fill",
|
||||
"successBadge"
|
||||
),
|
||||
createData(
|
||||
"Social",
|
||||
"12844",
|
||||
"(50%)",
|
||||
"764",
|
||||
"(50%)",
|
||||
"755",
|
||||
"(50%)",
|
||||
"50.99%",
|
||||
"ri-arrow-up-s-fill",
|
||||
"successBadge"
|
||||
),
|
||||
createData(
|
||||
"Chrome",
|
||||
"5853",
|
||||
"(52%)",
|
||||
"466",
|
||||
"(52%)",
|
||||
"566",
|
||||
"(52%)",
|
||||
"52.80%",
|
||||
"ri-arrow-up-s-fill",
|
||||
"successBadge"
|
||||
),
|
||||
createData(
|
||||
"Safari",
|
||||
"2844",
|
||||
"(50%)",
|
||||
"766",
|
||||
"(50%)",
|
||||
"666",
|
||||
"(50%)",
|
||||
"55.00%",
|
||||
"ri-arrow-up-s-fill",
|
||||
"successBadge"
|
||||
),
|
||||
createData(
|
||||
"Edge",
|
||||
"1844",
|
||||
"(60%)",
|
||||
"454",
|
||||
"(60%)",
|
||||
"399",
|
||||
"(60%)",
|
||||
"60.00%",
|
||||
"ri-arrow-down-s-fill",
|
||||
"dangerBadge"
|
||||
),
|
||||
createData(
|
||||
"Firefox",
|
||||
"15844",
|
||||
"(55%)",
|
||||
"564",
|
||||
"(55%)",
|
||||
"455",
|
||||
"(55%)",
|
||||
"55.00%",
|
||||
"ri-arrow-up-s-fill",
|
||||
"successBadge"
|
||||
),
|
||||
createData(
|
||||
"Opera",
|
||||
"11844",
|
||||
"(50%)",
|
||||
"864",
|
||||
"(50%)",
|
||||
"655",
|
||||
"(50%)",
|
||||
"50.00%",
|
||||
"ri-arrow-up-s-fill",
|
||||
"successBadge"
|
||||
),
|
||||
].sort((a, b) => (a.channel < b.channel ? -1 : 1));
|
||||
|
||||
const BrowserUsedAndTrafficReports = () => {
|
||||
const [anchorEl, setAnchorEl] = React.useState(null);
|
||||
const open = Boolean(anchorEl);
|
||||
const handleClick = (event) => {
|
||||
setAnchorEl(event.currentTarget);
|
||||
};
|
||||
const handleClose = () => {
|
||||
setAnchorEl(null);
|
||||
};
|
||||
|
||||
// Table
|
||||
const [page, setPage] = React.useState(0);
|
||||
const [rowsPerPage, setRowsPerPage] = React.useState(4);
|
||||
|
||||
// Avoid a layout jump when reaching the last page with empty rows.
|
||||
const emptyRows =
|
||||
page > 0 ? Math.max(0, (1 + page) * rowsPerPage - rows.length) : 0;
|
||||
|
||||
const handleChangePage = (event, newPage) => {
|
||||
setPage(newPage);
|
||||
};
|
||||
|
||||
const handleChangeRowsPerPage = (event) => {
|
||||
setRowsPerPage(parseInt(event.target.value, 10));
|
||||
setPage(0);
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "25px 20px 15px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
justifyContent: "space-between",
|
||||
alignItems: "center",
|
||||
paddingBottom: "10px",
|
||||
}}
|
||||
>
|
||||
<Typography
|
||||
as="h3"
|
||||
sx={{
|
||||
fontSize: 18,
|
||||
fontWeight: 500,
|
||||
}}
|
||||
>
|
||||
Browser Used & Traffic Reports
|
||||
</Typography>
|
||||
|
||||
<Box>
|
||||
<IconButton
|
||||
onClick={handleClick}
|
||||
size="small"
|
||||
aria-controls={open ? "account-menu" : undefined}
|
||||
aria-haspopup="true"
|
||||
aria-expanded={open ? "true" : undefined}
|
||||
>
|
||||
<MoreHorizIcon />
|
||||
</IconButton>
|
||||
</Box>
|
||||
<Menu
|
||||
anchorEl={anchorEl}
|
||||
id="account-menu"
|
||||
open={open}
|
||||
onClose={handleClose}
|
||||
onClick={handleClose}
|
||||
PaperProps={{
|
||||
elevation: 0,
|
||||
sx: {
|
||||
overflow: "visible",
|
||||
filter: "drop-shadow(0px 2px 8px rgba(0,0,0,0.32))",
|
||||
mt: 1.5,
|
||||
"& .MuiAvatar-root": {
|
||||
width: 32,
|
||||
height: 32,
|
||||
ml: -0.5,
|
||||
mr: 1,
|
||||
},
|
||||
"&:before": {
|
||||
content: '""',
|
||||
display: "block",
|
||||
position: "absolute",
|
||||
top: 0,
|
||||
right: 14,
|
||||
width: 10,
|
||||
height: 10,
|
||||
bgcolor: "background.paper",
|
||||
transform: "translateY(-50%) rotate(45deg)",
|
||||
zIndex: 0,
|
||||
},
|
||||
},
|
||||
}}
|
||||
transformOrigin={{ horizontal: "right", vertical: "top" }}
|
||||
anchorOrigin={{ horizontal: "right", vertical: "bottom" }}
|
||||
>
|
||||
<MenuItem sx={{ fontSize: "14px" }}>Last 15 Days</MenuItem>
|
||||
<MenuItem sx={{ fontSize: "14px" }}>Last Month</MenuItem>
|
||||
<MenuItem sx={{ fontSize: "14px" }}>Last Year</MenuItem>
|
||||
</Menu>
|
||||
</Box>
|
||||
|
||||
<TableContainer
|
||||
component={Paper}
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
}}
|
||||
>
|
||||
<Table
|
||||
sx={{ minWidth: 550 }}
|
||||
aria-label="custom pagination table"
|
||||
className="dark-table"
|
||||
>
|
||||
<TableHead sx={{ background: "#F7FAFF" }}>
|
||||
<TableRow>
|
||||
<TableCell
|
||||
style={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13.5px",
|
||||
}}
|
||||
>
|
||||
Channel
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
style={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13.5px",
|
||||
}}
|
||||
>
|
||||
Sessions
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
style={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13.5px",
|
||||
}}
|
||||
>
|
||||
Prev.Period
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
style={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13.5px",
|
||||
}}
|
||||
>
|
||||
Transactions
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
style={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13.5px",
|
||||
}}
|
||||
>
|
||||
% Change
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
</TableHead>
|
||||
|
||||
<TableBody>
|
||||
{(rowsPerPage > 0
|
||||
? rows.slice(
|
||||
page * rowsPerPage,
|
||||
page * rowsPerPage + rowsPerPage
|
||||
)
|
||||
: rows
|
||||
).map((row) => (
|
||||
<TableRow key={row.channel}>
|
||||
<TableCell
|
||||
style={{
|
||||
fontWeight: "500",
|
||||
fontSize: "13px",
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
color: "#757FEF",
|
||||
}}
|
||||
>
|
||||
{row.channel}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
style={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
color: "#5B5B98",
|
||||
fontWeight: "500",
|
||||
fontSize: "13px",
|
||||
}}
|
||||
>
|
||||
{row.sessions}{" "}
|
||||
<Typography
|
||||
as="span"
|
||||
sx={{ color: "#A9A9C8", fontSize: "13px" }}
|
||||
>
|
||||
{row.sessionsProgress}
|
||||
</Typography>
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
style={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
color: "#5B5B98",
|
||||
fontWeight: "500",
|
||||
fontSize: "13px",
|
||||
}}
|
||||
>
|
||||
{row.prevPeriod}{" "}
|
||||
<Typography
|
||||
as="span"
|
||||
sx={{ color: "#A9A9C8", fontSize: "13px" }}
|
||||
>
|
||||
{row.prevPeriodProgress}
|
||||
</Typography>
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
style={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
color: "#5B5B98",
|
||||
fontWeight: "500",
|
||||
fontSize: "13px",
|
||||
}}
|
||||
>
|
||||
{row.transactions}{" "}
|
||||
<Typography
|
||||
as="span"
|
||||
sx={{ color: "#A9A9C8", fontSize: "13px" }}
|
||||
>
|
||||
{row.transactionsProgress}
|
||||
</Typography>
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
style={{
|
||||
fontWeight: 500,
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "12px",
|
||||
}}
|
||||
>
|
||||
<span className={row.badgeClass}>
|
||||
{row.change}{" "}
|
||||
<i
|
||||
className={row.iconName}
|
||||
style={{
|
||||
fontSize: "15px",
|
||||
position: "relative",
|
||||
top: "4px",
|
||||
lineHeight: "1",
|
||||
fontWight: "bold",
|
||||
}}
|
||||
></i>
|
||||
</span>
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
))}
|
||||
|
||||
{emptyRows > 0 && (
|
||||
<TableRow style={{ height: 53 * emptyRows }}>
|
||||
<TableCell
|
||||
colSpan={5}
|
||||
style={{ borderBottom: "1px solid #F7FAFF" }}
|
||||
/>
|
||||
</TableRow>
|
||||
)}
|
||||
</TableBody>
|
||||
|
||||
<TableFooter>
|
||||
<TableRow>
|
||||
<TablePagination
|
||||
rowsPerPageOptions={[5, 10, 25, { label: "All", value: -1 }]}
|
||||
colSpan={8}
|
||||
count={rows.length}
|
||||
rowsPerPage={rowsPerPage}
|
||||
page={page}
|
||||
SelectProps={{
|
||||
inputProps: {
|
||||
"aria-label": "rows per page",
|
||||
},
|
||||
native: true,
|
||||
}}
|
||||
onPageChange={handleChangePage}
|
||||
onRowsPerPageChange={handleChangeRowsPerPage}
|
||||
ActionsComponent={BrowserUsedAndTrafficReport}
|
||||
style={{ borderBottom: "none" }}
|
||||
/>
|
||||
</TableRow>
|
||||
</TableFooter>
|
||||
</Table>
|
||||
</TableContainer>
|
||||
</Card>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default BrowserUsedAndTrafficReports;
|
||||
@@ -1,114 +0,0 @@
|
||||
import React from "react";
|
||||
import Grid from "@mui/material/Grid";
|
||||
import Box from "@mui/material/Box";
|
||||
import Card from "@mui/material/Card";
|
||||
import Typography from "@mui/material/Typography";
|
||||
import TrendingUpIcon from "@mui/icons-material/TrendingUp";
|
||||
import TrendingDownIcon from "@mui/icons-material/TrendingDown";
|
||||
|
||||
const FeaturesData = [
|
||||
{
|
||||
id: "1",
|
||||
subTitle: "Enrolled Courses",
|
||||
title: "24k",
|
||||
image: "/images/users-icon.png",
|
||||
icon: <TrendingUpIcon />,
|
||||
growthText: "9.5% new session",
|
||||
color: "successColor",
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
subTitle: "Active Courses",
|
||||
title: "17",
|
||||
image: "/images/graph-icon.png",
|
||||
icon: <TrendingDownIcon />,
|
||||
growthText: "7.5% vs. previous month",
|
||||
color: "dangerColor",
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
subTitle: "Completed Courses",
|
||||
title: "64",
|
||||
image: "/images/work-icon.png",
|
||||
icon: <TrendingUpIcon />,
|
||||
growthText: "3.5% bounce rate",
|
||||
color: "successColor",
|
||||
},
|
||||
];
|
||||
|
||||
const Features = () => {
|
||||
return (
|
||||
<>
|
||||
<Grid
|
||||
container
|
||||
justifyContent="center"
|
||||
rowSpacing={1}
|
||||
columnSpacing={{ xs: 1, sm: 2, md: 2 }}
|
||||
>
|
||||
{FeaturesData.map((feature) => (
|
||||
<Grid item xs={12} sm={6} md={4} lg={4} key={feature.id}>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "30px 20px 20px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
width: "58px",
|
||||
height: "58px",
|
||||
lineHeight: "85px",
|
||||
background: "rgba(85, 112, 241, 0.12)",
|
||||
borderRadius: "8px",
|
||||
textAlign: "center",
|
||||
}}
|
||||
className="mr-15px"
|
||||
>
|
||||
<img src={feature.image} alt="Icon" />
|
||||
</Box>
|
||||
|
||||
<Box>
|
||||
<Typography variant="p" sx={{ fontSize: "13px", mb: "5px" }}>
|
||||
{feature.subTitle}
|
||||
</Typography>
|
||||
<Typography
|
||||
variant="h1"
|
||||
sx={{ fontSize: 28, fontWeight: 700 }}
|
||||
>
|
||||
{feature.title}
|
||||
</Typography>
|
||||
</Box>
|
||||
</Box>
|
||||
|
||||
<Box mt={2}>
|
||||
<Typography
|
||||
sx={{
|
||||
fontSize: "13px",
|
||||
fontWeight: "500",
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
}}
|
||||
>
|
||||
<span className={`mr-5px ${feature.color}`}>
|
||||
{feature.icon}
|
||||
</span>
|
||||
{feature.growthText}
|
||||
</Typography>
|
||||
</Box>
|
||||
</Card>
|
||||
</Grid>
|
||||
))}
|
||||
</Grid>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default Features;
|
||||
@@ -1,65 +0,0 @@
|
||||
.infoList {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
border-bottom: 1px solid #F7FAFF;
|
||||
margin-bottom: 13px;
|
||||
padding-bottom: 13px;
|
||||
position: relative;
|
||||
padding-left: 15px;
|
||||
}
|
||||
.infoList::before {
|
||||
content: '';
|
||||
background: #00B69B;
|
||||
box-shadow: 0px 2.98686px 13.4409px rgba(126, 172, 235, 0.25);
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
border-radius: 100%;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 5px;
|
||||
}
|
||||
.infoList:last-child {
|
||||
border-bottom: none;
|
||||
margin-bottom: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
.infoList p {
|
||||
font-size: 13px;
|
||||
margin: 0;
|
||||
}
|
||||
.infoList .rightContent {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.infoList h5 {
|
||||
margin: 0 15px 0 0;
|
||||
font-size: 12px;
|
||||
color: #5B5B98;
|
||||
}
|
||||
.infoList .rightContent i {
|
||||
position: relative;
|
||||
top: 2px;
|
||||
}
|
||||
|
||||
/* For RTL Style */
|
||||
[dir="rtl"] .infoList {
|
||||
padding-left: 0;
|
||||
padding-right: 15px;
|
||||
}
|
||||
[dir="rtl"] .infoList::before {
|
||||
left: auto;
|
||||
right: 0;
|
||||
}
|
||||
[dir="rtl"] .infoList h5 {
|
||||
margin: 0 0 0 15px;
|
||||
}
|
||||
|
||||
/* For dark mode */
|
||||
[class="dark"] .infoList {
|
||||
border-bottom: 1px solid var(--borderColor);
|
||||
}
|
||||
[class="dark"] .infoList:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
@@ -1,105 +0,0 @@
|
||||
import React, { Component } from "react";
|
||||
import { Box, Typography } from "@mui/material";
|
||||
import Card from "@mui/material/Card";
|
||||
import dynamic from "next/dynamic";
|
||||
const Chart = dynamic(() => import("react-apexcharts"), {
|
||||
ssr: false,
|
||||
});
|
||||
import styles from "@/components/Dashboard/Analytics/Gender/Gender.module.css";
|
||||
|
||||
class Gender extends Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {
|
||||
series: [50],
|
||||
options: {
|
||||
plotOptions: {
|
||||
radialBar: {
|
||||
hollow: {
|
||||
size: "50%",
|
||||
},
|
||||
track: {
|
||||
background: "rgba(0, 182, 155, 0.5)",
|
||||
},
|
||||
dataLabels: {
|
||||
name: {
|
||||
show: false,
|
||||
},
|
||||
value: {
|
||||
offsetY: 4,
|
||||
color: "#00B69B",
|
||||
fontSize: "16px",
|
||||
fontWeight: "500",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
fill: {
|
||||
colors: ["#00B69B"],
|
||||
},
|
||||
},
|
||||
};
|
||||
}
|
||||
render() {
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "25px 20px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
borderBottom: "1px solid #EEF0F7",
|
||||
paddingBottom: "10px",
|
||||
}}
|
||||
className="for-dark-bottom-border"
|
||||
>
|
||||
<Typography
|
||||
as="h3"
|
||||
sx={{
|
||||
fontSize: 18,
|
||||
fontWeight: 500,
|
||||
}}
|
||||
>
|
||||
Gender
|
||||
</Typography>
|
||||
</Box>
|
||||
|
||||
<Chart
|
||||
options={this.state.options}
|
||||
series={this.state.series}
|
||||
type="radialBar"
|
||||
/>
|
||||
|
||||
<>
|
||||
<div className={styles.infoList}>
|
||||
<p>Male</p>
|
||||
<h5>45,347</h5>
|
||||
<div className={styles.rightContent}>
|
||||
<p>
|
||||
<i className="ri-bar-chart-fill"></i> 70%
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className={styles.infoList}>
|
||||
<p>Female</p>
|
||||
<h5>20,738</h5>
|
||||
<div className={styles.rightContent}>
|
||||
<p>
|
||||
<i className="ri-bar-chart-fill"></i> 30%
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</>
|
||||
</Card>
|
||||
</>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default Gender;
|
||||
@@ -1,66 +0,0 @@
|
||||
.infoList {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
border-bottom: 1px solid #F7FAFF;
|
||||
margin-bottom: 13px;
|
||||
padding-bottom: 13px;
|
||||
position: relative;
|
||||
padding-left: 15px;
|
||||
}
|
||||
.infoList::before {
|
||||
content: '';
|
||||
background: #757FEF;
|
||||
box-shadow: 0px 2.98686px 13.4409px rgba(126, 172, 235, 0.25);
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
border-radius: 100%;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 5px;
|
||||
}
|
||||
.infoList:last-child {
|
||||
border-bottom: none;
|
||||
margin-bottom: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
.infoList p {
|
||||
font-size: 13px;
|
||||
margin: 0;
|
||||
}
|
||||
.infoList .rightContent {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.infoList h5 {
|
||||
margin: 0 15px 0 0;
|
||||
font-size: 12px;
|
||||
color: #5B5B98;
|
||||
}
|
||||
.infoList .rightContent i {
|
||||
position: relative;
|
||||
top: 2px;
|
||||
}
|
||||
|
||||
|
||||
/* For RTL Style */
|
||||
[dir="rtl"] .infoList {
|
||||
padding-left: 0;
|
||||
padding-right: 15px;
|
||||
}
|
||||
[dir="rtl"] .infoList::before {
|
||||
left: auto;
|
||||
right: 0;
|
||||
}
|
||||
[dir="rtl"] .infoList h5 {
|
||||
margin: 0 0 0 15px;
|
||||
}
|
||||
|
||||
/* For dark mode */
|
||||
[class="dark"] .infoList {
|
||||
border-bottom: 1px solid var(--borderColor);
|
||||
}
|
||||
[class="dark"] .infoList:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
@@ -1,105 +0,0 @@
|
||||
import React, { Component } from "react";
|
||||
import { Box, Typography } from "@mui/material";
|
||||
import Card from "@mui/material/Card";
|
||||
import dynamic from "next/dynamic";
|
||||
const Chart = dynamic(() => import("react-apexcharts"), {
|
||||
ssr: false,
|
||||
});
|
||||
import styles from "@/components/Dashboard/Analytics/NewReturning/NewReturning.module.css";
|
||||
|
||||
class NewReturning extends Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {
|
||||
series: [60],
|
||||
options: {
|
||||
plotOptions: {
|
||||
radialBar: {
|
||||
hollow: {
|
||||
size: "50%",
|
||||
},
|
||||
track: {
|
||||
background: "rgba(117, 127, 239, 0.5)",
|
||||
},
|
||||
dataLabels: {
|
||||
name: {
|
||||
show: false,
|
||||
},
|
||||
value: {
|
||||
offsetY: 4,
|
||||
color: "#757FEF",
|
||||
fontSize: "16px",
|
||||
fontWeight: "500",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
fill: {
|
||||
colors: ["#757FEF"],
|
||||
},
|
||||
},
|
||||
};
|
||||
}
|
||||
render() {
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "25px 20px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
borderBottom: "1px solid #EEF0F7",
|
||||
paddingBottom: "10px",
|
||||
}}
|
||||
className="for-dark-bottom-border"
|
||||
>
|
||||
<Typography
|
||||
as="h3"
|
||||
sx={{
|
||||
fontSize: 18,
|
||||
fontWeight: 500,
|
||||
}}
|
||||
>
|
||||
New vs. Returning
|
||||
</Typography>
|
||||
</Box>
|
||||
|
||||
<Chart
|
||||
options={this.state.options}
|
||||
series={this.state.series}
|
||||
type="radialBar"
|
||||
/>
|
||||
|
||||
<>
|
||||
<div className={styles.infoList}>
|
||||
<p>New</p>
|
||||
<h5>36,868</h5>
|
||||
<div className={styles.rightContent}>
|
||||
<p>
|
||||
<i className="ri-bar-chart-fill"></i> 75%
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className={styles.infoList}>
|
||||
<p>Returning</p>
|
||||
<h5>9,217</h5>
|
||||
<div className={styles.rightContent}>
|
||||
<p>
|
||||
<i className="ri-bar-chart-fill"></i> 25%
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</>
|
||||
</Card>
|
||||
</>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default NewReturning;
|
||||
@@ -1,75 +0,0 @@
|
||||
import React, { Component } from "react";
|
||||
import dynamic from "next/dynamic";
|
||||
const Chart = dynamic(() => import("react-apexcharts"), {
|
||||
ssr: false,
|
||||
});
|
||||
import styles from "@/components/Dashboard/Analytics/Profile/ImpressionShare.module.css"
|
||||
|
||||
class ImpressionShare extends Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
|
||||
this.state = {
|
||||
series: [45],
|
||||
options: {
|
||||
chart: {
|
||||
type: "radialBar",
|
||||
offsetY: -20,
|
||||
sparkline: {
|
||||
enabled: true,
|
||||
},
|
||||
},
|
||||
plotOptions: {
|
||||
radialBar: {
|
||||
startAngle: -110,
|
||||
endAngle: 110,
|
||||
track: {
|
||||
background: "#e7e7e7",
|
||||
strokeWidth: "90%",
|
||||
margin: 5,
|
||||
},
|
||||
dataLabels: {
|
||||
name: {
|
||||
show: false,
|
||||
},
|
||||
value: {
|
||||
offsetY: -2,
|
||||
fontSize: "15px",
|
||||
fontWeight: "500",
|
||||
color: '#5B5B98'
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
grid: {
|
||||
padding: {
|
||||
top: -10,
|
||||
},
|
||||
},
|
||||
fill: {
|
||||
colors: ["#00B69B"],
|
||||
},
|
||||
labels: ["Average Results"],
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<>
|
||||
<div className={styles.chartBox}>
|
||||
<Chart
|
||||
options={this.state.options}
|
||||
series={this.state.series}
|
||||
type="radialBar"
|
||||
height={100}
|
||||
/>
|
||||
<h4>Excellent</h4>
|
||||
<h3>Impression Share</h3>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default ImpressionShare;
|
||||
@@ -1,33 +0,0 @@
|
||||
.chartBox {
|
||||
text-align: center;
|
||||
top: 12px;
|
||||
position: relative;
|
||||
}
|
||||
.chartBox h4 {
|
||||
margin: 0;
|
||||
color: #00B69B;
|
||||
font-weight: 500;
|
||||
font-size: 11px;
|
||||
line-height: 14px;
|
||||
position: absolute;
|
||||
bottom: 30px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
}
|
||||
.chartBox h3 {
|
||||
margin: 0;
|
||||
color: #5B5B98;
|
||||
font-weight: 500;
|
||||
font-size: 12px;
|
||||
position: relative;
|
||||
bottom: 7px;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 767px) {
|
||||
.chartBox h4 {
|
||||
bottom: 24px;
|
||||
}
|
||||
.chartBox h3 {
|
||||
font-size: 10px;
|
||||
}
|
||||
}
|
||||
@@ -1,74 +0,0 @@
|
||||
.profileBox {
|
||||
background-color: #fff;
|
||||
border-radius: 10px;
|
||||
position: relative;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
.header {
|
||||
background: #EAEDFB;
|
||||
border-radius: 10px 10px 0px 0px;
|
||||
padding: 30px 15px 50px;
|
||||
position: relative;
|
||||
}
|
||||
.headerContent {
|
||||
max-width: 300px;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
.header h1 {
|
||||
margin: 0 0 10px;
|
||||
font-size: 18px;
|
||||
color: #757FEF;
|
||||
font-weight: 500;
|
||||
}
|
||||
.header p {
|
||||
margin: 0;
|
||||
font-size: 14px;
|
||||
color: #757FEF;
|
||||
}
|
||||
.header img {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
}
|
||||
.profileInfoContent {
|
||||
padding: 0 15px 30px;
|
||||
}
|
||||
.profileInfo {
|
||||
position: relative;
|
||||
}
|
||||
.profileInfo img {
|
||||
position: absolute;
|
||||
top: -30px;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
border: 5px solid #fff;
|
||||
border-radius: 100%;
|
||||
box-shadow: rgba(0, 0, 0, 0.16) 0px 1px 4px;
|
||||
}
|
||||
.profileInfo h3 {
|
||||
margin: 0 0 5px;
|
||||
font-size: 14px;
|
||||
padding-top: 45px;
|
||||
}
|
||||
.profileInfo p {
|
||||
margin: 0;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 767px) {
|
||||
.profileInfo h3 {
|
||||
font-size: 12px;
|
||||
}
|
||||
.profileInfo p {
|
||||
font-size: 11px;
|
||||
}
|
||||
}
|
||||
|
||||
/* For dark mode */
|
||||
[class="dark"] .profileBox {
|
||||
background-color: var(--cardBg);
|
||||
}
|
||||
[class="dark"] .header {
|
||||
background: #161515;
|
||||
}
|
||||
@@ -1,70 +0,0 @@
|
||||
import React from "react";
|
||||
import Grid from "@mui/material/Grid";
|
||||
import Link from "@mui/material/Link";
|
||||
import styles from "@/components/Dashboard/Analytics/Profile/Profile.module.css";
|
||||
import ImpressionShare from "./ImpressionShare";
|
||||
|
||||
const Profile = () => {
|
||||
return (
|
||||
<>
|
||||
<div className={styles.profileBox}>
|
||||
<div className={styles.header}>
|
||||
<div className={styles.headerContent}>
|
||||
<h1>Welcome to admash Dashboard!</h1>
|
||||
<p>
|
||||
You have done 68% 😎 more sales today. Check your new badge in
|
||||
your profile.
|
||||
</p>
|
||||
</div>
|
||||
<img src="/images/working-on-table.png" alt="Working on table" />
|
||||
</div>
|
||||
|
||||
<div className={styles.profileInfoContent}>
|
||||
<Grid
|
||||
container
|
||||
alignItems="flex-end"
|
||||
rowSpacing={1}
|
||||
columnSpacing={{ xs: 1, sm: 2, md: 2 }}
|
||||
>
|
||||
<Grid item xs={4} md={4} lg={4}>
|
||||
<div className={styles.profileInfo}>
|
||||
<img src="/images/profile.png" alt="Profile" />
|
||||
<h3>Andrew Burns</h3>
|
||||
<p>Programmer</p>
|
||||
</div>
|
||||
</Grid>
|
||||
|
||||
<Grid item xs={4} md={4} lg={4}>
|
||||
<Link
|
||||
href="#"
|
||||
underline="none"
|
||||
sx={{
|
||||
background: "#757FEF",
|
||||
borderRadius: "4px",
|
||||
color: "#fff !important",
|
||||
fontSize: "10px",
|
||||
padding: "4px 8px",
|
||||
display: "inline-block",
|
||||
position: "relative",
|
||||
top: "-5px",
|
||||
}}
|
||||
>
|
||||
View Profile{" "}
|
||||
<i
|
||||
className="ri-arrow-right-line"
|
||||
style={{ position: "relative", top: "2px" }}
|
||||
></i>
|
||||
</Link>
|
||||
</Grid>
|
||||
|
||||
<Grid item xs={4} md={4} lg={4}>
|
||||
<ImpressionShare />
|
||||
</Grid>
|
||||
</Grid>
|
||||
</div>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default Profile;
|
||||
@@ -1,95 +0,0 @@
|
||||
import React from "react";
|
||||
import { Box } from "@mui/material";
|
||||
import Card from "@mui/material/Card";
|
||||
import { Typography } from "@mui/material";
|
||||
import dynamic from "next/dynamic";
|
||||
const Chart = dynamic(() => import("react-apexcharts"), {
|
||||
ssr: false,
|
||||
});
|
||||
|
||||
const RevenueReport = () => {
|
||||
const series = [
|
||||
{
|
||||
name: "Earning",
|
||||
data: [80, 50, 30, 40, 100, 20, 35, 75, 45, 55, 65, 85,],
|
||||
},
|
||||
{
|
||||
name: "Expenses",
|
||||
data: [20, 30, 40, 80, 20, 80, 15, 32, 70, 38, 60, 76,],
|
||||
},
|
||||
];
|
||||
const options = {
|
||||
chart: {
|
||||
toolbar: {
|
||||
show: false,
|
||||
},
|
||||
dropShadow: {
|
||||
enabled: true,
|
||||
blur: 1,
|
||||
left: 1,
|
||||
top: 1,
|
||||
},
|
||||
},
|
||||
stroke: {
|
||||
width: 2,
|
||||
},
|
||||
colors: ["#757FEF", "#FF8A65"],
|
||||
fill: {
|
||||
opacity: 0.1,
|
||||
},
|
||||
markers: {
|
||||
size: 5,
|
||||
},
|
||||
xaxis: {
|
||||
categories: [
|
||||
"January",
|
||||
"Fubruary",
|
||||
"March",
|
||||
"April",
|
||||
"May",
|
||||
"June",
|
||||
"July",
|
||||
"August",
|
||||
"September",
|
||||
"October",
|
||||
"November",
|
||||
"December",
|
||||
],
|
||||
},
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "25px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
borderBottom: "1px solid #EEF0F7",
|
||||
paddingBottom: "10px",
|
||||
}}
|
||||
className="for-dark-bottom-border"
|
||||
>
|
||||
<Typography
|
||||
as="h3"
|
||||
sx={{
|
||||
fontSize: 18,
|
||||
fontWeight: 500,
|
||||
}}
|
||||
>
|
||||
Revenue Report
|
||||
</Typography>
|
||||
</Box>
|
||||
|
||||
<Chart options={options} series={series} type="radar" height={522} />
|
||||
</Card>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default RevenueReport;
|
||||
@@ -1,174 +0,0 @@
|
||||
import React from "react";
|
||||
import { Box } from "@mui/material";
|
||||
import Card from "@mui/material/Card";
|
||||
import { Typography } from "@mui/material";
|
||||
import InputLabel from "@mui/material/InputLabel";
|
||||
import MenuItem from "@mui/material/MenuItem";
|
||||
import FormControl from "@mui/material/FormControl";
|
||||
import Select from "@mui/material/Select";
|
||||
import {
|
||||
BarChart,
|
||||
Bar,
|
||||
XAxis,
|
||||
YAxis,
|
||||
CartesianGrid,
|
||||
Tooltip,
|
||||
Legend,
|
||||
ResponsiveContainer,
|
||||
} from "recharts";
|
||||
|
||||
const data = [
|
||||
{
|
||||
date: "01 Jan",
|
||||
cost: 4000,
|
||||
sales: 2400,
|
||||
revenue: 2400,
|
||||
},
|
||||
{
|
||||
date: "02 Jan",
|
||||
cost: 3000,
|
||||
sales: 1398,
|
||||
revenue: 2210,
|
||||
},
|
||||
{
|
||||
date: "03 Jan",
|
||||
cost: 2000,
|
||||
sales: 9800,
|
||||
revenue: 2290,
|
||||
},
|
||||
{
|
||||
date: "04 Jan",
|
||||
cost: 2780,
|
||||
sales: 3908,
|
||||
revenue: 2000,
|
||||
},
|
||||
{
|
||||
date: "05 Jan",
|
||||
cost: 1890,
|
||||
sales: 4800,
|
||||
revenue: 2181,
|
||||
},
|
||||
{
|
||||
date: "06 Jan",
|
||||
cost: 2390,
|
||||
sales: 3800,
|
||||
revenue: 2500,
|
||||
},
|
||||
{
|
||||
date: "07 Jan",
|
||||
cost: 3490,
|
||||
sales: 4300,
|
||||
revenue: 2100,
|
||||
},
|
||||
];
|
||||
|
||||
const SalesAnalytics = () => {
|
||||
// Select Form
|
||||
const [select, setSelect] = React.useState("");
|
||||
const handleChange = (event) => {
|
||||
setSelect(event.target.value);
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "25px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
justifyContent: "space-between",
|
||||
borderBottom: "1px solid #EEF0F7",
|
||||
paddingBottom: "10px",
|
||||
marginBottom: "15px",
|
||||
}}
|
||||
className="for-dark-bottom-border"
|
||||
>
|
||||
<Typography
|
||||
as="h3"
|
||||
sx={{
|
||||
fontSize: 18,
|
||||
fontWeight: 500,
|
||||
}}
|
||||
>
|
||||
Sales Analytics
|
||||
</Typography>
|
||||
<Box>
|
||||
<FormControl sx={{ minWidth: 120 }} size="small">
|
||||
<InputLabel id="demo-select-small" sx={{ fontSize: "14px" }}>
|
||||
Select
|
||||
</InputLabel>
|
||||
<Select
|
||||
labelId="demo-select-small"
|
||||
id="demo-select-small"
|
||||
value={select}
|
||||
label="Select"
|
||||
onChange={handleChange}
|
||||
sx={{ fontSize: "14px" }}
|
||||
>
|
||||
<MenuItem value={0} sx={{ fontSize: "14px" }}>
|
||||
Today
|
||||
</MenuItem>
|
||||
<MenuItem value={1} sx={{ fontSize: "14px" }}>
|
||||
Last 7 Days
|
||||
</MenuItem>
|
||||
<MenuItem value={2} sx={{ fontSize: "14px" }}>
|
||||
Last Month
|
||||
</MenuItem>
|
||||
<MenuItem value={3} sx={{ fontSize: "14px" }}>
|
||||
Last 12 Months
|
||||
</MenuItem>
|
||||
<MenuItem value={4} sx={{ fontSize: "14px" }}>
|
||||
All Time
|
||||
</MenuItem>
|
||||
</Select>
|
||||
</FormControl>
|
||||
</Box>
|
||||
</Box>
|
||||
|
||||
<div style={{ width: '100%', height: 272 }}>
|
||||
<ResponsiveContainer>
|
||||
<BarChart
|
||||
width={500}
|
||||
height={300}
|
||||
data={data}
|
||||
margin={{
|
||||
top: 0,
|
||||
right: 0,
|
||||
left: 0,
|
||||
bottom: 0,
|
||||
}}
|
||||
barSize={50}
|
||||
>
|
||||
<CartesianGrid strokeDasharray="3 3" />
|
||||
|
||||
<XAxis dataKey="date" fontSize={12} stroke="#A9A9C8" />
|
||||
|
||||
<YAxis fontSize={12} stroke="#A9A9C8" />
|
||||
|
||||
<Tooltip wrapperStyle={{ fontSize: "13px" }} />
|
||||
|
||||
<Legend
|
||||
wrapperStyle={{ textTransform: "capitalize", fontSize: "13px" }}
|
||||
/>
|
||||
|
||||
<Bar dataKey="cost" stackId="a" fill="#165BAA" />
|
||||
|
||||
<Bar dataKey="sales" stackId="a" fill="#A155B9" />
|
||||
|
||||
<Bar dataKey="revenue" stackId="a" fill="#F765A3" />
|
||||
</BarChart>
|
||||
</ResponsiveContainer>
|
||||
</div>
|
||||
</Card>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default SalesAnalytics;
|
||||
@@ -1,174 +0,0 @@
|
||||
import React from "react";
|
||||
import { Box, Typography } from "@mui/material";
|
||||
import Card from "@mui/material/Card";
|
||||
import Menu from "@mui/material/Menu";
|
||||
import MenuItem from "@mui/material/MenuItem";
|
||||
import IconButton from "@mui/material/IconButton";
|
||||
import MoreHorizIcon from "@mui/icons-material/MoreHoriz";
|
||||
import dynamic from "next/dynamic";
|
||||
const Chart = dynamic(() => import("react-apexcharts"), {
|
||||
ssr: false,
|
||||
});
|
||||
|
||||
const SessionsByCountries = () => {
|
||||
const [anchorEl, setAnchorEl] = React.useState(null);
|
||||
const open = Boolean(anchorEl);
|
||||
const handleClick = (event) => {
|
||||
setAnchorEl(event.currentTarget);
|
||||
};
|
||||
const handleClose = () => {
|
||||
setAnchorEl(null);
|
||||
};
|
||||
|
||||
// Chart
|
||||
const series = [
|
||||
{
|
||||
data: [1200, 930, 748, 670, 540, 580, 690, 1100, 1200, 1380],
|
||||
},
|
||||
];
|
||||
const options = {
|
||||
chart: {
|
||||
toolbar: {
|
||||
show: false,
|
||||
},
|
||||
},
|
||||
plotOptions: {
|
||||
bar: {
|
||||
borderRadius: 4,
|
||||
horizontal: true,
|
||||
},
|
||||
},
|
||||
dataLabels: {
|
||||
enabled: false,
|
||||
},
|
||||
colors: ["#757FEF"],
|
||||
xaxis: {
|
||||
categories: [
|
||||
"United State",
|
||||
"China",
|
||||
"Canada",
|
||||
"Indonesia",
|
||||
"Russia",
|
||||
"Bangladesh",
|
||||
"Brazil",
|
||||
"United Kingdom",
|
||||
"Vietnam",
|
||||
"Germany",
|
||||
],
|
||||
labels: {
|
||||
style: {
|
||||
colors: "#5B5B98",
|
||||
fontSize: "12px",
|
||||
},
|
||||
},
|
||||
},
|
||||
yaxis: {
|
||||
labels: {
|
||||
style: {
|
||||
colors: "#5B5B98",
|
||||
fontSize: "11px",
|
||||
},
|
||||
},
|
||||
axisBorder: {
|
||||
show: false,
|
||||
colors: "#f6f6f7",
|
||||
},
|
||||
},
|
||||
fill: {
|
||||
opacity: 1,
|
||||
},
|
||||
grid: {
|
||||
show: true,
|
||||
borderColor: "#f6f6f7",
|
||||
},
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "25px 20px 10px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
justifyContent: "space-between",
|
||||
alignItems: "center",
|
||||
borderBottom: "1px solid #EEF0F7",
|
||||
paddingBottom: "10px",
|
||||
}}
|
||||
className="for-dark-bottom-border"
|
||||
>
|
||||
<Typography
|
||||
as="h3"
|
||||
sx={{
|
||||
fontSize: 18,
|
||||
fontWeight: 500,
|
||||
}}
|
||||
>
|
||||
Sessions By Countries
|
||||
</Typography>
|
||||
|
||||
<Box>
|
||||
<IconButton
|
||||
onClick={handleClick}
|
||||
size="small"
|
||||
aria-controls={open ? "account-menu" : undefined}
|
||||
aria-haspopup="true"
|
||||
aria-expanded={open ? "true" : undefined}
|
||||
>
|
||||
<MoreHorizIcon />
|
||||
</IconButton>
|
||||
</Box>
|
||||
<Menu
|
||||
anchorEl={anchorEl}
|
||||
id="account-menu"
|
||||
open={open}
|
||||
onClose={handleClose}
|
||||
onClick={handleClose}
|
||||
PaperProps={{
|
||||
elevation: 0,
|
||||
sx: {
|
||||
overflow: "visible",
|
||||
filter: "drop-shadow(0px 2px 8px rgba(0,0,0,0.32))",
|
||||
mt: 1.5,
|
||||
"& .MuiAvatar-root": {
|
||||
width: 32,
|
||||
height: 32,
|
||||
ml: -0.5,
|
||||
mr: 1,
|
||||
},
|
||||
"&:before": {
|
||||
content: '""',
|
||||
display: "block",
|
||||
position: "absolute",
|
||||
top: 0,
|
||||
right: 14,
|
||||
width: 10,
|
||||
height: 10,
|
||||
bgcolor: "background.paper",
|
||||
transform: "translateY(-50%) rotate(45deg)",
|
||||
zIndex: 0,
|
||||
},
|
||||
},
|
||||
}}
|
||||
transformOrigin={{ horizontal: "right", vertical: "top" }}
|
||||
anchorOrigin={{ horizontal: "right", vertical: "bottom" }}
|
||||
>
|
||||
<MenuItem sx={{ fontSize: "14px" }}>Last 15 Days</MenuItem>
|
||||
<MenuItem sx={{ fontSize: "14px" }}>Last Month</MenuItem>
|
||||
<MenuItem sx={{ fontSize: "14px" }}>Last Year</MenuItem>
|
||||
</Menu>
|
||||
</Box>
|
||||
|
||||
<Chart options={options} series={series} type="bar" height={500} />
|
||||
</Card>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default SessionsByCountries;
|
||||
@@ -1,65 +0,0 @@
|
||||
.infoList {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
border-bottom: 1px solid #F7FAFF;
|
||||
margin-bottom: 13px;
|
||||
padding-bottom: 13px;
|
||||
position: relative;
|
||||
padding-left: 15px;
|
||||
}
|
||||
.infoList::before {
|
||||
content: '';
|
||||
background: #FF8A54;
|
||||
box-shadow: 0px 2.98686px 13.4409px rgba(126, 172, 235, 0.25);
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
border-radius: 100%;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 5px;
|
||||
}
|
||||
.infoList:last-child {
|
||||
border-bottom: none;
|
||||
margin-bottom: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
.infoList p {
|
||||
font-size: 13px;
|
||||
margin: 0;
|
||||
}
|
||||
.infoList .rightContent {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.infoList h5 {
|
||||
margin: 0 15px 0 0;
|
||||
font-size: 12px;
|
||||
color: #5B5B98;
|
||||
}
|
||||
.infoList .rightContent i {
|
||||
position: relative;
|
||||
top: 2px;
|
||||
}
|
||||
|
||||
/* For RTL Style */
|
||||
[dir="rtl"] .infoList {
|
||||
padding-left: 0;
|
||||
padding-right: 15px;
|
||||
}
|
||||
[dir="rtl"] .infoList::before {
|
||||
left: auto;
|
||||
right: 0;
|
||||
}
|
||||
[dir="rtl"] .infoList h5 {
|
||||
margin: 0 0 0 15px;
|
||||
}
|
||||
|
||||
/* For dark mode */
|
||||
[class="dark"] .infoList {
|
||||
border-bottom: 1px solid var(--borderColor);
|
||||
}
|
||||
[class="dark"] .infoList:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
@@ -1,105 +0,0 @@
|
||||
import React, { Component } from "react";
|
||||
import { Box, Typography } from "@mui/material";
|
||||
import Card from "@mui/material/Card";
|
||||
import dynamic from "next/dynamic";
|
||||
const Chart = dynamic(() => import("react-apexcharts"), {
|
||||
ssr: false,
|
||||
});
|
||||
import styles from "@/components/Dashboard/Analytics/SessionsDevice/SessionsDevice.module.css";
|
||||
|
||||
class SessionsDevice extends Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {
|
||||
series: [70],
|
||||
options: {
|
||||
plotOptions: {
|
||||
radialBar: {
|
||||
hollow: {
|
||||
size: "50%",
|
||||
},
|
||||
track: {
|
||||
background: "rgba(255, 138, 84, 0.5)",
|
||||
},
|
||||
dataLabels: {
|
||||
name: {
|
||||
show: false,
|
||||
},
|
||||
value: {
|
||||
offsetY: 4,
|
||||
color: "#FF8A54",
|
||||
fontSize: "16px",
|
||||
fontWeight: "500",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
fill: {
|
||||
colors: ["#FF8A54"],
|
||||
},
|
||||
},
|
||||
};
|
||||
}
|
||||
render() {
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "25px 20px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
borderBottom: "1px solid #EEF0F7",
|
||||
paddingBottom: "10px",
|
||||
}}
|
||||
className="for-dark-bottom-border"
|
||||
>
|
||||
<Typography
|
||||
as="h3"
|
||||
sx={{
|
||||
fontSize: 18,
|
||||
fontWeight: 500,
|
||||
}}
|
||||
>
|
||||
Sessions Device
|
||||
</Typography>
|
||||
</Box>
|
||||
|
||||
<Chart
|
||||
options={this.state.options}
|
||||
series={this.state.series}
|
||||
type="radialBar"
|
||||
/>
|
||||
|
||||
<>
|
||||
<div className={styles.infoList}>
|
||||
<p>Mobile</p>
|
||||
<h5>15,684</h5>
|
||||
<div className={styles.rightContent}>
|
||||
<p>
|
||||
<i className="ri-bar-chart-fill"></i> 50%
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className={styles.infoList}>
|
||||
<p>Laptop</p>
|
||||
<h5>36,868</h5>
|
||||
<div className={styles.rightContent}>
|
||||
<p>
|
||||
<i className="ri-bar-chart-fill"></i> 60%
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</>
|
||||
</Card>
|
||||
</>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default SessionsDevice;
|
||||
@@ -1,151 +0,0 @@
|
||||
.terminalsBox {
|
||||
position: relative;
|
||||
}
|
||||
.monthlyEarning {
|
||||
background: #757FEF;
|
||||
mix-blend-mode: multiply;
|
||||
box-shadow: 0px 109px 80px rgb(132 13 226 / 14%), 0px 45.5376px 33.4221px rgb(132 13 226 / 10%), 0px 24.3466px 17.869px rgb(132 13 226 / 8%), 0px 13.6485px 10.0172px rgb(132 13 226 / 7%), 0px 7.24861px 5.32008px rgb(132 13 226 / 6%), 0px 3.01631px 2.21381px rgb(132 13 226 / 4%);
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
text-align: center;
|
||||
border-radius: 100%;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
padding-top: 75px;
|
||||
position: relative;
|
||||
right: -55px;
|
||||
top: 40px;
|
||||
}
|
||||
.monthlyEarning h3 {
|
||||
margin: 0 0 10px;
|
||||
line-height: 1;
|
||||
color: #fff !important;
|
||||
font-weight: 700;
|
||||
font-size: 24px;
|
||||
}
|
||||
.monthlyEarning p {
|
||||
margin: 0;
|
||||
line-height: 1;
|
||||
color: #fff;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.usersEarning {
|
||||
background: #F765A3;
|
||||
mix-blend-mode: multiply;
|
||||
opacity: 0.8;
|
||||
box-shadow: 0px 100px 80px rgb(255 43 43 / 15%), 0px 46.233px 36.9864px rgb(255 43 43 / 11%), 0px 26.4535px 21.1628px rgb(255 43 43 / 9%), 0px 16.0571px 12.8457px rgb(255 43 43 / 8%), 0px 9.67509px 7.74008px rgb(255 43 43 / 7%), 0px 5.38772px 4.31018px rgb(255 43 43 / 6%), 0px 2.31722px 1.85378px rgb(255 43 43 / 4%);
|
||||
width: 130px;
|
||||
height: 130px;
|
||||
text-align: center;
|
||||
border-radius: 100%;
|
||||
padding-top: 40px;
|
||||
left: -160px;
|
||||
right: 0;
|
||||
top: 130px;
|
||||
margin: auto;
|
||||
position: absolute;
|
||||
}
|
||||
.usersEarning h3 {
|
||||
margin: 0 0 10px;
|
||||
line-height: 1;
|
||||
color: #fff !important;
|
||||
font-weight: 700;
|
||||
font-size: 24px;
|
||||
}
|
||||
.usersEarning p {
|
||||
margin: 0;
|
||||
line-height: 1;
|
||||
color: #fff;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.inactiveEarning {
|
||||
top: 210px;
|
||||
background: #FF8A54;
|
||||
mix-blend-mode: multiply;
|
||||
width: 85px;
|
||||
height: 85px;
|
||||
text-align: center;
|
||||
border-radius: 100%;
|
||||
padding-top: 25px;
|
||||
position: absolute;
|
||||
left: -22px;
|
||||
right: 0;
|
||||
margin: auto;
|
||||
}
|
||||
.inactiveEarning h3 {
|
||||
margin: 0 0 5px;
|
||||
line-height: 1;
|
||||
color: #fff !important;
|
||||
font-weight: 700;
|
||||
font-size: 18px;
|
||||
}
|
||||
.inactiveEarning p {
|
||||
margin: 0;
|
||||
line-height: 1;
|
||||
color: #fff;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.terminalsBox ul {
|
||||
margin: 133px 0 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
text-align: center;
|
||||
}
|
||||
.terminalsBox ul li {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
font-size: 13px;
|
||||
padding-left: 20px;
|
||||
margin-right: 15px;
|
||||
}
|
||||
.terminalsBox ul li:last-child {
|
||||
margin-right: 0;
|
||||
}
|
||||
.terminalsBox ul li::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
border-radius: 5px;
|
||||
width: 13px;
|
||||
height: 13px;
|
||||
left: 0;
|
||||
top: 2px;
|
||||
}
|
||||
.terminalsBox ul li:nth-child(1)::before {
|
||||
background: #757FEF;
|
||||
}
|
||||
.terminalsBox ul li:nth-child(2)::before {
|
||||
background: #F765A3;
|
||||
}
|
||||
.terminalsBox ul li:nth-child(3)::before {
|
||||
background: #FF8A54;
|
||||
}
|
||||
|
||||
|
||||
/* For RTL Style */
|
||||
[dir="rtl"] .terminalsBox ul li {
|
||||
padding-left: 0;
|
||||
padding-right: 20px;
|
||||
margin-right: 0;
|
||||
margin-left: 15px;
|
||||
}
|
||||
[dir="rtl"] .terminalsBox ul li:last-child {
|
||||
margin-left: 0;
|
||||
}
|
||||
[dir="rtl"] .terminalsBox ul li::before {
|
||||
left: auto;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
/* For dark mode */
|
||||
[class="dark"] .monthlyEarning {
|
||||
mix-blend-mode: initial;
|
||||
}
|
||||
[class="dark"] .usersEarning {
|
||||
mix-blend-mode: initial;
|
||||
}
|
||||
[class="dark"] .inactiveEarning {
|
||||
mix-blend-mode: initial;
|
||||
}
|
||||
@@ -1,62 +0,0 @@
|
||||
import React from "react";
|
||||
import { Box, Typography } from "@mui/material";
|
||||
import Card from "@mui/material/Card";
|
||||
import styles from "@/components/Dashboard/Analytics/Terminals/Terminals.module.css";
|
||||
|
||||
const Terminals = () => {
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "25px 20px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
borderBottom: "1px solid #EEF0F7",
|
||||
paddingBottom: "10px",
|
||||
}}
|
||||
className="for-dark-bottom-border"
|
||||
>
|
||||
<Typography
|
||||
as="h3"
|
||||
sx={{
|
||||
fontSize: 18,
|
||||
fontWeight: 500,
|
||||
}}
|
||||
>
|
||||
Terminals
|
||||
</Typography>
|
||||
</Box>
|
||||
|
||||
<div className={styles.terminalsBox}>
|
||||
<div className={styles.monthlyEarning}>
|
||||
<h3>$27632</h3>
|
||||
<p>Monthly Earning</p>
|
||||
</div>
|
||||
|
||||
<div className={styles.usersEarning}>
|
||||
<h3>82.9k</h3>
|
||||
<p>Users</p>
|
||||
</div>
|
||||
|
||||
<div className={styles.inactiveEarning}>
|
||||
<h3>0.9k</h3>
|
||||
<p>Inactive</p>
|
||||
</div>
|
||||
|
||||
<ul>
|
||||
<li>Monthly Earning</li>
|
||||
<li>Users</li>
|
||||
<li>Inactive</li>
|
||||
</ul>
|
||||
</div>
|
||||
</Card>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default Terminals;
|
||||
@@ -1,59 +0,0 @@
|
||||
import React, { Component } from 'react';
|
||||
import dynamic from "next/dynamic";
|
||||
const Chart = dynamic(() => import("react-apexcharts"), {
|
||||
ssr: false,
|
||||
});
|
||||
|
||||
class RevenueChart extends Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {
|
||||
series: [65],
|
||||
options: {
|
||||
plotOptions: {
|
||||
radialBar: {
|
||||
hollow: {
|
||||
size: "50%",
|
||||
},
|
||||
track: {
|
||||
background: "#ECEFF7",
|
||||
},
|
||||
dataLabels: {
|
||||
name: {
|
||||
show: true,
|
||||
fontSize: '12px',
|
||||
color: '#5B5B98',
|
||||
},
|
||||
value: {
|
||||
offsetY: 3,
|
||||
color: "#00B69B",
|
||||
fontSize: "16px",
|
||||
fontWeight: "500",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
labels: ['Revenue'],
|
||||
fill: {
|
||||
opacity: 1,
|
||||
colors: ["#757FEF"],
|
||||
},
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<>
|
||||
<Chart
|
||||
options={this.state.options}
|
||||
series={this.state.series}
|
||||
height="175"
|
||||
type="radialBar"
|
||||
/>
|
||||
</>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default RevenueChart;
|
||||
@@ -1,39 +0,0 @@
|
||||
.totalRevenueList {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
border-bottom: 1px solid #F7FAFF;
|
||||
margin-bottom: 13px;
|
||||
padding-bottom: 13px;
|
||||
}
|
||||
.totalRevenueList:last-child {
|
||||
border-bottom: none;
|
||||
margin-bottom: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
.totalRevenueList p {
|
||||
font-size: 13px;
|
||||
margin: 0;
|
||||
}
|
||||
.totalRevenueList .rightContent {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.totalRevenueList .rightContent h5 {
|
||||
margin: 0 15px 0 0;
|
||||
font-size: 12px;
|
||||
color: #5B5B98;
|
||||
}
|
||||
.totalRevenueList .rightContent i {
|
||||
position: relative;
|
||||
top: 2px;
|
||||
}
|
||||
|
||||
/* For dark mode */
|
||||
[class="dark"] .totalRevenueList {
|
||||
border-bottom: 1px solid var(--borderColor);
|
||||
}
|
||||
[class="dark"] .totalRevenueList:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
@@ -1,162 +0,0 @@
|
||||
import React from "react";
|
||||
import { Box, Typography } from "@mui/material";
|
||||
import Card from "@mui/material/Card";
|
||||
import Menu from "@mui/material/Menu";
|
||||
import MenuItem from "@mui/material/MenuItem";
|
||||
import IconButton from "@mui/material/IconButton";
|
||||
import MoreHorizIcon from "@mui/icons-material/MoreHoriz";
|
||||
import RevenueChart from "./RevenueChart";
|
||||
import styles from "@/components/Dashboard/Analytics/TotalRevenue/TotalRevenueList.module.css";
|
||||
|
||||
const TotalRevenue = () => {
|
||||
const [anchorEl, setAnchorEl] = React.useState(null);
|
||||
const open = Boolean(anchorEl);
|
||||
const handleClick = (event) => {
|
||||
setAnchorEl(event.currentTarget);
|
||||
};
|
||||
const handleClose = () => {
|
||||
setAnchorEl(null);
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "25px 20px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
justifyContent: "space-between",
|
||||
alignItems: "center",
|
||||
borderBottom: "1px solid #EEF0F7",
|
||||
paddingBottom: "10px",
|
||||
}}
|
||||
className="for-dark-bottom-border"
|
||||
>
|
||||
<Typography
|
||||
as="h3"
|
||||
sx={{
|
||||
fontSize: 18,
|
||||
fontWeight: 500,
|
||||
}}
|
||||
>
|
||||
Total Revenue
|
||||
</Typography>
|
||||
|
||||
<Box>
|
||||
<IconButton
|
||||
onClick={handleClick}
|
||||
size="small"
|
||||
aria-controls={open ? "account-menu" : undefined}
|
||||
aria-haspopup="true"
|
||||
aria-expanded={open ? "true" : undefined}
|
||||
>
|
||||
<MoreHorizIcon />
|
||||
</IconButton>
|
||||
</Box>
|
||||
<Menu
|
||||
anchorEl={anchorEl}
|
||||
id="account-menu"
|
||||
open={open}
|
||||
onClose={handleClose}
|
||||
onClick={handleClose}
|
||||
PaperProps={{
|
||||
elevation: 0,
|
||||
sx: {
|
||||
overflow: "visible",
|
||||
filter: "drop-shadow(0px 2px 8px rgba(0,0,0,0.32))",
|
||||
mt: 1.5,
|
||||
"& .MuiAvatar-root": {
|
||||
width: 32,
|
||||
height: 32,
|
||||
ml: -0.5,
|
||||
mr: 1,
|
||||
},
|
||||
"&:before": {
|
||||
content: '""',
|
||||
display: "block",
|
||||
position: "absolute",
|
||||
top: 0,
|
||||
right: 14,
|
||||
width: 10,
|
||||
height: 10,
|
||||
bgcolor: "background.paper",
|
||||
transform: "translateY(-50%) rotate(45deg)",
|
||||
zIndex: 0,
|
||||
},
|
||||
},
|
||||
}}
|
||||
transformOrigin={{ horizontal: "right", vertical: "top" }}
|
||||
anchorOrigin={{ horizontal: "right", vertical: "bottom" }}
|
||||
>
|
||||
<MenuItem sx={{ fontSize: "14px" }}>Last 15 Days</MenuItem>
|
||||
<MenuItem sx={{ fontSize: "14px" }}>Last Month</MenuItem>
|
||||
<MenuItem sx={{ fontSize: "14px" }}>Last Year</MenuItem>
|
||||
</Menu>
|
||||
</Box>
|
||||
|
||||
{/* RevenueChart */}
|
||||
<RevenueChart />
|
||||
|
||||
<>
|
||||
<div className={styles.totalRevenueList}>
|
||||
<p>Avg. Session</p>
|
||||
<div className={styles.rightContent}>
|
||||
<h5>972</h5>
|
||||
<p>
|
||||
<i className="ri-arrow-right-up-line successColor"></i> 49%
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className={styles.totalRevenueList}>
|
||||
<p>Conversion Rate</p>
|
||||
<div className={styles.rightContent}>
|
||||
<h5>102</h5>
|
||||
<p>
|
||||
<i className="ri-arrow-right-up-line successColor"></i> 18%
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className={styles.totalRevenueList}>
|
||||
<p>Avg. Duration</p>
|
||||
<div className={styles.rightContent}>
|
||||
<h5>3m</h5>
|
||||
<p>
|
||||
<i className="ri-arrow-right-up-line successColor"></i> 42%
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className={styles.totalRevenueList}>
|
||||
<p>Weekly Earning</p>
|
||||
<div className={styles.rightContent}>
|
||||
<h5>$972</h5>
|
||||
<p>
|
||||
<i className="ri-arrow-right-down-line dangerColor"></i> 28%
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className={styles.totalRevenueList}>
|
||||
<p>Monthly Revenue</p>
|
||||
<div className={styles.rightContent}>
|
||||
<h5>50k</h5>
|
||||
<p>
|
||||
<i className="ri-arrow-right-up-line successColor"></i> 70%
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</>
|
||||
</Card>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default TotalRevenue;
|
||||
@@ -1,112 +0,0 @@
|
||||
import React from "react";
|
||||
import { Box, Typography } from "@mui/material";
|
||||
import Card from "@mui/material/Card";
|
||||
import dynamic from "next/dynamic";
|
||||
const Chart = dynamic(() => import("react-apexcharts"), {
|
||||
ssr: false,
|
||||
});
|
||||
|
||||
const TotalTransactions = () => {
|
||||
// Chart
|
||||
const series = [
|
||||
{
|
||||
name: 'This Week',
|
||||
data: [30, 35, 40, 50, 55, 60, 65]
|
||||
},
|
||||
{
|
||||
name: 'Last Week',
|
||||
data: [65, 60, 55, 50, 40, 35, 30]
|
||||
},
|
||||
{
|
||||
name: 'Performance',
|
||||
data: [30, 35, 40, 50, 55, 60, 65]
|
||||
},
|
||||
{
|
||||
name: 'Cost',
|
||||
data: [65, 60, 55, 50, 40, 35, 30]
|
||||
}
|
||||
];
|
||||
|
||||
const options = {
|
||||
chart: {
|
||||
stacked: true,
|
||||
toolbar: {
|
||||
show: false
|
||||
},
|
||||
},
|
||||
colors: ["#1CCAB8", "#FFBC2B", "#818093", "#EE368C"],
|
||||
plotOptions: {
|
||||
bar: {
|
||||
horizontal: false,
|
||||
columnWidth: "30%",
|
||||
endingShape: "rounded",
|
||||
},
|
||||
},
|
||||
xaxis: {
|
||||
type: 'datetime',
|
||||
categories: ['01/01/2011 GMT', '01/02/2011 GMT', '01/03/2011 GMT', '01/04/2011 GMT',
|
||||
'01/05/2011 GMT', '01/06/2011 GMT', '01/07/2011 GMT'
|
||||
],
|
||||
labels: {
|
||||
show: false,
|
||||
},
|
||||
},
|
||||
yaxis: {
|
||||
show: false,
|
||||
},
|
||||
legend: {
|
||||
position: 'bottom',
|
||||
offsetY: 8,
|
||||
fontSize: '11px',
|
||||
},
|
||||
fill: {
|
||||
opacity: 1
|
||||
},
|
||||
grid: {
|
||||
borderColor: '#F7FAFF',
|
||||
},
|
||||
tooltip: {
|
||||
y: {
|
||||
formatter: function (val) {
|
||||
return "$" + val + "k";
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "25px 0 15px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
borderBottom: "1px solid #EEF0F7",
|
||||
paddingBottom: "10px",
|
||||
}}
|
||||
className="for-dark-bottom-border"
|
||||
>
|
||||
<Typography
|
||||
as="h3"
|
||||
sx={{
|
||||
fontSize: 18,
|
||||
fontWeight: 500,
|
||||
p: "0 20px 0",
|
||||
}}
|
||||
>
|
||||
Total Transactions
|
||||
</Typography>
|
||||
</Box>
|
||||
|
||||
<Chart options={options} series={series} type="bar" height={325} />
|
||||
</Card>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default TotalTransactions;
|
||||
@@ -1,65 +0,0 @@
|
||||
.infoList {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
border-bottom: 1px solid #F7FAFF;
|
||||
margin-bottom: 13px;
|
||||
padding-bottom: 13px;
|
||||
position: relative;
|
||||
padding-left: 15px;
|
||||
}
|
||||
.infoList::before {
|
||||
content: '';
|
||||
background: #F765A3;
|
||||
box-shadow: 0px 2.98686px 13.4409px rgba(126, 172, 235, 0.25);
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
border-radius: 100%;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 5px;
|
||||
}
|
||||
.infoList:last-child {
|
||||
border-bottom: none;
|
||||
margin-bottom: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
.infoList p {
|
||||
font-size: 13px;
|
||||
margin: 0;
|
||||
}
|
||||
.infoList .rightContent {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.infoList h5 {
|
||||
margin: 0 15px 0 0;
|
||||
font-size: 12px;
|
||||
color: #5B5B98;
|
||||
}
|
||||
.infoList .rightContent i {
|
||||
position: relative;
|
||||
top: 2px;
|
||||
}
|
||||
|
||||
/* For RTL Style */
|
||||
[dir="rtl"] .infoList {
|
||||
padding-left: 0;
|
||||
padding-right: 15px;
|
||||
}
|
||||
[dir="rtl"] .infoList::before {
|
||||
left: auto;
|
||||
right: 0;
|
||||
}
|
||||
[dir="rtl"] .infoList h5 {
|
||||
margin: 0 0 0 15px;
|
||||
}
|
||||
|
||||
/* For dark mode */
|
||||
[class="dark"] .infoList {
|
||||
border-bottom: 1px solid var(--borderColor);
|
||||
}
|
||||
[class="dark"] .infoList:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
@@ -1,105 +0,0 @@
|
||||
import React, { Component } from "react";
|
||||
import { Box, Typography } from "@mui/material";
|
||||
import Card from "@mui/material/Card";
|
||||
import dynamic from "next/dynamic";
|
||||
const Chart = dynamic(() => import("react-apexcharts"), {
|
||||
ssr: false,
|
||||
});
|
||||
import styles from "@/components/Dashboard/Analytics/VisitorsAge/VisitorsAge.module.css";
|
||||
|
||||
class VisitorsAge extends Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {
|
||||
series: [40],
|
||||
options: {
|
||||
plotOptions: {
|
||||
radialBar: {
|
||||
hollow: {
|
||||
size: "50%",
|
||||
},
|
||||
track: {
|
||||
background: "rgba(247, 101, 163, 0.5)",
|
||||
},
|
||||
dataLabels: {
|
||||
name: {
|
||||
show: false,
|
||||
},
|
||||
value: {
|
||||
offsetY: 4,
|
||||
color: "#F765A3",
|
||||
fontSize: "16px",
|
||||
fontWeight: "500",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
fill: {
|
||||
colors: ["#F765A3"],
|
||||
},
|
||||
},
|
||||
};
|
||||
}
|
||||
render() {
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "25px 20px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
borderBottom: "1px solid #EEF0F7",
|
||||
paddingBottom: "10px",
|
||||
}}
|
||||
className="for-dark-bottom-border"
|
||||
>
|
||||
<Typography
|
||||
as="h3"
|
||||
sx={{
|
||||
fontSize: 18,
|
||||
fontWeight: 500,
|
||||
}}
|
||||
>
|
||||
Visitors Age
|
||||
</Typography>
|
||||
</Box>
|
||||
|
||||
<Chart
|
||||
options={this.state.options}
|
||||
series={this.state.series}
|
||||
type="radialBar"
|
||||
/>
|
||||
|
||||
<>
|
||||
<div className={styles.infoList}>
|
||||
<p>Under 30</p>
|
||||
<h5>16,868</h5>
|
||||
<div className={styles.rightContent}>
|
||||
<p>
|
||||
<i className="ri-bar-chart-fill"></i> 32%
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className={styles.infoList}>
|
||||
<p>Over 30</p>
|
||||
<h5>31,868</h5>
|
||||
<div className={styles.rightContent}>
|
||||
<p>
|
||||
<i className="ri-bar-chart-fill"></i> 68%
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</>
|
||||
</Card>
|
||||
</>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default VisitorsAge;
|
||||
@@ -1,123 +0,0 @@
|
||||
import React from "react";
|
||||
import Grid from "@mui/material/Grid";
|
||||
import Box from "@mui/material/Box";
|
||||
import Typography from "@mui/material/Typography";
|
||||
import {
|
||||
BarChart,
|
||||
Bar,
|
||||
XAxis,
|
||||
Tooltip,
|
||||
ResponsiveContainer,
|
||||
} from "recharts";
|
||||
|
||||
const data = [
|
||||
{
|
||||
name: "Sat",
|
||||
income: 24,
|
||||
},
|
||||
{
|
||||
name: "Sun",
|
||||
income: 13,
|
||||
},
|
||||
{
|
||||
name: "Mon",
|
||||
income: 98,
|
||||
},
|
||||
{
|
||||
name: "Tue",
|
||||
income: 39,
|
||||
},
|
||||
{
|
||||
name: "Wed",
|
||||
income: 48,
|
||||
},
|
||||
{
|
||||
name: "Thu",
|
||||
income: 38,
|
||||
},
|
||||
{
|
||||
name: "Fri",
|
||||
income: 43,
|
||||
},
|
||||
];
|
||||
|
||||
const NetIncome = () => {
|
||||
return (
|
||||
<>
|
||||
<Grid container alignItems="center" sx={{ marginTop: '20px' }} rowSpacing={1} columnSpacing={{ xs: 1, sm: 2, md: 2 }}>
|
||||
<Grid item xs={6} md={7} lg={6}>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
width: "46px",
|
||||
height: "54px",
|
||||
lineHeight: "54px",
|
||||
borderRadius: "8px",
|
||||
fontSize: "25px",
|
||||
background: "#FFFFFF",
|
||||
boxShadow: "0px 4px 20px rgba(117, 127, 239, 0.15)",
|
||||
color: "#757FEF",
|
||||
textAlign: "center",
|
||||
}}
|
||||
className='mr-15px'
|
||||
>
|
||||
<i className="ri-bar-chart-fill"></i>
|
||||
</Box>
|
||||
|
||||
<Box>
|
||||
<Typography variant="p" sx={{ fontSize: 13 }}>
|
||||
Net Income
|
||||
</Typography>
|
||||
<Typography
|
||||
variant="h1"
|
||||
sx={{ fontSize: 22, fontWeight: 700, mt: "5px" }}
|
||||
>
|
||||
$438.5k
|
||||
</Typography>
|
||||
</Box>
|
||||
</Box>
|
||||
</Grid>
|
||||
|
||||
<Grid item xs={6} md={5} lg={6}>
|
||||
<ResponsiveContainer width="100%" aspect={2.0 / 0.9}>
|
||||
<BarChart
|
||||
width={500}
|
||||
height={300}
|
||||
data={data}
|
||||
margin={{
|
||||
top: 5,
|
||||
right: 10,
|
||||
left: 10,
|
||||
bottom: 5,
|
||||
}}
|
||||
barSize={8}
|
||||
>
|
||||
<XAxis
|
||||
dataKey="name"
|
||||
scale="point"
|
||||
fontSize={9}
|
||||
stroke="#A9A9C8"
|
||||
/>
|
||||
|
||||
<Tooltip wrapperStyle={{fontSize: "14px"}} />
|
||||
|
||||
<Bar
|
||||
dataKey="income"
|
||||
fill="#757FEF"
|
||||
background={{ fill: "#DBDFF1" }}
|
||||
unit="k"
|
||||
/>
|
||||
</BarChart>
|
||||
</ResponsiveContainer>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default NetIncome;
|
||||
@@ -1,136 +0,0 @@
|
||||
import React from "react";
|
||||
import {
|
||||
BarChart,
|
||||
Bar,
|
||||
XAxis,
|
||||
Tooltip,
|
||||
ResponsiveContainer,
|
||||
} from "recharts";
|
||||
import Grid from "@mui/material/Grid";
|
||||
import Card from "@mui/material/Card";
|
||||
import Box from "@mui/material/Box";
|
||||
import Typography from "@mui/material/Typography";
|
||||
import NetIncome from "./NetIncome";
|
||||
|
||||
const data = [
|
||||
{
|
||||
name: "Sat",
|
||||
visited: 2400,
|
||||
},
|
||||
{
|
||||
name: "Sun",
|
||||
visited: 1398,
|
||||
},
|
||||
{
|
||||
name: "Mon",
|
||||
visited: 9800,
|
||||
},
|
||||
{
|
||||
name: "Tue",
|
||||
visited: 3908,
|
||||
},
|
||||
{
|
||||
name: "Wed",
|
||||
visited: 4800,
|
||||
},
|
||||
{
|
||||
name: "Thu",
|
||||
visited: 3800,
|
||||
},
|
||||
{
|
||||
name: "Fri",
|
||||
visited: 4300,
|
||||
},
|
||||
];
|
||||
|
||||
const VisitsByDayAndNetIncome = () => {
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "30px 20px 20px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Grid container alignItems="center" rowSpacing={1} columnSpacing={{ xs: 1, sm: 2, md: 2 }}>
|
||||
<Grid item xs={6} md={7} lg={6}>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
width: "46px",
|
||||
height: "54px",
|
||||
lineHeight: "54px",
|
||||
borderRadius: "8px",
|
||||
fontSize: "25px",
|
||||
background: "#FFFFFF",
|
||||
boxShadow: "0px 4px 20px rgba(117, 127, 239, 0.15)",
|
||||
color: "#757FEF",
|
||||
textAlign: "center",
|
||||
}}
|
||||
className="mr-15px"
|
||||
>
|
||||
<i className="ri-pie-chart-line"></i>
|
||||
</Box>
|
||||
|
||||
<Box>
|
||||
<Typography variant="p" sx={{ fontSize: 13 }}>
|
||||
Visits By Day
|
||||
</Typography>
|
||||
<Typography
|
||||
variant="h1"
|
||||
sx={{ fontSize: 22, fontWeight: 700, mt: "5px" }}
|
||||
>
|
||||
1,802
|
||||
</Typography>
|
||||
</Box>
|
||||
</Box>
|
||||
</Grid>
|
||||
|
||||
<Grid item xs={6} md={5} lg={6}>
|
||||
<ResponsiveContainer width="100%" aspect={2.0 / 0.9}>
|
||||
<BarChart
|
||||
width={500}
|
||||
height={300}
|
||||
data={data}
|
||||
margin={{
|
||||
top: 5,
|
||||
right: 10,
|
||||
left: 10,
|
||||
bottom: 5,
|
||||
}}
|
||||
barSize={8}
|
||||
>
|
||||
<XAxis
|
||||
dataKey="name"
|
||||
scale="point"
|
||||
fontSize={9}
|
||||
stroke="#A9A9C8"
|
||||
/>
|
||||
|
||||
<Tooltip wrapperStyle={{fontSize: "14px"}} />
|
||||
|
||||
<Bar
|
||||
dataKey="visited"
|
||||
fill="#FFBA69"
|
||||
background={{ fill: "#DBDFF1" }}
|
||||
/>
|
||||
</BarChart>
|
||||
</ResponsiveContainer>
|
||||
</Grid>
|
||||
</Grid>
|
||||
|
||||
{/* NetIncome */}
|
||||
<NetIncome />
|
||||
</Card>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default VisitsByDayAndNetIncome;
|
||||
@@ -1,62 +0,0 @@
|
||||
import React, { Component } from "react";
|
||||
import dynamic from "next/dynamic";
|
||||
const Chart = dynamic(() => import("react-apexcharts"), {
|
||||
ssr: false,
|
||||
});
|
||||
|
||||
class ActiveCourseChart extends Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
|
||||
this.state = {
|
||||
series: [72, 56, 50],
|
||||
options: {
|
||||
chart: {
|
||||
type: "donut",
|
||||
},
|
||||
legend: {
|
||||
offsetY: 2,
|
||||
position: "bottom",
|
||||
horizontalAlign: "center",
|
||||
},
|
||||
labels: ["Courses Done", "On Progress", "To Do"],
|
||||
colors: ["#757FEF", "#EE368C", "#00B69B"],
|
||||
tooltip: {
|
||||
y: {
|
||||
formatter: function (val) {
|
||||
return "" + val + "%";
|
||||
},
|
||||
},
|
||||
},
|
||||
responsive: [
|
||||
{
|
||||
breakpoint: 480,
|
||||
options: {
|
||||
chart: {
|
||||
width: 200,
|
||||
},
|
||||
legend: {
|
||||
position: "bottom",
|
||||
},
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<>
|
||||
<Chart
|
||||
options={this.state.options}
|
||||
series={this.state.series}
|
||||
height="350"
|
||||
type="donut"
|
||||
/>
|
||||
</>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default ActiveCourseChart;
|
||||
@@ -1,110 +0,0 @@
|
||||
import React from "react";
|
||||
import { Box, Typography } from "@mui/material";
|
||||
import Card from "@mui/material/Card";
|
||||
import Menu from "@mui/material/Menu";
|
||||
import MenuItem from "@mui/material/MenuItem";
|
||||
import IconButton from "@mui/material/IconButton";
|
||||
import MoreHorizIcon from "@mui/icons-material/MoreHoriz";
|
||||
import ActiveCourseChart from "./ActiveCourseChart";
|
||||
|
||||
const ActiveCourse = () => {
|
||||
const [anchorEl, setAnchorEl] = React.useState(null);
|
||||
const open = Boolean(anchorEl);
|
||||
const handleClick = (event) => {
|
||||
setAnchorEl(event.currentTarget);
|
||||
};
|
||||
const handleClose = () => {
|
||||
setAnchorEl(null);
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "25px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
justifyContent: "space-between",
|
||||
alignItems: "center",
|
||||
borderBottom: "1px solid #EEF0F7",
|
||||
paddingBottom: "10px",
|
||||
mb: "20px",
|
||||
}}
|
||||
className="for-dark-bottom-border"
|
||||
>
|
||||
<Typography
|
||||
as="h3"
|
||||
sx={{
|
||||
fontSize: 18,
|
||||
fontWeight: 500,
|
||||
}}
|
||||
>
|
||||
Active Course
|
||||
</Typography>
|
||||
|
||||
<Box>
|
||||
<IconButton
|
||||
onClick={handleClick}
|
||||
size="small"
|
||||
aria-controls={open ? "account-menu" : undefined}
|
||||
aria-haspopup="true"
|
||||
aria-expanded={open ? "true" : undefined}
|
||||
>
|
||||
<MoreHorizIcon />
|
||||
</IconButton>
|
||||
</Box>
|
||||
<Menu
|
||||
anchorEl={anchorEl}
|
||||
id="account-menu"
|
||||
open={open}
|
||||
onClose={handleClose}
|
||||
onClick={handleClose}
|
||||
PaperProps={{
|
||||
elevation: 0,
|
||||
sx: {
|
||||
overflow: "visible",
|
||||
filter: "drop-shadow(0px 2px 8px rgba(0,0,0,0.32))",
|
||||
mt: 1.5,
|
||||
"& .MuiAvatar-root": {
|
||||
width: 32,
|
||||
height: 32,
|
||||
ml: -0.5,
|
||||
mr: 1,
|
||||
},
|
||||
"&:before": {
|
||||
content: '""',
|
||||
display: "block",
|
||||
position: "absolute",
|
||||
top: 0,
|
||||
right: 14,
|
||||
width: 10,
|
||||
height: 10,
|
||||
bgcolor: "background.paper",
|
||||
transform: "translateY(-50%) rotate(45deg)",
|
||||
zIndex: 0,
|
||||
},
|
||||
},
|
||||
}}
|
||||
transformOrigin={{ horizontal: "right", vertical: "top" }}
|
||||
anchorOrigin={{ horizontal: "right", vertical: "bottom" }}
|
||||
>
|
||||
<MenuItem sx={{ fontSize: '14px' }}>Last 15 Days</MenuItem>
|
||||
<MenuItem sx={{ fontSize: '14px' }}>Last Month</MenuItem>
|
||||
<MenuItem sx={{ fontSize: '14px' }}>Last Year</MenuItem>
|
||||
</Menu>
|
||||
</Box>
|
||||
|
||||
{/* Live Visits Chart */}
|
||||
<ActiveCourseChart />
|
||||
</Card>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default ActiveCourse;
|
||||
@@ -1,241 +0,0 @@
|
||||
import React, { Component } from "react";
|
||||
import { Box, Typography } from "@mui/material";
|
||||
import Link from "@mui/material/Link";
|
||||
import dynamic from "next/dynamic";
|
||||
const Chart = dynamic(() => import("react-apexcharts"), {
|
||||
ssr: false,
|
||||
});
|
||||
|
||||
class CourseCompletionList extends Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {
|
||||
series: [25],
|
||||
series2: [50],
|
||||
series3: [30],
|
||||
series4: [50],
|
||||
options: {
|
||||
chart: {
|
||||
offsetX: -8,
|
||||
},
|
||||
plotOptions: {
|
||||
radialBar: {
|
||||
hollow: {
|
||||
size: "50%",
|
||||
},
|
||||
track: {
|
||||
background: "#A9C8FB",
|
||||
},
|
||||
dataLabels: {
|
||||
name: {
|
||||
show: false,
|
||||
},
|
||||
value: {
|
||||
offsetY: 3,
|
||||
color: "#757FEF",
|
||||
fontSize: "13px",
|
||||
fontWeight: "500",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
fill: {
|
||||
colors: ["#757FEF"],
|
||||
opacity: 1,
|
||||
},
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<>
|
||||
{/* Course completion 1 */}
|
||||
<Box
|
||||
sx={{
|
||||
background: "#FAFAFA",
|
||||
borderRadius: "15px",
|
||||
padding: "5px 20px",
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
justifyContent: "space-between",
|
||||
mt: "15px",
|
||||
}}
|
||||
className="dark-BG-101010"
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
justifyContent: "space-between",
|
||||
}}
|
||||
>
|
||||
<Box className="mr-1">
|
||||
<Chart
|
||||
options={this.state.options}
|
||||
series={this.state.series}
|
||||
type="radialBar"
|
||||
height={110}
|
||||
width={70}
|
||||
/>
|
||||
</Box>
|
||||
<Box>
|
||||
<Typography as="h3" fontSize="14px" fontWeight="500">
|
||||
Data With Python
|
||||
</Typography>
|
||||
<Typography fontSize="13px" color="#A9A9C8">
|
||||
5 Lessons
|
||||
</Typography>
|
||||
</Box>
|
||||
</Box>
|
||||
|
||||
<Box color="#A9A9C8" fontSize="25px">
|
||||
<Link href="#" underline="none">
|
||||
<i className="ri-arrow-right-s-line"></i>
|
||||
</Link>
|
||||
</Box>
|
||||
</Box>
|
||||
|
||||
{/* Course completion 2 */}
|
||||
<Box
|
||||
sx={{
|
||||
background: "#FAFAFA",
|
||||
borderRadius: "15px",
|
||||
padding: "5px 20px",
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
justifyContent: "space-between",
|
||||
mt: "15px",
|
||||
}}
|
||||
className="dark-BG-101010"
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
justifyContent: "space-between",
|
||||
}}
|
||||
>
|
||||
<Box>
|
||||
<Chart
|
||||
options={this.state.options}
|
||||
series={this.state.series2}
|
||||
type="radialBar"
|
||||
height={110}
|
||||
width={70}
|
||||
/>
|
||||
</Box>
|
||||
<Box>
|
||||
<Typography as="h3" fontSize="14px" fontWeight="500">
|
||||
Code Foundation
|
||||
</Typography>
|
||||
<Typography fontSize="13px" color="#A9A9C8">
|
||||
15 Lessons
|
||||
</Typography>
|
||||
</Box>
|
||||
</Box>
|
||||
|
||||
<Box color="#A9A9C8" fontSize="25px">
|
||||
<Link href="#" underline="none">
|
||||
<i className="ri-arrow-right-s-line"></i>
|
||||
</Link>
|
||||
</Box>
|
||||
</Box>
|
||||
|
||||
{/* Course completion 3 */}
|
||||
<Box
|
||||
sx={{
|
||||
background: "#FAFAFA",
|
||||
borderRadius: "15px",
|
||||
padding: "5px 20px",
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
justifyContent: "space-between",
|
||||
mt: "15px",
|
||||
}}
|
||||
className="dark-BG-101010"
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
justifyContent: "space-between",
|
||||
}}
|
||||
>
|
||||
<Box>
|
||||
<Chart
|
||||
options={this.state.options}
|
||||
series={this.state.series3}
|
||||
type="radialBar"
|
||||
height={110}
|
||||
width={70}
|
||||
/>
|
||||
</Box>
|
||||
<Box>
|
||||
<Typography as="h3" fontSize="14px" fontWeight="500">
|
||||
Styling With CSS
|
||||
</Typography>
|
||||
<Typography fontSize="13px" color="#A9A9C8">
|
||||
13 Lessons
|
||||
</Typography>
|
||||
</Box>
|
||||
</Box>
|
||||
|
||||
<Box color="#A9A9C8" fontSize="25px">
|
||||
<Link href="#" underline="none">
|
||||
<i className="ri-arrow-right-s-line"></i>
|
||||
</Link>
|
||||
</Box>
|
||||
</Box>
|
||||
|
||||
{/* Course completion 4 */}
|
||||
<Box
|
||||
sx={{
|
||||
background: "#FAFAFA",
|
||||
borderRadius: "15px",
|
||||
padding: "5px 20px",
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
justifyContent: "space-between",
|
||||
mt: "15px",
|
||||
}}
|
||||
className="dark-BG-101010"
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
justifyContent: "space-between",
|
||||
}}
|
||||
>
|
||||
<Box>
|
||||
<Chart
|
||||
options={this.state.options}
|
||||
series={this.state.series4}
|
||||
type="radialBar"
|
||||
height={110}
|
||||
width={70}
|
||||
/>
|
||||
</Box>
|
||||
<Box>
|
||||
<Typography as="h3" fontSize="14px" fontWeight="500">
|
||||
Code Learn
|
||||
</Typography>
|
||||
<Typography fontSize="13px" color="#A9A9C8">
|
||||
15 Lessons
|
||||
</Typography>
|
||||
</Box>
|
||||
</Box>
|
||||
|
||||
<Box color="#A9A9C8" fontSize="25px">
|
||||
<Link href="#" underline="none">
|
||||
<i className="ri-arrow-right-s-line"></i>
|
||||
</Link>
|
||||
</Box>
|
||||
</Box>
|
||||
</>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default CourseCompletionList;
|
||||
@@ -1,111 +0,0 @@
|
||||
import React from "react";
|
||||
import { Box, Typography } from "@mui/material";
|
||||
import Card from "@mui/material/Card";
|
||||
import Menu from "@mui/material/Menu";
|
||||
import MenuItem from "@mui/material/MenuItem";
|
||||
import IconButton from "@mui/material/IconButton";
|
||||
import MoreHorizIcon from "@mui/icons-material/MoreHoriz";
|
||||
import CourseCompletionList from "./CourseCompletionList";
|
||||
|
||||
const CourseCompletion = () => {
|
||||
// Dropdown
|
||||
const [anchorEl, setAnchorEl] = React.useState(null);
|
||||
const open = Boolean(anchorEl);
|
||||
const handleClick = (event) => {
|
||||
setAnchorEl(event.currentTarget);
|
||||
};
|
||||
const handleClose = () => {
|
||||
setAnchorEl(null);
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "25px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
justifyContent: "space-between",
|
||||
alignItems: "center",
|
||||
borderBottom: "1px solid #EEF0F7",
|
||||
paddingBottom: "10px",
|
||||
mb: "20px",
|
||||
}}
|
||||
className="for-dark-bottom-border"
|
||||
>
|
||||
<Typography
|
||||
as="h3"
|
||||
sx={{
|
||||
fontSize: 18,
|
||||
fontWeight: 500,
|
||||
}}
|
||||
>
|
||||
Course Completion
|
||||
</Typography>
|
||||
|
||||
<Box>
|
||||
<IconButton
|
||||
onClick={handleClick}
|
||||
size="small"
|
||||
aria-controls={open ? "account-menu" : undefined}
|
||||
aria-haspopup="true"
|
||||
aria-expanded={open ? "true" : undefined}
|
||||
>
|
||||
<MoreHorizIcon />
|
||||
</IconButton>
|
||||
</Box>
|
||||
<Menu
|
||||
anchorEl={anchorEl}
|
||||
id="account-menu"
|
||||
open={open}
|
||||
onClose={handleClose}
|
||||
onClick={handleClose}
|
||||
PaperProps={{
|
||||
elevation: 0,
|
||||
sx: {
|
||||
overflow: "visible",
|
||||
filter: "drop-shadow(0px 2px 8px rgba(0,0,0,0.32))",
|
||||
mt: 1.5,
|
||||
"& .MuiAvatar-root": {
|
||||
width: 32,
|
||||
height: 32,
|
||||
ml: -0.5,
|
||||
mr: 1,
|
||||
},
|
||||
"&:before": {
|
||||
content: '""',
|
||||
display: "block",
|
||||
position: "absolute",
|
||||
top: 0,
|
||||
right: 14,
|
||||
width: 10,
|
||||
height: 10,
|
||||
bgcolor: "background.paper",
|
||||
transform: "translateY(-50%) rotate(45deg)",
|
||||
zIndex: 0,
|
||||
},
|
||||
},
|
||||
}}
|
||||
transformOrigin={{ horizontal: "right", vertical: "top" }}
|
||||
anchorOrigin={{ horizontal: "right", vertical: "bottom" }}
|
||||
>
|
||||
<MenuItem sx={{ fontSize: '14px' }}>Last 15 Days</MenuItem>
|
||||
<MenuItem sx={{ fontSize: '14px' }}>Last Month</MenuItem>
|
||||
<MenuItem sx={{ fontSize: '14px' }}>Last Year</MenuItem>
|
||||
</Menu>
|
||||
</Box>
|
||||
|
||||
{/* CourseCompletionList */}
|
||||
<CourseCompletionList />
|
||||
</Card>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default CourseCompletion;
|
||||
@@ -1,380 +0,0 @@
|
||||
import * as React from "react";
|
||||
import { Box } from "@mui/material";
|
||||
import { Typography } from "@mui/material";
|
||||
import PropTypes from "prop-types";
|
||||
import { useTheme } from "@mui/material/styles";
|
||||
import Table from "@mui/material/Table";
|
||||
import TableHead from "@mui/material/TableHead";
|
||||
import TableBody from "@mui/material/TableBody";
|
||||
import TableCell from "@mui/material/TableCell";
|
||||
import TableContainer from "@mui/material/TableContainer";
|
||||
import TableFooter from "@mui/material/TableFooter";
|
||||
import TablePagination from "@mui/material/TablePagination";
|
||||
import TableRow from "@mui/material/TableRow";
|
||||
import Paper from "@mui/material/Paper";
|
||||
import IconButton from "@mui/material/IconButton";
|
||||
import FirstPageIcon from "@mui/icons-material/FirstPage";
|
||||
import KeyboardArrowLeft from "@mui/icons-material/KeyboardArrowLeft";
|
||||
import KeyboardArrowRight from "@mui/icons-material/KeyboardArrowRight";
|
||||
import LastPageIcon from "@mui/icons-material/LastPage";
|
||||
import Link from "@mui/material/Link";
|
||||
|
||||
function CreatedCourse(props) {
|
||||
const theme = useTheme();
|
||||
const { count, page, rowsPerPage, onPageChange } = props;
|
||||
|
||||
const handleFirstPageButtonClick = (event) => {
|
||||
onPageChange(event, 0);
|
||||
};
|
||||
|
||||
const handleBackButtonClick = (event) => {
|
||||
onPageChange(event, page - 1);
|
||||
};
|
||||
|
||||
const handleNextButtonClick = (event) => {
|
||||
onPageChange(event, page + 1);
|
||||
};
|
||||
|
||||
const handleLastPageButtonClick = (event) => {
|
||||
onPageChange(event, Math.max(0, Math.ceil(count / rowsPerPage) - 1));
|
||||
};
|
||||
|
||||
return (
|
||||
<Box sx={{ flexShrink: 0, ml: 2.5 }}>
|
||||
<IconButton
|
||||
onClick={handleFirstPageButtonClick}
|
||||
disabled={page === 0}
|
||||
aria-label="first page"
|
||||
>
|
||||
{theme.direction === "rtl" ? <LastPageIcon /> : <FirstPageIcon />}
|
||||
</IconButton>
|
||||
<IconButton
|
||||
onClick={handleBackButtonClick}
|
||||
disabled={page === 0}
|
||||
aria-label="previous page"
|
||||
>
|
||||
{theme.direction === "rtl" ? (
|
||||
<KeyboardArrowRight />
|
||||
) : (
|
||||
<KeyboardArrowLeft />
|
||||
)}
|
||||
</IconButton>
|
||||
<IconButton
|
||||
onClick={handleNextButtonClick}
|
||||
disabled={page >= Math.ceil(count / rowsPerPage) - 1}
|
||||
aria-label="next page"
|
||||
>
|
||||
{theme.direction === "rtl" ? (
|
||||
<KeyboardArrowLeft />
|
||||
) : (
|
||||
<KeyboardArrowRight />
|
||||
)}
|
||||
</IconButton>
|
||||
<IconButton
|
||||
onClick={handleLastPageButtonClick}
|
||||
disabled={page >= Math.ceil(count / rowsPerPage) - 1}
|
||||
aria-label="last page"
|
||||
>
|
||||
{theme.direction === "rtl" ? <FirstPageIcon /> : <LastPageIcon />}
|
||||
</IconButton>
|
||||
</Box>
|
||||
);
|
||||
}
|
||||
|
||||
CreatedCourse.propTypes = {
|
||||
count: PropTypes.number.isRequired,
|
||||
onPageChange: PropTypes.func.isRequired,
|
||||
page: PropTypes.number.isRequired,
|
||||
rowsPerPage: PropTypes.number.isRequired,
|
||||
};
|
||||
|
||||
function createData(
|
||||
courseName,
|
||||
courseLink,
|
||||
image,
|
||||
result,
|
||||
badgeClass,
|
||||
expirationTime,
|
||||
endTime
|
||||
) {
|
||||
return {
|
||||
courseName,
|
||||
courseLink,
|
||||
image,
|
||||
result,
|
||||
badgeClass,
|
||||
expirationTime,
|
||||
endTime,
|
||||
};
|
||||
}
|
||||
|
||||
const rows = [
|
||||
createData(
|
||||
"Build an iOS Application in Swift Learn the fundamentals",
|
||||
"#",
|
||||
"/images/course-brand3.png",
|
||||
"Passed",
|
||||
"successBadge",
|
||||
"2021-12-19 02:00 PM",
|
||||
"2021-12-19 04:00 PM"
|
||||
),
|
||||
createData(
|
||||
"Node.js for Beginners: Go From Zero to Hero with Node.js",
|
||||
"#",
|
||||
"/images/course-brand1.png",
|
||||
"87%",
|
||||
"primaryBadge",
|
||||
"2021-12-19 10:00 AM",
|
||||
"2021-12-19 12:00 PM"
|
||||
),
|
||||
createData(
|
||||
"Learn the fundamentals of working with Angular and how to create",
|
||||
"#",
|
||||
"/images/course-brand2.png",
|
||||
"Failed",
|
||||
"dangerBadge",
|
||||
"2021-12-19 11:00 AM",
|
||||
"2021-12-19 01:00 PM"
|
||||
),
|
||||
createData(
|
||||
"Programming Language Become a React Native Developer",
|
||||
"#",
|
||||
"/images/course-brand4.png",
|
||||
"90%",
|
||||
"primaryBadge",
|
||||
"2021-12-19 04:00 PM",
|
||||
"2021-12-19 06:00 PM"
|
||||
),
|
||||
createData(
|
||||
"Build an iOS Application in Swift Learn the fundamentals",
|
||||
"#",
|
||||
"/images/course-brand3.png",
|
||||
"Passed",
|
||||
"successBadge",
|
||||
"2021-12-19 02:00 PM",
|
||||
"2021-12-19 04:00 PM"
|
||||
),
|
||||
createData(
|
||||
"Node.js for Beginners: Go From Zero to Hero with Node.js",
|
||||
"#",
|
||||
"/images/course-brand1.png",
|
||||
"87%",
|
||||
"primaryBadge",
|
||||
"2021-12-19 10:00 AM",
|
||||
"2021-12-19 12:00 PM"
|
||||
),
|
||||
createData(
|
||||
"Learn the fundamentals of working with Angular and how to create",
|
||||
"#",
|
||||
"/images/course-brand2.png",
|
||||
"Failed",
|
||||
"dangerBadge",
|
||||
"2021-12-19 11:00 AM",
|
||||
"2021-12-19 01:00 PM"
|
||||
),
|
||||
createData(
|
||||
"Programming Language Become a React Native Developer",
|
||||
"#",
|
||||
"/images/course-brand4.png",
|
||||
"90%",
|
||||
"primaryBadge",
|
||||
"2021-12-19 04:00 PM",
|
||||
"2021-12-19 06:00 PM"
|
||||
),
|
||||
].sort((a, b) => (a.courseName < b.courseName ? -1 : 1));
|
||||
|
||||
export default function CreatedCourses() {
|
||||
// Table
|
||||
const [page, setPage] = React.useState(0);
|
||||
const [rowsPerPage, setRowsPerPage] = React.useState(6);
|
||||
|
||||
// Avoid a layout jump when reaching the last page with empty rows.
|
||||
const emptyRows =
|
||||
page > 0 ? Math.max(0, (1 + page) * rowsPerPage - rows.length) : 0;
|
||||
|
||||
const handleChangePage = (event, newPage) => {
|
||||
setPage(newPage);
|
||||
};
|
||||
|
||||
const handleChangeRowsPerPage = (event) => {
|
||||
setRowsPerPage(parseInt(event.target.value, 10));
|
||||
setPage(0);
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<TableContainer
|
||||
component={Paper}
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
}}
|
||||
>
|
||||
<Table
|
||||
sx={{ minWidth: 650 }}
|
||||
aria-label="custom pagination table"
|
||||
className="dark-table"
|
||||
>
|
||||
<TableHead sx={{ background: "#F7FAFF" }}>
|
||||
<TableRow>
|
||||
<TableCell
|
||||
style={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13.5px",
|
||||
}}
|
||||
>
|
||||
Courses
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
style={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13.5px",
|
||||
}}
|
||||
>
|
||||
Result
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
style={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13.5px",
|
||||
}}
|
||||
>
|
||||
Start Time
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="right"
|
||||
style={{
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13.5px",
|
||||
}}
|
||||
>
|
||||
End Time
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
</TableHead>
|
||||
|
||||
<TableBody>
|
||||
{(rowsPerPage > 0
|
||||
? rows.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)
|
||||
: rows
|
||||
).map((row) => (
|
||||
<TableRow key={row.courseName}>
|
||||
<TableCell
|
||||
style={{
|
||||
width: 350,
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
paddingTop: "13px",
|
||||
paddingBottom: "13px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
}}
|
||||
>
|
||||
<img
|
||||
src={row.image}
|
||||
alt="Product Img"
|
||||
width={65}
|
||||
className="borderRadius10"
|
||||
/>
|
||||
<Typography
|
||||
sx={{
|
||||
fontWeight: "500",
|
||||
fontSize: "13.5px",
|
||||
}}
|
||||
className="ml-10px"
|
||||
>
|
||||
<Link
|
||||
href={row.courseLink}
|
||||
underline="none"
|
||||
color="#260944"
|
||||
>
|
||||
{row.courseName}
|
||||
</Link>
|
||||
</Typography>
|
||||
</Box>
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
style={{
|
||||
fontWeight: 500,
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "12px",
|
||||
paddingTop: "13px",
|
||||
paddingBottom: "13px",
|
||||
}}
|
||||
>
|
||||
<span className={row.badgeClass}>{row.result}</span>
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
style={{
|
||||
width: 120,
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13px",
|
||||
paddingTop: "13px",
|
||||
paddingBottom: "13px",
|
||||
fontSize: "13px",
|
||||
}}
|
||||
>
|
||||
{row.expirationTime}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="right"
|
||||
style={{
|
||||
width: 120,
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13px",
|
||||
paddingTop: "13px",
|
||||
paddingBottom: "13px",
|
||||
fontSize: "13px",
|
||||
}}
|
||||
>
|
||||
{row.endTime}
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
))}
|
||||
|
||||
{emptyRows > 0 && (
|
||||
<TableRow style={{ height: 53 * emptyRows }}>
|
||||
<TableCell
|
||||
colSpan={4}
|
||||
style={{ borderBottom: "1px solid #F7FAFF" }}
|
||||
/>
|
||||
</TableRow>
|
||||
)}
|
||||
</TableBody>
|
||||
|
||||
<TableFooter>
|
||||
<TableRow>
|
||||
<TablePagination
|
||||
rowsPerPageOptions={[5, 10, 25, { label: "All", value: -1 }]}
|
||||
colSpan={4}
|
||||
count={rows.length}
|
||||
rowsPerPage={rowsPerPage}
|
||||
page={page}
|
||||
SelectProps={{
|
||||
inputProps: {
|
||||
"aria-label": "rows per page",
|
||||
},
|
||||
native: true,
|
||||
}}
|
||||
onPageChange={handleChangePage}
|
||||
onRowsPerPageChange={handleChangeRowsPerPage}
|
||||
ActionsComponent={CreatedCourse}
|
||||
style={{ borderBottom: "none" }}
|
||||
/>
|
||||
</TableRow>
|
||||
</TableFooter>
|
||||
</Table>
|
||||
</TableContainer>
|
||||
</>
|
||||
);
|
||||
}
|
||||
@@ -1,366 +0,0 @@
|
||||
import * as React from "react";
|
||||
import { Box } from "@mui/material";
|
||||
import { Typography } from "@mui/material";
|
||||
import PropTypes from "prop-types";
|
||||
import { useTheme } from "@mui/material/styles";
|
||||
import Table from "@mui/material/Table";
|
||||
import TableHead from "@mui/material/TableHead";
|
||||
import TableBody from "@mui/material/TableBody";
|
||||
import TableCell from "@mui/material/TableCell";
|
||||
import TableContainer from "@mui/material/TableContainer";
|
||||
import TableFooter from "@mui/material/TableFooter";
|
||||
import TablePagination from "@mui/material/TablePagination";
|
||||
import TableRow from "@mui/material/TableRow";
|
||||
import Paper from "@mui/material/Paper";
|
||||
import IconButton from "@mui/material/IconButton";
|
||||
import FirstPageIcon from "@mui/icons-material/FirstPage";
|
||||
import KeyboardArrowLeft from "@mui/icons-material/KeyboardArrowLeft";
|
||||
import KeyboardArrowRight from "@mui/icons-material/KeyboardArrowRight";
|
||||
import LastPageIcon from "@mui/icons-material/LastPage";
|
||||
import Link from "@mui/material/Link";
|
||||
|
||||
function EnrolledCourse(props) {
|
||||
const theme = useTheme();
|
||||
const { count, page, rowsPerPage, onPageChange } = props;
|
||||
|
||||
const handleFirstPageButtonClick = (event) => {
|
||||
onPageChange(event, 0);
|
||||
};
|
||||
|
||||
const handleBackButtonClick = (event) => {
|
||||
onPageChange(event, page - 1);
|
||||
};
|
||||
|
||||
const handleNextButtonClick = (event) => {
|
||||
onPageChange(event, page + 1);
|
||||
};
|
||||
|
||||
const handleLastPageButtonClick = (event) => {
|
||||
onPageChange(event, Math.max(0, Math.ceil(count / rowsPerPage) - 1));
|
||||
};
|
||||
|
||||
return (
|
||||
<Box sx={{ flexShrink: 0, ml: 2.5 }}>
|
||||
<IconButton
|
||||
onClick={handleFirstPageButtonClick}
|
||||
disabled={page === 0}
|
||||
aria-label="first page"
|
||||
>
|
||||
{theme.direction === "rtl" ? <LastPageIcon /> : <FirstPageIcon />}
|
||||
</IconButton>
|
||||
<IconButton
|
||||
onClick={handleBackButtonClick}
|
||||
disabled={page === 0}
|
||||
aria-label="previous page"
|
||||
>
|
||||
{theme.direction === "rtl" ? (
|
||||
<KeyboardArrowRight />
|
||||
) : (
|
||||
<KeyboardArrowLeft />
|
||||
)}
|
||||
</IconButton>
|
||||
<IconButton
|
||||
onClick={handleNextButtonClick}
|
||||
disabled={page >= Math.ceil(count / rowsPerPage) - 1}
|
||||
aria-label="next page"
|
||||
>
|
||||
{theme.direction === "rtl" ? (
|
||||
<KeyboardArrowLeft />
|
||||
) : (
|
||||
<KeyboardArrowRight />
|
||||
)}
|
||||
</IconButton>
|
||||
<IconButton
|
||||
onClick={handleLastPageButtonClick}
|
||||
disabled={page >= Math.ceil(count / rowsPerPage) - 1}
|
||||
aria-label="last page"
|
||||
>
|
||||
{theme.direction === "rtl" ? <FirstPageIcon /> : <LastPageIcon />}
|
||||
</IconButton>
|
||||
</Box>
|
||||
);
|
||||
}
|
||||
|
||||
EnrolledCourse.propTypes = {
|
||||
count: PropTypes.number.isRequired,
|
||||
onPageChange: PropTypes.func.isRequired,
|
||||
page: PropTypes.number.isRequired,
|
||||
rowsPerPage: PropTypes.number.isRequired,
|
||||
};
|
||||
|
||||
function createData(
|
||||
courseName,
|
||||
courseLink,
|
||||
image,
|
||||
result,
|
||||
badgeClass,
|
||||
expirationTime,
|
||||
endTime
|
||||
) {
|
||||
return {
|
||||
courseName,
|
||||
courseLink,
|
||||
image,
|
||||
result,
|
||||
badgeClass,
|
||||
expirationTime,
|
||||
endTime,
|
||||
};
|
||||
}
|
||||
|
||||
const rows = [
|
||||
createData(
|
||||
"Node.js for Beginners: Go From Zero to Hero with Node.js",
|
||||
"#",
|
||||
"/images/course-brand1.png",
|
||||
"87%",
|
||||
"primaryBadge",
|
||||
"2021-12-19 10:00 AM",
|
||||
"2021-12-19 12:00 PM"
|
||||
),
|
||||
createData(
|
||||
"Learn the fundamentals of working with Angular and how to create",
|
||||
"#",
|
||||
"/images/course-brand2.png",
|
||||
"Failed",
|
||||
"dangerBadge",
|
||||
"2021-12-19 11:00 AM",
|
||||
"2021-12-19 01:00 PM"
|
||||
),
|
||||
createData(
|
||||
"Build an iOS Application in Swift Learn the fundamentals",
|
||||
"#",
|
||||
"/images/course-brand3.png",
|
||||
"Passed",
|
||||
"successBadge",
|
||||
"2021-12-19 02:00 PM",
|
||||
"2021-12-19 04:00 PM"
|
||||
),
|
||||
createData(
|
||||
"Programming Language Become a React Native Developer",
|
||||
"#",
|
||||
"/images/course-brand4.png",
|
||||
"90%",
|
||||
"primaryBadge",
|
||||
"2021-12-19 04:00 PM",
|
||||
"2021-12-19 06:00 PM"
|
||||
),
|
||||
createData(
|
||||
"Node.js for Beginners Go From Zero to Hero with Node.js",
|
||||
"#",
|
||||
"/images/course-brand1.png",
|
||||
"87%",
|
||||
"primaryBadge",
|
||||
"2021-12-19 10:00 AM",
|
||||
"2021-12-19 12:00 PM"
|
||||
),
|
||||
createData(
|
||||
"Learn the fundamentals of working with React and how to create",
|
||||
"#",
|
||||
"/images/course-brand2.png",
|
||||
"Failed",
|
||||
"dangerBadge",
|
||||
"2021-12-19 11:00 AM",
|
||||
"2021-12-19 01:00 PM"
|
||||
),
|
||||
createData(
|
||||
"Build an Android Application in Swift Learn the fundamentals",
|
||||
"#",
|
||||
"/images/course-brand3.png",
|
||||
"Passed",
|
||||
"successBadge",
|
||||
"2021-12-19 02:00 PM",
|
||||
"2021-12-19 04:00 PM"
|
||||
),
|
||||
createData(
|
||||
"Programming Language Become a React.js Developer",
|
||||
"#",
|
||||
"/images/course-brand4.png",
|
||||
"90%",
|
||||
"primaryBadge",
|
||||
"2021-12-19 04:00 PM",
|
||||
"2021-12-19 06:00 PM"
|
||||
),
|
||||
].sort((a, b) => (a.courseName < b.courseName ? -1 : 1));
|
||||
|
||||
export default function EnrolledCourses() {
|
||||
// Table
|
||||
const [page, setPage] = React.useState(0);
|
||||
const [rowsPerPage, setRowsPerPage] = React.useState(6);
|
||||
|
||||
// Avoid a layout jump when reaching the last page with empty rows.
|
||||
const emptyRows =
|
||||
page > 0 ? Math.max(0, (1 + page) * rowsPerPage - rows.length) : 0;
|
||||
|
||||
const handleChangePage = (event, newPage) => {
|
||||
setPage(newPage);
|
||||
};
|
||||
|
||||
const handleChangeRowsPerPage = (event) => {
|
||||
setRowsPerPage(parseInt(event.target.value, 10));
|
||||
setPage(0);
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<TableContainer
|
||||
component={Paper}
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
}}
|
||||
>
|
||||
<Table
|
||||
sx={{ minWidth: 650 }}
|
||||
aria-label="custom pagination table"
|
||||
className="dark-table"
|
||||
>
|
||||
<TableHead sx={{ background: "#F7FAFF" }}>
|
||||
<TableRow>
|
||||
<TableCell
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
Courses
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
Result
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
Start Time
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="right"
|
||||
sx={{ borderBottom: "1px solid #F7FAFF", fontSize: "13.5px" }}
|
||||
>
|
||||
End Time
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
</TableHead>
|
||||
|
||||
<TableBody>
|
||||
{(rowsPerPage > 0
|
||||
? rows.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)
|
||||
: rows
|
||||
).map((row) => (
|
||||
<TableRow key={row.courseName}>
|
||||
<TableCell
|
||||
style={{
|
||||
width: 350,
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
paddingTop: "13px",
|
||||
paddingBottom: "13px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
}}
|
||||
>
|
||||
<img
|
||||
src={row.image}
|
||||
alt="Product Img"
|
||||
width={65}
|
||||
className="borderRadius10"
|
||||
/>
|
||||
<Typography
|
||||
sx={{
|
||||
fontWeight: "500",
|
||||
fontSize: "13.5px",
|
||||
}}
|
||||
className="ml-10px"
|
||||
>
|
||||
<Link
|
||||
href={row.courseLink}
|
||||
underline="none"
|
||||
color="#260944"
|
||||
>
|
||||
{row.courseName}
|
||||
</Link>
|
||||
</Typography>
|
||||
</Box>
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="center"
|
||||
style={{
|
||||
fontWeight: 500,
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "12px",
|
||||
paddingTop: "13px",
|
||||
paddingBottom: "13px",
|
||||
}}
|
||||
>
|
||||
<span className={row.badgeClass}>{row.result}</span>
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
style={{
|
||||
width: 120,
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13px",
|
||||
paddingTop: "13px",
|
||||
paddingBottom: "13px",
|
||||
}}
|
||||
>
|
||||
{row.expirationTime}
|
||||
</TableCell>
|
||||
|
||||
<TableCell
|
||||
align="right"
|
||||
style={{
|
||||
width: 120,
|
||||
borderBottom: "1px solid #F7FAFF",
|
||||
fontSize: "13px",
|
||||
paddingTop: "13px",
|
||||
paddingBottom: "13px",
|
||||
}}
|
||||
>
|
||||
{row.endTime}
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
))}
|
||||
|
||||
{emptyRows > 0 && (
|
||||
<TableRow style={{ height: 53 * emptyRows }}>
|
||||
<TableCell
|
||||
colSpan={4}
|
||||
style={{ borderBottom: "1px solid #F7FAFF" }}
|
||||
/>
|
||||
</TableRow>
|
||||
)}
|
||||
</TableBody>
|
||||
|
||||
<TableFooter>
|
||||
<TableRow>
|
||||
<TablePagination
|
||||
rowsPerPageOptions={[5, 10, 25, { label: "All", value: -1 }]}
|
||||
colSpan={4}
|
||||
count={rows.length}
|
||||
rowsPerPage={rowsPerPage}
|
||||
page={page}
|
||||
SelectProps={{
|
||||
inputProps: {
|
||||
"aria-label": "rows per page",
|
||||
},
|
||||
native: true,
|
||||
}}
|
||||
onPageChange={handleChangePage}
|
||||
onRowsPerPageChange={handleChangeRowsPerPage}
|
||||
ActionsComponent={EnrolledCourse}
|
||||
style={{ borderBottom: "none" }}
|
||||
/>
|
||||
</TableRow>
|
||||
</TableFooter>
|
||||
</Table>
|
||||
</TableContainer>
|
||||
</>
|
||||
);
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
.tabs ul {
|
||||
border-bottom: 1px solid #EEF0F7;
|
||||
}
|
||||
.tabs ul li {
|
||||
color: #260944;
|
||||
font-weight: 500;
|
||||
font-size: 16px;
|
||||
background: #F5F7FA;
|
||||
padding: 8px 25px;
|
||||
border-radius: 5px 5px 0px 0px;
|
||||
outline: 0;
|
||||
}
|
||||
.tabs ul li:focus:after {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
/* For dark mode */
|
||||
[class="dark"] .tabs ul {
|
||||
border-bottom: 1px solid var(--borderColor);
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
import React from "react";
|
||||
import Card from "@mui/material/Card";
|
||||
import { Tab, Tabs, TabList, TabPanel } from 'react-tabs';
|
||||
import EnrolledCourses from "./EnrolledCourses";
|
||||
import CreatedCourses from "./CreatedCourses";
|
||||
import styles from '@/components/Dashboard/LMSCourses/Courses/Tabs.module.css';
|
||||
|
||||
const Courses = () => {
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "25px 25px 15px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Tabs className={styles.tabs}>
|
||||
<TabList>
|
||||
<Tab>Enrolled</Tab>
|
||||
<Tab>Created</Tab>
|
||||
</TabList>
|
||||
|
||||
<TabPanel>
|
||||
<EnrolledCourses />
|
||||
</TabPanel>
|
||||
|
||||
<TabPanel>
|
||||
<CreatedCourses />
|
||||
</TabPanel>
|
||||
</Tabs>
|
||||
</Card>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default Courses;
|
||||
@@ -1,123 +0,0 @@
|
||||
import React from "react";
|
||||
import { Box } from "@mui/material";
|
||||
import Card from "@mui/material/Card";
|
||||
import { Typography } from "@mui/material";
|
||||
import Grid from "@mui/material/Grid";
|
||||
|
||||
const CurrentCoursesData = [
|
||||
{
|
||||
id: "1",
|
||||
title: "C++",
|
||||
subTitle: "It & Software",
|
||||
image: "/images/c+.png",
|
||||
score: "4.5 Score",
|
||||
duration: "37 Days Left",
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
title: "JavaScript",
|
||||
subTitle: "Web Development",
|
||||
image: "/images/js.png",
|
||||
score: "4.5 Score",
|
||||
duration: "35 Days Left",
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
title: "Haskell",
|
||||
subTitle: "Programming",
|
||||
image: "/images/haskell.png",
|
||||
score: "4.5 Score",
|
||||
duration: "30 Days Left",
|
||||
},
|
||||
];
|
||||
|
||||
const CurrentCourses = () => {
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "25px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
borderBottom: "1px solid #EEF0F7",
|
||||
paddingBottom: "10px",
|
||||
marginBottom: "20px",
|
||||
}}
|
||||
className="for-dark-bottom-border"
|
||||
>
|
||||
<Typography
|
||||
as="h3"
|
||||
sx={{
|
||||
fontSize: 18,
|
||||
fontWeight: 500,
|
||||
}}
|
||||
>
|
||||
Current Courses
|
||||
</Typography>
|
||||
</Box>
|
||||
|
||||
<Grid container rowSpacing={1} columnSpacing={{ xs: 1, sm: 2, md: 2 }}>
|
||||
{CurrentCoursesData.map((course) => (
|
||||
<Grid item xs={12} md={12} lg={4} key={course.id}>
|
||||
<Box
|
||||
sx={{
|
||||
background: "#F7F7FC",
|
||||
borderRadius: "10px",
|
||||
padding: "25px 20px",
|
||||
}}
|
||||
className="dark-BG-101010"
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
justifyContent: "space-between",
|
||||
}}
|
||||
>
|
||||
<Box>
|
||||
<Typography as="h3" fontSize="18px" fontWeight="700">
|
||||
{course.title}
|
||||
</Typography>
|
||||
<Typography
|
||||
textTransform="uppercase"
|
||||
color="primary"
|
||||
fontSize="12px"
|
||||
mt="5px"
|
||||
>
|
||||
{course.subTitle}
|
||||
</Typography>
|
||||
</Box>
|
||||
<img src={course.image} alt="" />
|
||||
</Box>
|
||||
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
justifyContent: "space-between",
|
||||
marginTop: "25px",
|
||||
}}
|
||||
>
|
||||
<Typography fontSize="13px" fontWeight="500">
|
||||
{course.score}
|
||||
</Typography>
|
||||
|
||||
<Typography fontSize="13px" color="#A9A9C8">
|
||||
{course.duration}
|
||||
</Typography>
|
||||
</Box>
|
||||
</Box>
|
||||
</Grid>
|
||||
))}
|
||||
</Grid>
|
||||
</Card>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default CurrentCourses;
|
||||
@@ -1,161 +0,0 @@
|
||||
import React from "react";
|
||||
import { Box, Typography } from "@mui/material";
|
||||
import Card from "@mui/material/Card";
|
||||
import Menu from "@mui/material/Menu";
|
||||
import MenuItem from "@mui/material/MenuItem";
|
||||
import IconButton from "@mui/material/IconButton";
|
||||
import MoreHorizIcon from "@mui/icons-material/MoreHoriz";
|
||||
import Chart from "chart.js/auto";
|
||||
import { Bar } from "react-chartjs-2";
|
||||
|
||||
const options = {
|
||||
indexAxis: "y",
|
||||
elements: {
|
||||
bar: {
|
||||
// borderWidth: 1,
|
||||
},
|
||||
},
|
||||
responsive: true,
|
||||
plugins: {
|
||||
legend: {
|
||||
position: "bottom",
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
const labels = [
|
||||
"Jan",
|
||||
"Feb",
|
||||
"Mar",
|
||||
"Apr",
|
||||
"May",
|
||||
"Jun",
|
||||
"Jul",
|
||||
"Aug",
|
||||
];
|
||||
|
||||
const data = {
|
||||
labels,
|
||||
datasets: [
|
||||
{
|
||||
label: "Achivement",
|
||||
data: [90, 80, 85, 70, 60, 50, 40, 60,],
|
||||
borderColor: "#F765A3",
|
||||
backgroundColor: "#FFA5CB",
|
||||
},
|
||||
{
|
||||
label: "Learning Path",
|
||||
data: [80, 70, 75, 65, 55, 45, 35, 55,],
|
||||
borderColor: "#A155B9",
|
||||
backgroundColor: "#E697FF",
|
||||
},
|
||||
{
|
||||
label: "IQ Test Score",
|
||||
data: [70, 60, 70, 60, 50, 40, 30, 50,],
|
||||
borderColor: "#757FEF",
|
||||
backgroundColor: "#2DB6F5",
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
const ExperienceIQ = () => {
|
||||
// Dropdown
|
||||
const [anchorEl, setAnchorEl] = React.useState(null);
|
||||
const open = Boolean(anchorEl);
|
||||
const handleClick = (event) => {
|
||||
setAnchorEl(event.currentTarget);
|
||||
};
|
||||
const handleClose = () => {
|
||||
setAnchorEl(null);
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "25px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
justifyContent: "space-between",
|
||||
alignItems: "center",
|
||||
borderBottom: "1px solid #EEF0F7",
|
||||
paddingBottom: "10px",
|
||||
mb: "10px",
|
||||
}}
|
||||
className="for-dark-bottom-border"
|
||||
>
|
||||
<Typography
|
||||
as="h3"
|
||||
sx={{
|
||||
fontSize: 18,
|
||||
fontWeight: 500,
|
||||
}}
|
||||
>
|
||||
Experience IQ
|
||||
</Typography>
|
||||
|
||||
<Box>
|
||||
<IconButton
|
||||
onClick={handleClick}
|
||||
size="small"
|
||||
aria-controls={open ? "account-menu" : undefined}
|
||||
aria-haspopup="true"
|
||||
aria-expanded={open ? "true" : undefined}
|
||||
>
|
||||
<MoreHorizIcon />
|
||||
</IconButton>
|
||||
</Box>
|
||||
<Menu
|
||||
anchorEl={anchorEl}
|
||||
id="account-menu"
|
||||
open={open}
|
||||
onClose={handleClose}
|
||||
onClick={handleClose}
|
||||
PaperProps={{
|
||||
elevation: 0,
|
||||
sx: {
|
||||
overflow: "visible",
|
||||
filter: "drop-shadow(0px 2px 8px rgba(0,0,0,0.32))",
|
||||
mt: 1.5,
|
||||
"& .MuiAvatar-root": {
|
||||
width: 32,
|
||||
height: 32,
|
||||
ml: -0.5,
|
||||
mr: 1,
|
||||
},
|
||||
"&:before": {
|
||||
content: '""',
|
||||
display: "block",
|
||||
position: "absolute",
|
||||
top: 0,
|
||||
right: 14,
|
||||
width: 10,
|
||||
height: 10,
|
||||
bgcolor: "background.paper",
|
||||
transform: "translateY(-50%) rotate(45deg)",
|
||||
zIndex: 0,
|
||||
},
|
||||
},
|
||||
}}
|
||||
transformOrigin={{ horizontal: "right", vertical: "top" }}
|
||||
anchorOrigin={{ horizontal: "right", vertical: "bottom" }}
|
||||
>
|
||||
<MenuItem sx={{ fontSize: '14px' }}>Last 15 Days</MenuItem>
|
||||
<MenuItem sx={{ fontSize: '14px' }}>Last Month</MenuItem>
|
||||
<MenuItem sx={{ fontSize: '14px' }}>Last Year</MenuItem>
|
||||
</Menu>
|
||||
</Box>
|
||||
|
||||
<Bar options={options} data={data} height={340} />
|
||||
</Card>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default ExperienceIQ;
|
||||
@@ -1,91 +0,0 @@
|
||||
import React from "react";
|
||||
import Grid from "@mui/material/Grid";
|
||||
import Box from "@mui/material/Box";
|
||||
import Card from "@mui/material/Card";
|
||||
import Typography from "@mui/material/Typography";
|
||||
|
||||
const FeaturesData = [
|
||||
{
|
||||
id: "1",
|
||||
title: "120",
|
||||
subTitle: "Enrolled Courses",
|
||||
image: "/images/icon1.png",
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
title: "17",
|
||||
subTitle: "Active Courses",
|
||||
image: "/images/icon2.png",
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
title: "64",
|
||||
subTitle: "Completed Courses",
|
||||
image: "/images/icon3.png",
|
||||
},
|
||||
{
|
||||
id: "4",
|
||||
title: "2.1M",
|
||||
subTitle: "Total Students",
|
||||
image: "/images/icon4.png",
|
||||
},
|
||||
];
|
||||
|
||||
const Features = () => {
|
||||
return (
|
||||
<>
|
||||
<Grid
|
||||
container
|
||||
justifyContent="center"
|
||||
rowSpacing={1}
|
||||
columnSpacing={{ xs: 1, sm: 2, md: 2 }}
|
||||
>
|
||||
{FeaturesData.map((feature) => (
|
||||
<Grid item xs={12} sm={6} md={6} lg={6} xl={3} key={feature.id}>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "25px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
width: "84px",
|
||||
height: "84px",
|
||||
borderRadius: "100%",
|
||||
}}
|
||||
className="mr-15px"
|
||||
>
|
||||
<img src={feature.image} alt="Icon" />
|
||||
</Box>
|
||||
|
||||
<Box>
|
||||
<Typography
|
||||
variant="h1"
|
||||
sx={{ fontSize: 28, fontWeight: 700, mb: "5px" }}
|
||||
>
|
||||
{feature.title}
|
||||
</Typography>
|
||||
|
||||
<Typography variant="p" sx={{ fontSize: 14 }}>
|
||||
{feature.subTitle}
|
||||
</Typography>
|
||||
</Box>
|
||||
</Box>
|
||||
</Card>
|
||||
</Grid>
|
||||
))}
|
||||
</Grid>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default Features;
|
||||
@@ -1,155 +0,0 @@
|
||||
import React from "react";
|
||||
import { Box } from "@mui/material";
|
||||
import Card from "@mui/material/Card";
|
||||
import { Typography } from "@mui/material";
|
||||
import InputLabel from "@mui/material/InputLabel";
|
||||
import MenuItem from "@mui/material/MenuItem";
|
||||
import FormControl from "@mui/material/FormControl";
|
||||
import Select from "@mui/material/Select";
|
||||
import dynamic from "next/dynamic";
|
||||
const Chart = dynamic(() => import("react-apexcharts"), {
|
||||
ssr: false,
|
||||
});
|
||||
|
||||
const HoursSpent = () => {
|
||||
// Select Form
|
||||
const [select, setSelect] = React.useState("");
|
||||
const handleChange = (event) => {
|
||||
setSelect(event.target.value);
|
||||
};
|
||||
|
||||
// Chart
|
||||
const series = [
|
||||
{
|
||||
name: "Spent",
|
||||
data: [21, 22, 10, 28, 16, 20, 25],
|
||||
},
|
||||
];
|
||||
const options = {
|
||||
chart: {
|
||||
toolbar: {
|
||||
show: false,
|
||||
},
|
||||
events: {
|
||||
click: function (chart, w, e) {
|
||||
// console.log(chart, w, e)
|
||||
},
|
||||
},
|
||||
},
|
||||
colors: ["#757FEF"],
|
||||
plotOptions: {
|
||||
bar: {
|
||||
columnWidth: "40%",
|
||||
distributed: true,
|
||||
},
|
||||
},
|
||||
dataLabels: {
|
||||
enabled: false,
|
||||
},
|
||||
legend: {
|
||||
show: false,
|
||||
},
|
||||
xaxis: {
|
||||
categories: [
|
||||
["Sat"],
|
||||
["Sun"],
|
||||
["Mon"],
|
||||
["Tue"],
|
||||
["Wed"],
|
||||
["Thu"],
|
||||
["Fri"],
|
||||
],
|
||||
labels: {
|
||||
style: {
|
||||
colors: "#A9A9C8",
|
||||
fontSize: "12px",
|
||||
},
|
||||
},
|
||||
},
|
||||
yaxis: {
|
||||
labels: {
|
||||
style: {
|
||||
colors: "#A9A9C8",
|
||||
fontSize: "12px",
|
||||
},
|
||||
},
|
||||
axisBorder: {
|
||||
show: false,
|
||||
colors: "#f6f6f7",
|
||||
},
|
||||
},
|
||||
fill: {
|
||||
opacity: 1,
|
||||
},
|
||||
tooltip: {
|
||||
y: {
|
||||
formatter: function (val) {
|
||||
return "" + val + " Hours";
|
||||
},
|
||||
},
|
||||
},
|
||||
grid: {
|
||||
show: true,
|
||||
borderColor: "#EDEFF5",
|
||||
strokeDashArray: 5,
|
||||
},
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "25px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
justifyContent: "space-between",
|
||||
borderBottom: "1px solid #EEF0F7",
|
||||
paddingBottom: "10px",
|
||||
marginBottom: "10px",
|
||||
}}
|
||||
className="for-dark-bottom-border"
|
||||
>
|
||||
<Typography
|
||||
as="h3"
|
||||
sx={{
|
||||
fontSize: 18,
|
||||
fontWeight: 500,
|
||||
}}
|
||||
>
|
||||
Hours Spent
|
||||
</Typography>
|
||||
<Box>
|
||||
<FormControl sx={{ minWidth: 120 }} size="small">
|
||||
<InputLabel id="demo-select-small" sx={{ fontSize: '14px' }}>Select</InputLabel>
|
||||
<Select
|
||||
labelId="demo-select-small"
|
||||
id="demo-select-small"
|
||||
value={select}
|
||||
label="Select"
|
||||
onChange={handleChange}
|
||||
sx={{ fontSize: '14px' }}
|
||||
>
|
||||
<MenuItem value={0} sx={{ fontSize: '14px' }}>Today</MenuItem>
|
||||
<MenuItem value={1} sx={{ fontSize: '14px' }}>This Week</MenuItem>
|
||||
<MenuItem value={2} sx={{ fontSize: '14px' }}>Last Month</MenuItem>
|
||||
<MenuItem value={3} sx={{ fontSize: '14px' }}>Last 12 Months</MenuItem>
|
||||
<MenuItem value={4} sx={{ fontSize: '14px' }}>All Time</MenuItem>
|
||||
</Select>
|
||||
</FormControl>
|
||||
</Box>
|
||||
</Box>
|
||||
|
||||
<Chart options={options} series={series} type="bar" height={250} />
|
||||
</Card>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default HoursSpent;
|
||||
@@ -1,24 +0,0 @@
|
||||
.messagesList {
|
||||
border-bottom: 1px solid #F7FAFF;
|
||||
border-right: 2px solid transparent;
|
||||
padding-left: 12px;
|
||||
padding-right: 12px;
|
||||
padding-top: 15px;
|
||||
padding-bottom: 10px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
.messagesList:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.messagesList:hover {
|
||||
background: #FAFAFA;
|
||||
border-right: 2px solid #757FEF;
|
||||
}
|
||||
|
||||
/* For dark mode */
|
||||
[class="dark"] .messagesList {
|
||||
border-bottom: 1px solid var(--borderColor);
|
||||
}
|
||||
[class="dark"] .messagesList:hover {
|
||||
background: var(--colorBlack);
|
||||
}
|
||||
@@ -1,248 +0,0 @@
|
||||
import React from "react";
|
||||
import { Box, Typography } from "@mui/material";
|
||||
import Card from "@mui/material/Card";
|
||||
import Menu from "@mui/material/Menu";
|
||||
import MenuItem from "@mui/material/MenuItem";
|
||||
import IconButton from "@mui/material/IconButton";
|
||||
import MoreHorizIcon from "@mui/icons-material/MoreHoriz";
|
||||
import Badge from '@mui/material/Badge';
|
||||
import styles from "@/components/Dashboard/LMSCourses/Messages/Messages.module.css";
|
||||
|
||||
const MessagesData = [
|
||||
{
|
||||
id: "1",
|
||||
name: "Johen Mandel",
|
||||
text: "Hi, i want make enquiries...",
|
||||
image: "/images/user15.png",
|
||||
badgeBgColor: "#5570F1",
|
||||
newTag: "New",
|
||||
number: "1",
|
||||
time: "12:55 AM"
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
name: "Thomas Albart",
|
||||
text: "Hi, i want make enquiries...",
|
||||
image: "/images/user16.png",
|
||||
badgeBgColor: "#5570F1",
|
||||
newTag: "New",
|
||||
number: "2",
|
||||
time: "6:55 AM"
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
name: "Maical Doe",
|
||||
text: "Hi, i want make enquiries...",
|
||||
image: "/images/user17.png",
|
||||
badgeBgColor: "#5570F1",
|
||||
newTag: "New",
|
||||
number: "3",
|
||||
time: "8:00 AM"
|
||||
},
|
||||
];
|
||||
|
||||
const Messages = () => {
|
||||
// Dropdown
|
||||
const [anchorEl, setAnchorEl] = React.useState(null);
|
||||
const open = Boolean(anchorEl);
|
||||
const handleClick = (event) => {
|
||||
setAnchorEl(event.currentTarget);
|
||||
};
|
||||
const handleClose = () => {
|
||||
setAnchorEl(null);
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "20px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
justifyContent: "space-between",
|
||||
alignItems: "center",
|
||||
borderBottom: "1px solid #EEF0F7",
|
||||
paddingBottom: "10px",
|
||||
mb: "10px",
|
||||
}}
|
||||
className="for-dark-bottom-border"
|
||||
>
|
||||
<Typography
|
||||
as="h3"
|
||||
sx={{
|
||||
fontSize: 17,
|
||||
fontWeight: 500,
|
||||
}}
|
||||
>
|
||||
Messages
|
||||
</Typography>
|
||||
|
||||
<Box>
|
||||
<IconButton
|
||||
onClick={handleClick}
|
||||
size="small"
|
||||
aria-controls={open ? "account-menu" : undefined}
|
||||
aria-haspopup="true"
|
||||
aria-expanded={open ? "true" : undefined}
|
||||
>
|
||||
<MoreHorizIcon />
|
||||
</IconButton>
|
||||
</Box>
|
||||
<Menu
|
||||
anchorEl={anchorEl}
|
||||
id="account-menu"
|
||||
open={open}
|
||||
onClose={handleClose}
|
||||
onClick={handleClose}
|
||||
PaperProps={{
|
||||
elevation: 0,
|
||||
sx: {
|
||||
overflow: "visible",
|
||||
filter: "drop-shadow(0px 2px 8px rgba(0,0,0,0.32))",
|
||||
mt: 1.5,
|
||||
"& .MuiAvatar-root": {
|
||||
width: 32,
|
||||
height: 32,
|
||||
ml: -0.5,
|
||||
mr: 1,
|
||||
},
|
||||
"&:before": {
|
||||
content: '""',
|
||||
display: "block",
|
||||
position: "absolute",
|
||||
top: 0,
|
||||
right: 14,
|
||||
width: 10,
|
||||
height: 10,
|
||||
bgcolor: "background.paper",
|
||||
transform: "translateY(-50%) rotate(45deg)",
|
||||
zIndex: 0,
|
||||
},
|
||||
},
|
||||
}}
|
||||
transformOrigin={{ horizontal: "right", vertical: "top" }}
|
||||
anchorOrigin={{ horizontal: "right", vertical: "bottom" }}
|
||||
>
|
||||
<MenuItem sx={{ fontSize: '14px' }}>Last 15 Days</MenuItem>
|
||||
<MenuItem sx={{ fontSize: '14px' }}>Last Month</MenuItem>
|
||||
<MenuItem sx={{ fontSize: '14px' }}>Last Year</MenuItem>
|
||||
</Menu>
|
||||
</Box>
|
||||
|
||||
<Box>
|
||||
{MessagesData.slice(0, 3).map((message) => (
|
||||
<div className={styles.messagesList} key={message.id}>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
justifyContent: "space-between",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
justifyContent: "space-between",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
position: "relative"
|
||||
}}
|
||||
>
|
||||
<div>
|
||||
<img
|
||||
src={message.image}
|
||||
alt="User"
|
||||
width="45"
|
||||
height="45"
|
||||
className="borderRadius10"
|
||||
/>
|
||||
</div>
|
||||
<Badge
|
||||
style={{ backgroundColor: `${message.badgeBgColor}` }}
|
||||
sx={{
|
||||
width: '13px',
|
||||
height: '13px',
|
||||
position: 'absolute',
|
||||
borderRadius: '100%',
|
||||
border: '2px solid #fff',
|
||||
top: '0',
|
||||
right: '-5px'
|
||||
}}
|
||||
></Badge>
|
||||
</Box>
|
||||
|
||||
<Box className="ml-1">
|
||||
<Typography as="h4" fontSize="13px" fontWeight="500" mb="5px">
|
||||
{message.name}
|
||||
</Typography>
|
||||
<Typography fontSize="12px">
|
||||
{message.text}
|
||||
</Typography>
|
||||
</Box>
|
||||
</Box>
|
||||
|
||||
<Box textAlign="right">
|
||||
<Typography component="div">
|
||||
<Typography
|
||||
component="span"
|
||||
sx={{
|
||||
background: "#FEF5EA",
|
||||
color: "#260944",
|
||||
borderRadius: "8px",
|
||||
fontSize: "10px",
|
||||
padding: "2px 7px",
|
||||
display: "inline-block",
|
||||
}}
|
||||
className="mr-10px"
|
||||
>
|
||||
{message.newTag}
|
||||
</Typography>
|
||||
|
||||
<Typography
|
||||
component="span"
|
||||
sx={{
|
||||
background: "#FFCC91",
|
||||
color: "#260944",
|
||||
borderRadius: "8px",
|
||||
fontSize: "10px",
|
||||
width: "20px",
|
||||
height: "20px",
|
||||
display: "inline-block",
|
||||
lineHeight: "20px",
|
||||
textAlign: "center",
|
||||
borderRadius: "100px",
|
||||
}}
|
||||
>
|
||||
{message.number}
|
||||
</Typography>
|
||||
</Typography>
|
||||
|
||||
<Typography
|
||||
sx={{
|
||||
color: "#A9A9C8",
|
||||
fontSize: "11px",
|
||||
marginTop: "5px",
|
||||
}}
|
||||
>
|
||||
{message.time}
|
||||
</Typography>
|
||||
</Box>
|
||||
</Box>
|
||||
</div>
|
||||
))}
|
||||
</Box>
|
||||
</Card>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default Messages;
|
||||
@@ -1,166 +0,0 @@
|
||||
import React from "react";
|
||||
import { Box, Typography } from "@mui/material";
|
||||
import Card from "@mui/material/Card";
|
||||
import Menu from "@mui/material/Menu";
|
||||
import MenuItem from "@mui/material/MenuItem";
|
||||
import IconButton from "@mui/material/IconButton";
|
||||
import MoreHorizIcon from "@mui/icons-material/MoreHoriz";
|
||||
|
||||
const MyPlanningData = [
|
||||
{
|
||||
id: "1",
|
||||
image: "/images/3d1.png",
|
||||
title: "Animation Learning",
|
||||
dateTime: "Dec 14, 08:30 PM",
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
image: "/images/3d2.png",
|
||||
title: "UI/UX Research",
|
||||
dateTime: "Dec 15, 09:30 PM",
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
image: "/images/3d3.png",
|
||||
title: "Machine Learning",
|
||||
dateTime: "Dec 16, 10:30 PM",
|
||||
},
|
||||
{
|
||||
id: "4",
|
||||
image: "/images/3d4.png",
|
||||
title: "Web Development",
|
||||
dateTime: "Dec 17, 11:30 PM",
|
||||
},
|
||||
];
|
||||
|
||||
const MyPlanning = () => {
|
||||
// Dropdown
|
||||
const [anchorEl, setAnchorEl] = React.useState(null);
|
||||
const open = Boolean(anchorEl);
|
||||
const handleClick = (event) => {
|
||||
setAnchorEl(event.currentTarget);
|
||||
};
|
||||
const handleClose = () => {
|
||||
setAnchorEl(null);
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "25px 20px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
justifyContent: "space-between",
|
||||
alignItems: "center",
|
||||
borderBottom: "1px solid #EEF0F7",
|
||||
paddingBottom: "10px",
|
||||
mb: "20px",
|
||||
}}
|
||||
className="for-dark-bottom-border"
|
||||
>
|
||||
<Typography
|
||||
as="h3"
|
||||
sx={{
|
||||
fontSize: 16,
|
||||
fontWeight: 500,
|
||||
}}
|
||||
>
|
||||
My Planning
|
||||
</Typography>
|
||||
|
||||
<Box>
|
||||
<IconButton
|
||||
onClick={handleClick}
|
||||
size="small"
|
||||
aria-controls={open ? "account-menu" : undefined}
|
||||
aria-haspopup="true"
|
||||
aria-expanded={open ? "true" : undefined}
|
||||
>
|
||||
<MoreHorizIcon />
|
||||
</IconButton>
|
||||
</Box>
|
||||
<Menu
|
||||
anchorEl={anchorEl}
|
||||
id="account-menu"
|
||||
open={open}
|
||||
onClose={handleClose}
|
||||
onClick={handleClose}
|
||||
PaperProps={{
|
||||
elevation: 0,
|
||||
sx: {
|
||||
overflow: "visible",
|
||||
filter: "drop-shadow(0px 2px 8px rgba(0,0,0,0.32))",
|
||||
mt: 1.5,
|
||||
"& .MuiAvatar-root": {
|
||||
width: 32,
|
||||
height: 32,
|
||||
ml: -0.5,
|
||||
mr: 1,
|
||||
},
|
||||
"&:before": {
|
||||
content: '""',
|
||||
display: "block",
|
||||
position: "absolute",
|
||||
top: 0,
|
||||
right: 14,
|
||||
width: 10,
|
||||
height: 10,
|
||||
bgcolor: "background.paper",
|
||||
transform: "translateY(-50%) rotate(45deg)",
|
||||
zIndex: 0,
|
||||
},
|
||||
},
|
||||
}}
|
||||
transformOrigin={{ horizontal: "right", vertical: "top" }}
|
||||
anchorOrigin={{ horizontal: "right", vertical: "bottom" }}
|
||||
>
|
||||
<MenuItem sx={{ fontSize: '14px' }}>Last 15 Days</MenuItem>
|
||||
<MenuItem sx={{ fontSize: '14px' }}>Last Month</MenuItem>
|
||||
<MenuItem sx={{ fontSize: '14px' }}>Last Year</MenuItem>
|
||||
</Menu>
|
||||
</Box>
|
||||
|
||||
{MyPlanningData.map((plan) => (
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
backgroundColor: "#F7F7FC",
|
||||
borderRadius: '10px',
|
||||
p: "25px 15px",
|
||||
mt: "15px"
|
||||
}}
|
||||
key={plan.id}
|
||||
className="dark-BG-101010"
|
||||
>
|
||||
<img
|
||||
src={plan.image}
|
||||
alt="Image"
|
||||
width="40px"
|
||||
height="40px"
|
||||
className="borderRadius10"
|
||||
/>
|
||||
|
||||
<Box className="ml-1">
|
||||
<Typography as="h4" fontWeight={500} fontSize="13px">
|
||||
{plan.title}
|
||||
</Typography>
|
||||
<Typography color="#A9A9C8;" fontSize="12px">
|
||||
{plan.dateTime}
|
||||
</Typography>
|
||||
</Box>
|
||||
</Box>
|
||||
))}
|
||||
</Card>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default MyPlanning;
|
||||
@@ -1,173 +0,0 @@
|
||||
import React from "react";
|
||||
import { Box } from "@mui/material";
|
||||
import Card from "@mui/material/Card";
|
||||
import { Typography } from "@mui/material";
|
||||
import InputLabel from "@mui/material/InputLabel";
|
||||
import MenuItem from "@mui/material/MenuItem";
|
||||
import FormControl from "@mui/material/FormControl";
|
||||
import Select from "@mui/material/Select";
|
||||
import Grid from "@mui/material/Grid";
|
||||
import Button from "@mui/material/Button";
|
||||
|
||||
const TopInstructorData = [
|
||||
{
|
||||
id: "1",
|
||||
image: "/images/user9.png",
|
||||
name: "Melanie Grutt",
|
||||
userName: "@melgrutt",
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
image: "/images/user10.png",
|
||||
name: "Theron Trump",
|
||||
userName: "@therontrump",
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
image: "/images/user11.png",
|
||||
name: "Johen Mark",
|
||||
userName: "@johenmark",
|
||||
},
|
||||
{
|
||||
id: "4",
|
||||
image: "/images/user12.png",
|
||||
name: "Nicholas Tanner",
|
||||
userName: "@nilyeager",
|
||||
},
|
||||
{
|
||||
id: "5",
|
||||
image: "/images/user13.png",
|
||||
name: "Tyler Mark",
|
||||
userName: "@tylemark",
|
||||
},
|
||||
{
|
||||
id: "6",
|
||||
image: "/images/user14.png",
|
||||
name: "Martina Albart",
|
||||
userName: "@martina",
|
||||
},
|
||||
];
|
||||
|
||||
const TopInstructor = () => {
|
||||
// Select Form
|
||||
const [select, setSelect] = React.useState("");
|
||||
const handleChange = (event) => {
|
||||
setSelect(event.target.value);
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "25px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
justifyContent: "space-between",
|
||||
borderBottom: "1px solid #EEF0F7",
|
||||
paddingBottom: "10px",
|
||||
marginBottom: "10px",
|
||||
}}
|
||||
className="for-dark-bottom-border"
|
||||
>
|
||||
<Typography
|
||||
as="h3"
|
||||
sx={{
|
||||
fontSize: 18,
|
||||
fontWeight: 500,
|
||||
}}
|
||||
>
|
||||
Top Instructor
|
||||
</Typography>
|
||||
<Box>
|
||||
<FormControl sx={{ minWidth: 120 }} size="small">
|
||||
<InputLabel id="demo-select-small" sx={{ fontSize: '14px' }}>Select</InputLabel>
|
||||
<Select
|
||||
labelId="demo-select-small"
|
||||
id="demo-select-small"
|
||||
value={select}
|
||||
label="Select"
|
||||
onChange={handleChange}
|
||||
sx={{ fontSize: '14px' }}
|
||||
>
|
||||
<MenuItem value={0} sx={{ fontSize: '14px' }}>Today</MenuItem>
|
||||
<MenuItem value={1} sx={{ fontSize: '14px' }}>This Week</MenuItem>
|
||||
<MenuItem value={2} sx={{ fontSize: '14px' }}>Last Month</MenuItem>
|
||||
<MenuItem value={3} sx={{ fontSize: '14px' }}>Last 12 Months</MenuItem>
|
||||
<MenuItem value={4} sx={{ fontSize: '14px' }}>All Time</MenuItem>
|
||||
</Select>
|
||||
</FormControl>
|
||||
</Box>
|
||||
</Box>
|
||||
|
||||
<Grid container rowSpacing={1} columnSpacing={{ xs: 1, sm: 2, md: 2 }}>
|
||||
{TopInstructorData.map((instructor) => (
|
||||
<Grid item xs={12} md={12} lg={6} key={instructor.id}>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
justifyContent: "space-between",
|
||||
backgroundColor: "#F7F7FC",
|
||||
borderRadius: "10px",
|
||||
p: "18px 15px",
|
||||
mt: "5px",
|
||||
}}
|
||||
className="dark-BG-101010"
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
}}
|
||||
>
|
||||
<img
|
||||
src={instructor.image}
|
||||
alt="Image"
|
||||
width="45px"
|
||||
height="45px"
|
||||
className="borderRadius10"
|
||||
/>
|
||||
|
||||
<Box className="ml-1">
|
||||
<Typography as="h4" fontWeight={500} fontSize="13px">
|
||||
{instructor.name}
|
||||
</Typography>
|
||||
<Typography color="#A9A9C8;" fontSize="12px">
|
||||
{instructor.userName}
|
||||
</Typography>
|
||||
</Box>
|
||||
</Box>
|
||||
|
||||
<Box>
|
||||
<Button
|
||||
sx={{
|
||||
background: "#fff",
|
||||
color: "#A9A9C8",
|
||||
width: "30px",
|
||||
height: "30px",
|
||||
p: "0",
|
||||
minWidth: "auto",
|
||||
fontSize: "17px",
|
||||
borderRadius: "100%",
|
||||
}}
|
||||
>
|
||||
<i className="ri-add-line"></i>
|
||||
</Button>
|
||||
</Box>
|
||||
</Box>
|
||||
</Grid>
|
||||
))}
|
||||
</Grid>
|
||||
</Card>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default TopInstructor;
|
||||
@@ -1,155 +0,0 @@
|
||||
import React from "react";
|
||||
import { Box } from "@mui/material";
|
||||
import Card from "@mui/material/Card";
|
||||
import { Typography } from "@mui/material";
|
||||
import InputLabel from "@mui/material/InputLabel";
|
||||
import MenuItem from "@mui/material/MenuItem";
|
||||
import FormControl from "@mui/material/FormControl";
|
||||
import Select from "@mui/material/Select";
|
||||
import Grid from "@mui/material/Grid";
|
||||
|
||||
const TopStudentsData = [
|
||||
{
|
||||
id: "1",
|
||||
image: "/images/user18.png",
|
||||
name: "Melanie Grutt",
|
||||
userName: "@melgrutt",
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
image: "/images/user19.png",
|
||||
name: "Theron Trump",
|
||||
userName: "@therontrump",
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
image: "/images/user20.png",
|
||||
name: "Johen Mark",
|
||||
userName: "@johenmark",
|
||||
},
|
||||
{
|
||||
id: "4",
|
||||
image: "/images/user21.png",
|
||||
name: "Nicholas Tanner",
|
||||
userName: "@nilyeager",
|
||||
},
|
||||
{
|
||||
id: "5",
|
||||
image: "/images/user22.png",
|
||||
name: "Tyler Mark",
|
||||
userName: "@tylemark",
|
||||
},
|
||||
{
|
||||
id: "6",
|
||||
image: "/images/user23.png",
|
||||
name: "Martina Albart",
|
||||
userName: "@martina",
|
||||
},
|
||||
];
|
||||
|
||||
const TopStudents = () => {
|
||||
// Select Form
|
||||
const [select, setSelect] = React.useState("");
|
||||
const handleChange = (event) => {
|
||||
setSelect(event.target.value);
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "25px 20px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
justifyContent: "space-between",
|
||||
borderBottom: "1px solid #EEF0F7",
|
||||
paddingBottom: "10px",
|
||||
marginBottom: "10px",
|
||||
}}
|
||||
className="for-dark-bottom-border"
|
||||
>
|
||||
<Typography
|
||||
as="h3"
|
||||
sx={{
|
||||
fontSize: 17,
|
||||
fontWeight: 500,
|
||||
}}
|
||||
>
|
||||
Top Students
|
||||
</Typography>
|
||||
<Box>
|
||||
<FormControl sx={{ minWidth: 120 }} size="small">
|
||||
<InputLabel id="demo-select-small" sx={{ fontSize: '14px' }}>Select</InputLabel>
|
||||
<Select
|
||||
labelId="demo-select-small"
|
||||
id="demo-select-small"
|
||||
value={select}
|
||||
label="Select"
|
||||
onChange={handleChange}
|
||||
sx={{ fontSize: '14px' }}
|
||||
>
|
||||
<MenuItem value={0} sx={{ fontSize: '14px' }}>Today</MenuItem>
|
||||
<MenuItem value={1} sx={{ fontSize: '14px' }}>This Week</MenuItem>
|
||||
<MenuItem value={2} sx={{ fontSize: '14px' }}>Last Month</MenuItem>
|
||||
<MenuItem value={3} sx={{ fontSize: '14px' }}>Last 12 Months</MenuItem>
|
||||
<MenuItem value={4} sx={{ fontSize: '14px' }}>All Time</MenuItem>
|
||||
</Select>
|
||||
</FormControl>
|
||||
</Box>
|
||||
</Box>
|
||||
|
||||
<Grid container rowSpacing={1} columnSpacing={{ xs: 1, sm: 2, md: 2 }}>
|
||||
{TopStudentsData.map((student) => (
|
||||
<Grid item xs={12} md={6} lg={6} key={student.id}>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
justifyContent: "space-between",
|
||||
backgroundColor: "#F7F7FC",
|
||||
borderRadius: "10px",
|
||||
p: "15px 12px",
|
||||
mt: "10px",
|
||||
}}
|
||||
className="dark-BG-101010"
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
}}
|
||||
>
|
||||
<img
|
||||
src={student.image}
|
||||
alt="Image"
|
||||
width="35px"
|
||||
height="35px"
|
||||
className="borRadius100"
|
||||
/>
|
||||
|
||||
<Box className="ml-1">
|
||||
<Typography as="h4" fontWeight={500} fontSize="12.5px">
|
||||
{student.name}
|
||||
</Typography>
|
||||
<Typography color="#A9A9C8;" fontSize="12px">
|
||||
{student.userName}
|
||||
</Typography>
|
||||
</Box>
|
||||
</Box>
|
||||
</Box>
|
||||
</Grid>
|
||||
))}
|
||||
</Grid>
|
||||
</Card>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default TopStudents;
|
||||
@@ -1,44 +0,0 @@
|
||||
.box {
|
||||
background: #757FEF;
|
||||
border-radius: 10px;
|
||||
padding: 25px 20px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
.boxList {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
position: relative;
|
||||
padding-left: 17px;
|
||||
border-bottom: 1px solid #878fe5;
|
||||
padding-bottom: 18px;
|
||||
margin-bottom: 18px;
|
||||
}
|
||||
.boxList:last-child {
|
||||
border-bottom: none;
|
||||
padding-bottom: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.boxList::before {
|
||||
content: '';
|
||||
background: linear-gradient(149.1deg, #99B8F3 14.61%, #177FCB 130.18%);
|
||||
box-shadow: 0px 2.98686px 13.4409px rgba(126, 172, 235, 0.25);
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 5px;
|
||||
border-radius: 100px;
|
||||
}
|
||||
.boxList h4 {
|
||||
margin: 0;
|
||||
color: #fff;
|
||||
font-size: 13px;
|
||||
font-weight: 500;
|
||||
}
|
||||
.boxList p {
|
||||
margin: 0;
|
||||
color: #fff;
|
||||
font-size: 12px;
|
||||
font-weight: 500;
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
import React from "react";
|
||||
import styles from "@/components/Dashboard/LMSCourses/TotalWatched/TotalWatched.module.css";
|
||||
|
||||
const TotalWatched = () => {
|
||||
return (
|
||||
<>
|
||||
<div className={styles.box}>
|
||||
<div className={styles.boxList}>
|
||||
<h4>Total Watched</h4>
|
||||
<p>
|
||||
<i className="ri-bar-chart-line"></i> 66:15h
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className={styles.boxList}>
|
||||
<h4>Assignment Completed</h4>
|
||||
<p>81%</p>
|
||||
</div>
|
||||
|
||||
<div className={styles.boxList}>
|
||||
<h4>Monthly Progress</h4>
|
||||
<p>81%</p>
|
||||
</div>
|
||||
|
||||
<div className={styles.boxList}>
|
||||
<h4>Overall Pass Percentage</h4>
|
||||
<p>81%</p>
|
||||
</div>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default TotalWatched;
|
||||
@@ -1,138 +0,0 @@
|
||||
import React from "react";
|
||||
import { Box } from "@mui/material";
|
||||
import Card from "@mui/material/Card";
|
||||
import { Typography } from "@mui/material";
|
||||
import InputLabel from "@mui/material/InputLabel";
|
||||
import MenuItem from "@mui/material/MenuItem";
|
||||
import FormControl from "@mui/material/FormControl";
|
||||
import Select from "@mui/material/Select";
|
||||
import {
|
||||
LineChart,
|
||||
Line,
|
||||
XAxis,
|
||||
YAxis,
|
||||
CartesianGrid,
|
||||
Tooltip,
|
||||
Legend,
|
||||
ResponsiveContainer
|
||||
} from "recharts";
|
||||
|
||||
const data = [
|
||||
{
|
||||
name: "01 Jan",
|
||||
Practice: 15,
|
||||
Theory: 10,
|
||||
},
|
||||
{
|
||||
name: "02 Jan",
|
||||
Practice: 11,
|
||||
Theory: 16,
|
||||
},
|
||||
{
|
||||
name: "03 Jan",
|
||||
Practice: 17,
|
||||
Theory: 12,
|
||||
},
|
||||
{
|
||||
name: "04 Jan",
|
||||
Practice: 13,
|
||||
Theory: 18,
|
||||
},
|
||||
{
|
||||
name: "05 Jan",
|
||||
Practice: 19,
|
||||
Theory: 14,
|
||||
},
|
||||
{
|
||||
name: "06 Jan",
|
||||
Practice: 15,
|
||||
Theory: 20,
|
||||
},
|
||||
{
|
||||
name: "07 Jan",
|
||||
Practice: 16,
|
||||
Theory: 22,
|
||||
},
|
||||
];
|
||||
|
||||
const YourProgress = () => {
|
||||
// Select Form
|
||||
const [select, setSelect] = React.useState("");
|
||||
const handleChange = (event) => {
|
||||
setSelect(event.target.value);
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<Card
|
||||
sx={{
|
||||
boxShadow: "none",
|
||||
borderRadius: "10px",
|
||||
p: "25px",
|
||||
mb: "15px",
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
sx={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
justifyContent: "space-between",
|
||||
borderBottom: "1px solid #EEF0F7",
|
||||
paddingBottom: "10px",
|
||||
marginBottom: "30px",
|
||||
}}
|
||||
className="for-dark-bottom-border"
|
||||
>
|
||||
<Typography
|
||||
as="h3"
|
||||
sx={{
|
||||
fontSize: 18,
|
||||
fontWeight: 500,
|
||||
}}
|
||||
>
|
||||
Your Progress
|
||||
</Typography>
|
||||
<Box>
|
||||
<FormControl sx={{ minWidth: 120 }} size="small">
|
||||
<InputLabel id="demo-select-small" sx={{ fontSize: '14px' }}>Select</InputLabel>
|
||||
<Select
|
||||
labelId="demo-select-small"
|
||||
id="demo-select-small"
|
||||
value={select}
|
||||
label="Select"
|
||||
onChange={handleChange}
|
||||
sx={{ fontSize: '14px' }}
|
||||
>
|
||||
<MenuItem value={0} sx={{ fontSize: '14px' }}>Today</MenuItem>
|
||||
<MenuItem value={1} sx={{ fontSize: '14px' }}>This Week</MenuItem>
|
||||
<MenuItem value={2} sx={{ fontSize: '14px' }}>Last Month</MenuItem>
|
||||
<MenuItem value={3} sx={{ fontSize: '14px' }}>Last 12 Months</MenuItem>
|
||||
<MenuItem value={4} sx={{ fontSize: '14px' }}>All Time</MenuItem>
|
||||
</Select>
|
||||
</FormControl>
|
||||
</Box>
|
||||
</Box>
|
||||
|
||||
<ResponsiveContainer width="100%" aspect={2.0/1.0}>
|
||||
<LineChart data={data}>
|
||||
<CartesianGrid strokeDasharray="3 3" stroke="#EDEFF5" />
|
||||
<XAxis dataKey="name" padding={{ left: 30, right: 30 }} stroke="#A9A9C8" fontSize={14} />
|
||||
<YAxis unit=" Hr" stroke="#A9A9C8" fontSize={14} />
|
||||
<Tooltip />
|
||||
<Legend />
|
||||
<Line
|
||||
type="monotone"
|
||||
dataKey="Theory"
|
||||
stroke="#757FEF"
|
||||
activeDot={{ r: 8 }}
|
||||
unit=" Hours"
|
||||
/>
|
||||
<Line type="monotone" dataKey="Practice" stroke="#2DB6F5" unit=" Hours" />
|
||||
</LineChart>
|
||||
</ResponsiveContainer>
|
||||
</Card>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default YourProgress;
|
||||
@@ -1,56 +0,0 @@
|
||||
.timelineList .tList {
|
||||
position: relative;
|
||||
margin-bottom: 15px;
|
||||
padding-bottom: 15px;
|
||||
border-bottom: 1px solid #F7FAFF;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.timelineList .tList:last-child {
|
||||
border: none;
|
||||
padding-bottom: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.timelineList .tList .content {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.timelineList .tList .content img {
|
||||
margin-right: 10px;
|
||||
width: 27px;
|
||||
}
|
||||
.timelineList .tList .content h5 {
|
||||
margin: 0;
|
||||
color: #5B5B98;
|
||||
font-size: 13px;
|
||||
font-weight: 500;
|
||||
}
|
||||
.timelineList .tList .date {
|
||||
color: #A9A9C8;
|
||||
font-size: 12px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 1800px) {
|
||||
.timelineList .tList {
|
||||
margin-bottom: 16.5px;
|
||||
padding-bottom: 16.5px;
|
||||
}
|
||||
}
|
||||
|
||||
[dir="rtl"] .timelineList .tList .content img {
|
||||
margin-right: 0;
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
/* For dark mode */
|
||||
[class="dark"] .timelineList .tList {
|
||||
border-bottom: 1px solid var(--borderColor);
|
||||
}
|
||||
[class="dark"] .timelineList .tList:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
[class="dark"] .timelineList .tList .content h5 {
|
||||
color: var(--darkHeadingTextColor);
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user