s
This commit is contained in:
parent
2fee3669b6
commit
e14f63684f
@ -1,36 +1,2 @@
|
|||||||
This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app).
|
# paymentIQ
|
||||||
|
Payment IQ Back Office
|
||||||
## Getting Started
|
|
||||||
|
|
||||||
First, run the development server:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
npm run dev
|
|
||||||
# or
|
|
||||||
yarn dev
|
|
||||||
# or
|
|
||||||
pnpm dev
|
|
||||||
# or
|
|
||||||
bun dev
|
|
||||||
```
|
|
||||||
|
|
||||||
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
|
|
||||||
|
|
||||||
You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
|
|
||||||
|
|
||||||
This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel.
|
|
||||||
|
|
||||||
## Learn More
|
|
||||||
|
|
||||||
To learn more about Next.js, take a look at the following resources:
|
|
||||||
|
|
||||||
- [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/app/building-your-application/deploying) for more details.
|
|
||||||
|
|||||||
80
payment-iq/app/components/Sidebar.tsx
Normal file
80
payment-iq/app/components/Sidebar.tsx
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
// components/SidebarLayout.tsx
|
||||||
|
import React from 'react';
|
||||||
|
import { styled } from '@mui/system';
|
||||||
|
import { Box, Typography, Button } from '@mui/material';
|
||||||
|
|
||||||
|
// Sidebar Container (styled using MUI System)
|
||||||
|
export const Sidebar = styled('div')(({ theme }) => ({
|
||||||
|
width: '240px',
|
||||||
|
backgroundColor: theme.palette.primary.main,
|
||||||
|
color: theme.palette.common.white,
|
||||||
|
padding: theme.spacing(2),
|
||||||
|
height: '100vh',
|
||||||
|
display: 'flex',
|
||||||
|
flexDirection: 'column',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
}));
|
||||||
|
|
||||||
|
// Main Content Area
|
||||||
|
export const MainContent = styled('div')(({ theme }) => ({
|
||||||
|
marginLeft: '240px',
|
||||||
|
padding: theme.spacing(3),
|
||||||
|
backgroundColor: theme.palette.background.paper,
|
||||||
|
minHeight: '100vh',
|
||||||
|
}));
|
||||||
|
|
||||||
|
// Sidebar Navigation Items
|
||||||
|
export const SidebarItem = styled('div')(({ theme }) => ({
|
||||||
|
padding: theme.spacing(1.5),
|
||||||
|
cursor: 'pointer',
|
||||||
|
'&:hover': {
|
||||||
|
backgroundColor: theme.palette.primary.dark,
|
||||||
|
},
|
||||||
|
}));
|
||||||
|
|
||||||
|
// Page Wrapper that holds Sidebar and Content
|
||||||
|
export const LayoutWrapper = styled('div')({
|
||||||
|
display: 'flex',
|
||||||
|
flexDirection: 'row',
|
||||||
|
height: '100vh',
|
||||||
|
});
|
||||||
|
|
||||||
|
// Sidebar Header
|
||||||
|
export const SidebarHeader = styled('div')(({ theme }) => ({
|
||||||
|
marginBottom: theme.spacing(2),
|
||||||
|
fontSize: '20px',
|
||||||
|
fontWeight: 600,
|
||||||
|
}));
|
||||||
|
|
||||||
|
const SidebarLayout = () => {
|
||||||
|
return (
|
||||||
|
<LayoutWrapper>
|
||||||
|
<Sidebar>
|
||||||
|
<SidebarHeader>Dashboard</SidebarHeader>
|
||||||
|
<SidebarItem>
|
||||||
|
<Typography variant="body1">Home</Typography>
|
||||||
|
</SidebarItem>
|
||||||
|
<SidebarItem>
|
||||||
|
<Typography variant="body1">Settings</Typography>
|
||||||
|
</SidebarItem>
|
||||||
|
<SidebarItem>
|
||||||
|
<Typography variant="body1">Profile</Typography>
|
||||||
|
</SidebarItem>
|
||||||
|
<Button variant="contained" color="secondary" fullWidth>
|
||||||
|
Logout
|
||||||
|
</Button>
|
||||||
|
</Sidebar>
|
||||||
|
|
||||||
|
<MainContent>
|
||||||
|
<Typography variant="h4" gutterBottom>
|
||||||
|
Welcome to the Dashboard!
|
||||||
|
</Typography>
|
||||||
|
<Typography variant="body1">
|
||||||
|
This is your main content area.
|
||||||
|
</Typography>
|
||||||
|
</MainContent>
|
||||||
|
</LayoutWrapper>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default SidebarLayout;
|
||||||
@ -1,95 +1,6 @@
|
|||||||
import Image from "next/image";
|
import Image from "next/image";
|
||||||
import styles from "./page.module.css";
|
import SidebarLayout from '@/app/components/Sidebar';
|
||||||
|
|
||||||
export default function Home() {
|
export default function Home() {
|
||||||
return (
|
return <SidebarLayout />;
|
||||||
<div className={styles.page}>
|
|
||||||
<main className={styles.main}>
|
|
||||||
<Image
|
|
||||||
className={styles.logo}
|
|
||||||
src="/next.svg"
|
|
||||||
alt="Next.js logo"
|
|
||||||
width={180}
|
|
||||||
height={38}
|
|
||||||
priority
|
|
||||||
/>
|
|
||||||
<ol>
|
|
||||||
<li>
|
|
||||||
Get started by editing <code>app/page.tsx</code>.
|
|
||||||
</li>
|
|
||||||
<li>Save and see your changes instantly.</li>
|
|
||||||
</ol>
|
|
||||||
|
|
||||||
<div className={styles.ctas}>
|
|
||||||
<a
|
|
||||||
className={styles.primary}
|
|
||||||
href="https://vercel.com/new?utm_source=create-next-app&utm_medium=appdir-template&utm_campaign=create-next-app"
|
|
||||||
target="_blank"
|
|
||||||
rel="noopener noreferrer"
|
|
||||||
>
|
|
||||||
<Image
|
|
||||||
className={styles.logo}
|
|
||||||
src="/vercel.svg"
|
|
||||||
alt="Vercel logomark"
|
|
||||||
width={20}
|
|
||||||
height={20}
|
|
||||||
/>
|
|
||||||
Deploy now
|
|
||||||
</a>
|
|
||||||
<a
|
|
||||||
href="https://nextjs.org/docs?utm_source=create-next-app&utm_medium=appdir-template&utm_campaign=create-next-app"
|
|
||||||
target="_blank"
|
|
||||||
rel="noopener noreferrer"
|
|
||||||
className={styles.secondary}
|
|
||||||
>
|
|
||||||
Read our docs
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</main>
|
|
||||||
<footer className={styles.footer}>
|
|
||||||
<a
|
|
||||||
href="https://nextjs.org/learn?utm_source=create-next-app&utm_medium=appdir-template&utm_campaign=create-next-app"
|
|
||||||
target="_blank"
|
|
||||||
rel="noopener noreferrer"
|
|
||||||
>
|
|
||||||
<Image
|
|
||||||
aria-hidden
|
|
||||||
src="/file.svg"
|
|
||||||
alt="File icon"
|
|
||||||
width={16}
|
|
||||||
height={16}
|
|
||||||
/>
|
|
||||||
Learn
|
|
||||||
</a>
|
|
||||||
<a
|
|
||||||
href="https://vercel.com/templates?framework=next.js&utm_source=create-next-app&utm_medium=appdir-template&utm_campaign=create-next-app"
|
|
||||||
target="_blank"
|
|
||||||
rel="noopener noreferrer"
|
|
||||||
>
|
|
||||||
<Image
|
|
||||||
aria-hidden
|
|
||||||
src="/window.svg"
|
|
||||||
alt="Window icon"
|
|
||||||
width={16}
|
|
||||||
height={16}
|
|
||||||
/>
|
|
||||||
Examples
|
|
||||||
</a>
|
|
||||||
<a
|
|
||||||
href="https://nextjs.org?utm_source=create-next-app&utm_medium=appdir-template&utm_campaign=create-next-app"
|
|
||||||
target="_blank"
|
|
||||||
rel="noopener noreferrer"
|
|
||||||
>
|
|
||||||
<Image
|
|
||||||
aria-hidden
|
|
||||||
src="/globe.svg"
|
|
||||||
alt="Globe icon"
|
|
||||||
width={16}
|
|
||||||
height={16}
|
|
||||||
/>
|
|
||||||
Go to nextjs.org →
|
|
||||||
</a>
|
|
||||||
</footer>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|||||||
75
payment-iq/config/theme.ts
Normal file
75
payment-iq/config/theme.ts
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
import { createTheme } from '@mui/material/styles';
|
||||||
|
|
||||||
|
// Define your color palette
|
||||||
|
const lightPalette = {
|
||||||
|
primary: {
|
||||||
|
main: '#1976d2', // Blue color
|
||||||
|
},
|
||||||
|
secondary: {
|
||||||
|
main: '#d32f2f', // Red color
|
||||||
|
},
|
||||||
|
background: {
|
||||||
|
default: '#fafafa',
|
||||||
|
paper: '#ffffff',
|
||||||
|
},
|
||||||
|
text: {
|
||||||
|
primary: '#000000',
|
||||||
|
secondary: '#555555',
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
const darkPalette = {
|
||||||
|
primary: {
|
||||||
|
main: '#90caf9', // Light blue
|
||||||
|
},
|
||||||
|
secondary: {
|
||||||
|
main: '#f48fb1', // Light pink
|
||||||
|
},
|
||||||
|
background: {
|
||||||
|
default: '#121212',
|
||||||
|
paper: '#1d1d1d',
|
||||||
|
},
|
||||||
|
text: {
|
||||||
|
primary: '#ffffff',
|
||||||
|
secondary: '#bbbbbb',
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
// Typography customization
|
||||||
|
const typography = {
|
||||||
|
fontFamily: '"Roboto", "Helvetica", "Arial", sans-serif',
|
||||||
|
h1: {
|
||||||
|
fontSize: '3rem',
|
||||||
|
fontWeight: 700,
|
||||||
|
},
|
||||||
|
h2: {
|
||||||
|
fontSize: '2.5rem',
|
||||||
|
fontWeight: 700,
|
||||||
|
},
|
||||||
|
body1: {
|
||||||
|
fontSize: '1rem',
|
||||||
|
fontWeight: 400,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
// Create the theme based on the light or dark mode preference
|
||||||
|
const theme = createTheme({
|
||||||
|
palette: {
|
||||||
|
mode: 'light', // Change this to 'dark' for dark mode
|
||||||
|
...(process.env.NODE_ENV === 'development' // Switch for dev mode
|
||||||
|
? lightPalette
|
||||||
|
: darkPalette),
|
||||||
|
},
|
||||||
|
typography,
|
||||||
|
breakpoints: {
|
||||||
|
values: {
|
||||||
|
xs: 0,
|
||||||
|
sm: 600,
|
||||||
|
md: 960,
|
||||||
|
lg: 1280,
|
||||||
|
xl: 1920,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
export default theme;
|
||||||
@ -11,7 +11,10 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"react": "^19.0.0",
|
"react": "^19.0.0",
|
||||||
"react-dom": "^19.0.0",
|
"react-dom": "^19.0.0",
|
||||||
"next": "15.3.3"
|
"next": "15.3.3",
|
||||||
|
"@emotion/react": "^11.14.0",
|
||||||
|
"@emotion/styled": "^11.14.0",
|
||||||
|
"@mui/material": "^7.1.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"typescript": "^5",
|
"typescript": "^5",
|
||||||
|
|||||||
3163
payment-iq/yarn.lock
Normal file
3163
payment-iq/yarn.lock
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user