New fleet code

This commit is contained in:
DESKTOP-GBA0BK8\Admin
2023-04-02 17:58:57 -04:00
parent b2400f4c2c
commit 947f31eafb
3566 changed files with 143341 additions and 99495 deletions
+16
View File
@@ -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
-3
View File
@@ -1,3 +0,0 @@
{
"extends": "next/core-web-vitals"
}
+13 -17
View File
@@ -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?
-8
View File
@@ -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
View File
@@ -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>
+1 -1
View File
@@ -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>
+4
View File
@@ -0,0 +1,4 @@
node_modules
build
coverage
.vscode
+16
View File
@@ -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"
}
+35 -23
View File
@@ -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 cant go back!**
If you arent 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 youre on your own.
You dont have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldnt feel obligated to use this feature. However we understand that this tool wouldnt be useful if you couldnt 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>
</>
);
}
-132
View File
@@ -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;
-47
View File
@@ -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;
-599
View File
@@ -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;
-599
View File
@@ -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;
-599
View File
@@ -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;
-218
View File
@@ -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;
-218
View File
@@ -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;
-291
View File
@@ -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;
-236
View File
@@ -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);
}
-294
View File
@@ -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;
-162
View File
@@ -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;
-433
View File
@@ -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;
-274
View File
@@ -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;
-926
View File
@@ -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 well 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;
-119
View File
@@ -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;
-189
View File
@@ -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;
-240
View File
@@ -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">
Gets 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;
-87
View File
@@ -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;
-414
View File
@@ -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;
-172
View File
@@ -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;
-114
View File
@@ -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