Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions .env
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
VITE_APP_VERSION = v1.5.0
VITE_APP_VERSION = v1.6.0
GENERATE_SOURCEMAP = false

## Public URL
PUBLIC_URL = https://mantisdashboard.io
VITE_APP_BASE_NAME = /free

VITE_APP_BASE_NAME = /free
3 changes: 2 additions & 1 deletion .prettierrc
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@
"singleQuote": true,
"trailingComma": "none",
"tabWidth": 2,
"useTabs": false
"useTabs": false,
"endOfLine": "lf"
}
48 changes: 32 additions & 16 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -32,42 +32,58 @@ export default [
sourceType: 'module',
parserOptions: {
ecmaFeatures: {
jsx: true // ✅ Enable JSX parsing
jsx: true
}
}
},

settings: {
react: {
version: 'detect' // ✅ Detect the installed React version
version: 'detect'
}
},

rules: {
'react/jsx-filename-extension': ['error', { extensions: ['.js', '.jsx'] }],
'react/react-in-jsx-scope': 'off',
'react/jsx-filename-extension': 'off',
'no-param-reassign': 'off',
'react/prop-types': 'off',
'react/require-default-props': 'off',
'react/no-array-index-key': 'off',
'react/react-in-jsx-scope': 'off',
'react/jsx-props-no-spreading': 'off',
'react-hooks/rules-of-hooks': 'error',
'react-hooks/exhaustive-deps': 'warn',
'import/order': 'off',
'no-console': 'off',
'no-shadow': 'off',
'import/no-cycle': 'off',
'import/no-extraneous-dependencies': 'off',
'jsx-a11y/label-has-associated-control': 'off',
'jsx-a11y/no-autofocus': 'off',
'react/jsx-uses-react': 'off',
'react/jsx-uses-vars': 'error',
'react-hooks/rules-of-hooks': 'error',
'react-hooks/exhaustive-deps': 'warn',
'no-unused-vars': 'off',

'prettier/prettier': [
'warn',
'no-restricted-imports': [
'error',
{
bracketSpacing: true,
printWidth: 140,
singleQuote: true,
trailingComma: 'none',
tabWidth: 2,
useTabs: false
patterns: ['@mui/*/*/*', '!@mui/material/test-utils/*']
}
]
],

'no-unused-vars': [
'error',
{
vars: 'all',
args: 'none'
}
],

'prettier/prettier': 'warn'
}
},
{
ignores: ['node_modules/**'],
files: ['src/**/*.{js,jsx}']
}
];
];
27 changes: 23 additions & 4 deletions index.html
Original file line number Diff line number Diff line change
@@ -1,13 +1,32 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Mantis React Admin Dashboard</title>
<link rel="icon" href="/favicon.svg" />

<!-- Meta Tags-->
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta name="description" content="Mantis is react free admin template build using Vite" />
<meta name="theme-color" content="#1677ff" />
<meta name="title" content="Mantis - React Admin Dashboard Template by CodedThemes" />
<meta
name="description"
content="Start your next React project with Mantis admin template. It build with Reactjs, Material-UI, SWR, and Hook for faster web development."
/>
<meta
name="keywords"
content="react admin template, material-ui react dashboard template, reactjs admin template, reactjs dashboard, react backend template"
/>
<meta name="author" content="CodedThemes" />
<link rel="apple-touch-icon" href="/logo192.png" />
<title>Mantis React Free Admin Dashboard</title>

<!-- Performance hints for Vite -->
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />

<!-- DNS prefetch for external resources -->
<link rel="dns-prefetch" href="//fonts.googleapis.com" />
<link rel="dns-prefetch" href="//fonts.gstatic.com" />

<!-- this is to resolve issue in old safari browser in tablet -->
<script src="https://cdn.jsdelivr.net/npm/resize-observer-polyfill@1.5.1/dist/ResizeObserver.min.js"></script>
Expand Down
39 changes: 17 additions & 22 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "mantis-material-free-react",
"version": "1.5.0",
"version": "1.6.0",
"homepage": "https://mantisdashboard.io/free",
"author": {
"name": "CodedThemes",
Expand All @@ -10,41 +10,39 @@
"scripts": {
"start": "vite",
"build": "vite build",
"build-stage": "env-cmd -f .env.qa vite build",
"preview": "vite preview",
"lint": "eslint \"src/**/*.{js,jsx,ts,tsx}\"",
"lint:fix": "eslint --fix \"src/**/*.{js,jsx,ts,tsx}\"",
"prettier": "prettier --write \"src/**/*.{js,jsx,ts,tsx}\"",
"knip": "knip"
"prettier": "prettier --write \"src/**/*.{js,jsx,ts,tsx}\""
},
"dependencies": {
"@ant-design/colors": "8.0.0",
"@ant-design/icons": "6.0.0",
"@emotion/cache": "11.14.0",
"@emotion/react": "11.14.0",
"@emotion/styled": "11.14.0",
"@fontsource/inter": "5.2.5",
"@fontsource/poppins": "5.2.5",
"@fontsource/public-sans": "5.2.5",
"@fontsource/roboto": "5.2.5",
"@emotion/styled": "11.14.1",
"@fontsource/inter": "5.2.6",
"@fontsource/poppins": "5.2.6",
"@fontsource/public-sans": "5.2.6",
"@fontsource/roboto": "5.2.6",
"@mui/base": "5.0.0-beta.70",
"@mui/lab": "7.0.0-beta.10",
"@mui/material": "7.0.2",
"@mui/system": "7.0.2",
"@mui/x-charts": "8.1.0",
"@vitejs/plugin-react": "4.4.1",
"@vitejs/plugin-react": "4.6.0",
"formik": "2.4.6",
"framer-motion": "12.8.2",
"lodash-es": "4.17.21",
"react": "19.1.0",
"react-device-detect": "2.2.3",
"react-dom": "19.1.0",
"react-number-format": "5.4.4",
"react-router": "7.5.1",
"react-router-dom": "7.5.1",
"simplebar-react": "3.3.0",
"swr": "2.3.3",
"vite": "6.3.1",
"react-router": "7.6.3",
"react-router-dom": "7.6.3",
"simplebar-react": "3.3.2",
"swr": "2.3.4",
"vite": "7.0.4",
"vite-jsconfig-paths": "2.0.1",
"web-vitals": "4.2.4",
"yup": "1.6.1"
Expand All @@ -68,19 +66,16 @@
]
},
"devDependencies": {
"@eslint/compat": "1.2.8",
"@eslint/compat": "1.3.1",
"@eslint/eslintrc": "3.3.1",
"@eslint/js": "9.25.1",
"@eslint/js": "9.31.0",
"eslint": "9.25.1",
"eslint-config-prettier": "10.1.2",
"eslint-plugin-jsx-a11y": "6.10.2",
"eslint-plugin-prettier": "5.2.6",
"eslint-plugin-react": "7.37.4",
"eslint-plugin-react": "7.37.5",
"eslint-plugin-react-hooks": "5.2.0",
"immutable": "4.3.7",
"knip": "5.45.0",
"prettier": "3.5.3",
"prettier-eslint-cli": "8.0.1"
"prettier": "3.6.2"
},
"packageManager": "yarn@4.9.1"
}
4 changes: 2 additions & 2 deletions src/components/MainCard.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ MainCard.propTypes = {
border: PropTypes.bool,
boxShadow: PropTypes.bool,
children: PropTypes.node,
subheader: PropTypes.oneOfType([PropTypes.node, PropTypes.string]),
subheader: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
content: PropTypes.bool,
contentSX: PropTypes.object,
darkTitle: PropTypes.bool,
Expand All @@ -86,7 +86,7 @@ MainCard.propTypes = {
secondary: PropTypes.any,
shadow: PropTypes.string,
sx: PropTypes.object,
title: PropTypes.oneOfType([PropTypes.node, PropTypes.string]),
title: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
modal: PropTypes.bool,
ref: PropTypes.object,
others: PropTypes.any
Expand Down
15 changes: 0 additions & 15 deletions src/components/logo/LogoIcon.jsx
Original file line number Diff line number Diff line change
@@ -1,27 +1,12 @@
// material-ui
import { useTheme } from '@mui/material/styles';

/**
* if you want to use image instead of <svg> uncomment following.
*
* import logoIconDark from 'assets/images/logo-icon-dark.svg';
* import logoIcon from 'assets/images/logo-icon.svg';
* import { ThemeMode } from 'config';
*
*/

// ==============================|| LOGO ICON SVG ||============================== //

export default function LogoIcon() {
const theme = useTheme();

return (
/**
* if you want to use image instead of svg uncomment following, and comment out <svg> element.
*
* <img src={theme.palette.mode === ThemeMode.DARK ? logoIconDark : logoIcon} alt="Mantis" width="100" />
*
*/
<svg width="129" height="129" viewBox="0 0 129 129" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M7.27577 57.2242L17.5616 46.9384L17.5724 46.9276H36.9234L29.2238 54.6273L27.2358 56.6152L19.3511 64.5L20.3276 65.4792L64.5 109.649L109.649 64.5L101.761 56.6152L101.206 56.0572L92.0766 46.9276H111.428L111.438 46.9384L119.5 55.0002L129 64.5L64.5 129L0 64.5L7.27577 57.2242ZM64.5 0L101.77 37.2695H82.4185L64.5 19.3511L46.5816 37.2695H27.2305L64.5 0Z"
Expand Down
14 changes: 0 additions & 14 deletions src/components/logo/LogoMain.jsx
Original file line number Diff line number Diff line change
@@ -1,25 +1,11 @@
// material-ui
import { useTheme } from '@mui/material/styles';

/**
* if you want to use image instead of <svg> uncomment following.
*
* import logoDark from 'assets/images/logo-dark.svg';
* import logo from 'assets/images/logo.svg';
*
*/

// ==============================|| LOGO SVG ||============================== //

export default function LogoMain() {
const theme = useTheme();
return (
/**
* if you want to use image instead of svg uncomment following, and comment out <svg> element.
*
* <img src={theme.palette.mode === ThemeMode.DARK ? logoDark : logo} alt="Mantis" width="100" />
*
*/
<>
<svg width="118" height="35" viewBox="0 0 118 35" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
Expand Down
4 changes: 1 addition & 3 deletions src/components/third-party/SimpleBar.jsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import PropTypes from 'prop-types';

// material-ui
import { alpha, styled, useTheme } from '@mui/material/styles';
import { alpha, styled } from '@mui/material/styles';
import Box from '@mui/material/Box';

// third-party
Expand Down Expand Up @@ -43,8 +43,6 @@ const SimpleBarStyle = styled(SimpleBar)(({ theme }) => ({
// ==============================|| SIMPLE SCROLL BAR ||============================== //

export default function SimpleBarScroll({ children, sx, ...other }) {
const theme = useTheme();

return (
<>
<RootStyle>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ import Box from '@mui/material/Box';
import NavItem from './NavItem';
import { useGetMenuMaster } from 'api/menu';

// ==============================|| NAVIGATION - LIST GROUP ||============================== //

export default function NavGroup({ item }) {
const { menuMaster } = useGetMenuMaster();
const drawerOpen = menuMaster.isDashboardDrawerOpened;
Expand Down
10 changes: 2 additions & 8 deletions src/layout/Dashboard/Drawer/MiniDrawerStyled.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,17 +42,11 @@ const MiniDrawerStyled = styled(Drawer, { shouldForwardProp: (prop) => prop !==
variants: [
{
props: ({ open }) => open,
style: {
...openedMixin(theme),
'& .MuiDrawer-paper': openedMixin(theme)
}
style: { ...openedMixin(theme), '& .MuiDrawer-paper': openedMixin(theme) }
},
{
props: ({ open }) => !open,
style: {
...closedMixin(theme),
'& .MuiDrawer-paper': closedMixin(theme)
}
style: { ...closedMixin(theme), '& .MuiDrawer-paper': closedMixin(theme) }
}
]
}));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import PropTypes from 'prop-types';

// material-ui
import List from '@mui/material/List';
import ListItemButton from '@mui/material/ListItemButton';
Expand Down
Loading