diff --git a/.env.example b/.env.example index 3bd8d01..c20c0a7 100644 --- a/.env.example +++ b/.env.example @@ -9,7 +9,7 @@ NEXTAUTH_SECRET= #use openssl to generate key, base64 recomended BASEPATH= NEXT_PUBLIC_APP_URL=http://localhost:3000${BASEPATH} -# PRISMA MYSQL CONNECTION +# PRISMA CONNECTION DATABASE_URL= #://:@localhost:/ #Vercel PostgreSQL @@ -22,3 +22,6 @@ POSTGRES_USER= POSTGRES_HOST= POSTGRES_PASSWORD= POSTGRES_DATABASE= + +#Admin KEY +ADMIN_KEY= diff --git a/package-lock.json b/package-lock.json index 2b36bb9..3dfb8cc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "Kasbon-Manager", - "version": "0.1.0", + "version": "1.1.8", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "Kasbon-Manager", - "version": "0.1.0", + "version": "1.0.10", "hasInstallScript": true, "license": "Commercial", "dependencies": { diff --git a/package.json b/package.json index 134d9ab..c0bee4c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "Kasbon-Manager", - "version": "1.1.7", + "version": "1.1.8", "license": "Commercial", "private": true, "scripts": { diff --git a/src/app/dashboard/account-settings/page.jsx b/src/app/dashboard/account-settings/page.jsx deleted file mode 100644 index 5be6118..0000000 --- a/src/app/dashboard/account-settings/page.jsx +++ /dev/null @@ -1,22 +0,0 @@ -// Next Imports -import dynamic from 'next/dynamic' - -// Component Imports -import AccountSettings from '@views/account-settings' - -const AccountTab = dynamic(() => import('@views/account-settings/account')) -const NotificationsTab = dynamic(() => import('@views/account-settings/notifications')) -const ConnectionsTab = dynamic(() => import('@views/account-settings/connections')) - -// Vars -const tabContentList = () => ({ - account: , - notifications: , - connections: -}) - -const AccountSettingsPage = () => { - return -} - -export default AccountSettingsPage diff --git a/src/app/dashboard/bayar/page.jsx b/src/app/dashboard/bayar/page.jsx index 7bd189d..3993829 100644 --- a/src/app/dashboard/bayar/page.jsx +++ b/src/app/dashboard/bayar/page.jsx @@ -1,8 +1,29 @@ +'use client' -import StatusBayar from "@/views/status-bayar/StatusBayar" +import { useEffect } from "react" + +import { useRouter } from "next/navigation" +import { useSession } from "next-auth/react" + +import StatusBayar from "@/views/status-bayar/StatusBayar" const BayarKasbon = () =>{ + const {data: session, status} = useSession() + const router = useRouter() + + useEffect(()=>{ + if(status==='loading') return + + if(!session){ + router.push('/error/401') + } + },[session, status, router]) + + if(!session){ + return null + } + return(

Halaman Status Bayar Kasbon

diff --git a/src/app/dashboard/cetak/page.jsx b/src/app/dashboard/cetak/page.jsx index 09e499d..6d8f537 100644 --- a/src/app/dashboard/cetak/page.jsx +++ b/src/app/dashboard/cetak/page.jsx @@ -1,8 +1,29 @@ +'use client' +import { useEffect } from "react" + +import { useRouter } from "next/navigation" + +import { useSession } from "next-auth/react" import PrintLaporan from "@/views/print-laporan/PrintLaporan" const CetakKasbon = () =>{ + const {data:session, status} = useSession() + const router = useRouter() + + useEffect(()=>{ + if (status === 'loading') return + + if(!session){ + router.push('/error/401') + } + }, [session, status, router]) + + if(!session){ + return null + } + return(
diff --git a/src/app/dashboard/daftar-akun/page.jsx b/src/app/dashboard/daftar-akun/page.jsx index d989f6a..c7d3fbb 100644 --- a/src/app/dashboard/daftar-akun/page.jsx +++ b/src/app/dashboard/daftar-akun/page.jsx @@ -1,22 +1,40 @@ -import dynamic from 'next/dynamic' +'use client' -import TabelAkunAdmin from '@/views/tabel-akun/TabelAdmin' +import { useEffect } from "react" + +import { useRouter } from "next/navigation" -//Membuat komponen yang diimport menjadi dynamic page -const TabelAkun = dynamic(()=>import('@views/tabel-akun/TabelAkun'), {ssr:false}) +import { useSession } from "next-auth/react" + +import TabelAkunAdmin from '@/views/tabel-akun/TabelAdmin' +import TabelAkun from "@/views/tabel-akun/TabelAkun" const DaftarAkun = () => { + const {data: session, status} = useSession() + const router = useRouter() + + useEffect(()=>{ + if (status === 'loading') return + + if(!session){ + router.push('/error/401') + } + }, [session, status, router]) + + if(!session){ + return null + } return ( -
+

Tabel Daftar Akun


-
+

-
+

diff --git a/src/app/dashboard/kasbon/page.jsx b/src/app/dashboard/kasbon/page.jsx deleted file mode 100644 index 0bd3386..0000000 --- a/src/app/dashboard/kasbon/page.jsx +++ /dev/null @@ -1,11 +0,0 @@ - - -const Kasbon = () =>{ - return( -
- Tabel Kasbon -
- ) -} - -export default Kasbon diff --git a/src/app/dashboard/laporan/page.jsx b/src/app/dashboard/laporan/page.jsx deleted file mode 100644 index eeb54fa..0000000 --- a/src/app/dashboard/laporan/page.jsx +++ /dev/null @@ -1,12 +0,0 @@ - - -const LaporanKasbon = () =>{ - - return( -
- -
- ) -} - -export default LaporanKasbon diff --git a/src/app/dashboard/registrasi-akun/page.jsx b/src/app/dashboard/registrasi-akun/page.jsx index 56f9ccc..2e7f8c4 100644 --- a/src/app/dashboard/registrasi-akun/page.jsx +++ b/src/app/dashboard/registrasi-akun/page.jsx @@ -2,6 +2,10 @@ import { useState, useEffect, useRef } from 'react' +import { useRouter } from 'next/navigation' + +import { useSession } from 'next-auth/react' + import Card from '@mui/material/Card' import Grid from '@mui/material/Grid' import Button from '@mui/material/Button' @@ -15,20 +19,32 @@ import FormControl from '@mui/material/FormControl' import Alert from '@mui/material/Alert' const RegistrasiAkun = () => { - const [status, setStatus] = useState(null) + const {data: session, status} = useSession() + const [alert, setAlert] = useState(null) const [message, setMessage] = useState('') const formRef = useRef(null) + const router = useRouter() useEffect(() => { - if (status) { + if (status === 'loading') return // Jangan lakukan apa pun saat sesi sedang dimuat + + if (!session) { + router.push('/error/401') + } + + if (alert) { const timer = setTimeout(() => { - setStatus(null) + setAlert(null) setMessage('') }, 5000) return () => clearTimeout(timer) } - }, [status]) + }, [session, status, router, alert]) + + if (!session) { + return null + } const handleSubmit = async (event) => { event.preventDefault() @@ -53,15 +69,15 @@ const RegistrasiAkun = () => { const result = await response.json() if (response.ok) { - setStatus('success') + setAlert('success') setMessage('Akun berhasil didaftarkan!') formRef.current.reset() // Kosongkan form setelah berhasil didaftarkan } else { - setStatus('error') + setAlert('error') setMessage(result.error || 'Terjadi kesalahan saat mendaftarkan akun.') } } catch (error) { - setStatus('error') + setAlert('error') setMessage('Terjadi kesalahan saat mendaftarkan akun.') } } @@ -71,8 +87,8 @@ const RegistrasiAkun = () => { - {status && ( - + {alert && ( + {message} )} diff --git a/src/app/dashboard/request/page.jsx b/src/app/dashboard/request/page.jsx index efae953..2ae1f28 100644 --- a/src/app/dashboard/request/page.jsx +++ b/src/app/dashboard/request/page.jsx @@ -1,7 +1,29 @@ +'use client' + +import { useEffect } from "react" + +import { useRouter } from "next/navigation" + +import { useSession } from "next-auth/react" import StatusRequest from "@/views/status-request/StatusRequest" const RequestKasbon = () =>{ + const {data:session,status} = useSession() + const router = useRouter() + + useEffect(()=>{ + if(status === 'loading') return + + if(!session){ + router.push('/error/401') + } + },[session,status,router]) + + if(!session){ + return null + } + return(

Status Request Kasbon

diff --git a/src/app/dashboard/reset-password-akun/page.jsx b/src/app/dashboard/reset-password-akun/page.jsx index f6d8a15..c7396cb 100644 --- a/src/app/dashboard/reset-password-akun/page.jsx +++ b/src/app/dashboard/reset-password-akun/page.jsx @@ -9,7 +9,6 @@ import { useSession } from 'next-auth/react' import ResetPasswordKaryawan from "@/views/reset-password/resetpassword-karyawan" import ResetPasswordAdmin from '@/views/reset-password/resetpassword-admin' - const ResetPasswordAkun = () =>{ const { data: session, status } = useSession() const router = useRouter() diff --git a/src/app/dashboard/tambah-kasbon/page.jsx b/src/app/dashboard/tambah-kasbon/page.jsx index 1dd6b91..b552ada 100644 --- a/src/app/dashboard/tambah-kasbon/page.jsx +++ b/src/app/dashboard/tambah-kasbon/page.jsx @@ -2,6 +2,8 @@ import { useState, useEffect, useRef } from 'react' +import { useRouter } from 'next/navigation' + import { useSession } from 'next-auth/react' import Card from '@mui/material/Card' @@ -17,21 +19,32 @@ import InputLabel from '@mui/material/InputLabel' import FormControl from '@mui/material/FormControl' const TambahKasbon = () =>{ - const { data: session } = useSession() - const [status, setStatus] = useState(null) + const { data: session, status } = useSession() + const [alert, setAlert] = useState(null) const [message, setMessage] = useState('') const formRef = useRef(null) + const router = useRouter() useEffect(() => { - if (status) { + if(status === 'loading') return + + if(!session){ + router.push('/error/401') + } + + if (alert) { const timer = setTimeout(() => { - setStatus(null) + setAlert(null) setMessage('') }, 5000) return () => clearTimeout(timer) } - }, [status]) + }, [alert, session, status, router]) + + if(!session){ + return null + } const handleSubmit = async (event) => { event.preventDefault() @@ -39,7 +52,7 @@ const TambahKasbon = () =>{ // Validasi form sebelum mengirimkan if (!data.get('jumlah') || !data.get('keterangan') || !data.get('metode')) { - setStatus('error') + setAlert('error') setMessage('Semua bidang harus diisi.') return @@ -64,15 +77,15 @@ const TambahKasbon = () =>{ const result = await response.json() if (response.ok) { - setStatus('success') + setAlert('success') setMessage('Permintaan Kasbon berhasil dikirim!') formRef.current.reset() // Kosongkan form setelah berhasil didaftarkan } else { - setStatus('error') + setAlert('error') setMessage(result.error || 'Terjadi kesalahan saat mengirim data permintaan kasbon.') } } catch (error) { - setStatus('error') + setAlert('error') setMessage('Terjadi kesalahan saat mengirim data.') } } @@ -82,8 +95,8 @@ const TambahKasbon = () =>{ - {status && ( - + {alert && ( + {message} )} diff --git a/src/components/layout/vertical/VerticalMenu.jsx b/src/components/layout/vertical/VerticalMenu.jsx index 8834287..a515af7 100644 --- a/src/components/layout/vertical/VerticalMenu.jsx +++ b/src/components/layout/vertical/VerticalMenu.jsx @@ -83,7 +83,6 @@ const VerticalMenu = ({ scrollMenu }) => { label='Laporan' icon={} > - Laporan Kasbon Ekspor Laporan { - return ( - - - - } label='I confirm my account deactivation' /> - - - - ) -} - -export default AccountDelete diff --git a/src/views/account-settings/account/AccountDetails.jsx b/src/views/account-settings/account/AccountDetails.jsx deleted file mode 100644 index 8bf0d4b..0000000 --- a/src/views/account-settings/account/AccountDetails.jsx +++ /dev/null @@ -1,284 +0,0 @@ -'use client' - -// React Imports -import { useState } from 'react' - -// MUI Imports -import Grid from '@mui/material/Grid' -import Card from '@mui/material/Card' -import CardContent from '@mui/material/CardContent' -import Button from '@mui/material/Button' -import Typography from '@mui/material/Typography' -import TextField from '@mui/material/TextField' -import FormControl from '@mui/material/FormControl' -import InputLabel from '@mui/material/InputLabel' -import Select from '@mui/material/Select' -import MenuItem from '@mui/material/MenuItem' -import Chip from '@mui/material/Chip' - -// Vars -const initialData = { - firstName: 'John', - lastName: 'Doe', - email: 'john.doe@example.com', - organization: 'ThemeSelection', - phoneNumber: '+1 (917) 543-9876', - address: '123 Main St, New York, NY 10001', - state: 'New York', - zipCode: '634880', - country: 'usa', - language: 'arabic', - timezone: 'gmt-12', - currency: 'usd' -} - -const languageData = ['English', 'Arabic', 'French', 'German', 'Portuguese'] - -const AccountDetails = () => { - // States - const [formData, setFormData] = useState(initialData) - const [fileInput, setFileInput] = useState('') - const [imgSrc, setImgSrc] = useState('/images/avatars/1.png') - const [language, setLanguage] = useState(['English']) - - const handleDelete = value => { - setLanguage(current => current.filter(item => item !== value)) - } - - const handleChange = event => { - setLanguage(event.target.value) - } - - const handleFormChange = (field, value) => { - setFormData({ ...formData, [field]: value }) - } - - const handleFileInputChange = file => { - const reader = new FileReader() - const { files } = file.target - - if (files && files.length !== 0) { - reader.onload = () => setImgSrc(reader.result) - reader.readAsDataURL(files[0]) - - if (reader.result !== null) { - setFileInput(reader.result) - } - } - } - - const handleFileInputReset = () => { - setFileInput('') - setImgSrc('/images/avatars/1.png') - } - - return ( - - -
- Profile -
-
- - -
- Allowed JPG, GIF or PNG. Max size of 800K -
-
-
- -
e.preventDefault()}> - - - handleFormChange('firstName', e.target.value)} - /> - - - handleFormChange('lastName', e.target.value)} - /> - - - handleFormChange('email', e.target.value)} - /> - - - handleFormChange('organization', e.target.value)} - /> - - - handleFormChange('phoneNumber', e.target.value)} - /> - - - handleFormChange('address', e.target.value)} - /> - - - handleFormChange('state', e.target.value)} - /> - - - handleFormChange('zipCode', e.target.value)} - /> - - - - Country - - - - - - Language - - - - - - TimeZone - - - - - - Currency - - - - - - - - -
-
-
- ) -} - -export default AccountDetails diff --git a/src/views/account-settings/account/index.jsx b/src/views/account-settings/account/index.jsx deleted file mode 100644 index 6590f24..0000000 --- a/src/views/account-settings/account/index.jsx +++ /dev/null @@ -1,21 +0,0 @@ -// MUI Imports -import Grid from '@mui/material/Grid' - -// Component Imports -import AccountDetails from './AccountDetails' -import AccountDelete from './AccountDelete' - -const Account = () => { - return ( - - - - - - - - - ) -} - -export default Account diff --git a/src/views/account-settings/connections/index.jsx b/src/views/account-settings/connections/index.jsx deleted file mode 100644 index 6d2ea7d..0000000 --- a/src/views/account-settings/connections/index.jsx +++ /dev/null @@ -1,139 +0,0 @@ -// Next Imports -import Link from 'next/link' - -// MUI Imports -import Card from '@mui/material/Card' -import CardHeader from '@mui/material/CardHeader' -import CardContent from '@mui/material/CardContent' -import Grid from '@mui/material/Grid' -import Typography from '@mui/material/Typography' -import Switch from '@mui/material/Switch' - -// Component Imports -import CustomIconButton from '@core/components/mui/IconButton' - -// Vars -const connectedAccountsArr = [ - { - checked: true, - title: 'Google', - logo: '/images/logos/google.png', - subtitle: 'Calendar and Contacts' - }, - { - checked: false, - title: 'Slack', - logo: '/images/logos/slack.png', - subtitle: 'Communications' - }, - { - checked: true, - title: 'Github', - logo: '/images/logos/github.png', - subtitle: 'Manage your Git repositories' - }, - { - checked: true, - title: 'Mailchimp', - subtitle: 'Email marketing service', - logo: '/images/logos/mailchimp.png' - }, - { - title: 'Asana', - checked: false, - subtitle: 'Task Communication', - logo: '/images/logos/asana.png' - } -] - -const socialAccountsArr = [ - { - title: 'Facebook', - isConnected: false, - logo: '/images/logos/facebook.png' - }, - { - title: 'Twitter', - isConnected: true, - username: '@Theme_Selection', - logo: '/images/logos/twitter.png', - href: 'https://twitter.com/Theme_Selection' - }, - { - title: 'Linkedin', - isConnected: true, - username: '@ThemeSelection', - logo: '/images/logos/linkedin.png', - href: 'https://in.linkedin.com/company/themeselection' - }, - { - title: 'Dribbble', - isConnected: false, - logo: '/images/logos/dribbble.png' - }, - { - title: 'Behance', - isConnected: false, - logo: '/images/logos/behance.png' - } -] - -const Connections = () => { - return ( - - - - - - {connectedAccountsArr.map((item, index) => ( -
-
- {item.title} -
- - {item.title} - - {item.subtitle} -
-
- -
- ))} -
-
- - - - {socialAccountsArr.map((item, index) => ( -
-
- {item.title} -
- - {item.title} - - {item.isConnected ? ( - - {item.username} - - ) : ( - Not Connected - )} -
-
- - - -
- ))} -
-
-
-
- ) -} - -export default Connections diff --git a/src/views/account-settings/index.jsx b/src/views/account-settings/index.jsx deleted file mode 100644 index 3d7d27d..0000000 --- a/src/views/account-settings/index.jsx +++ /dev/null @@ -1,46 +0,0 @@ -'use client' - -// React Imports -import { useState } from 'react' - -// MUI Imports -import Grid from '@mui/material/Grid' -import Tab from '@mui/material/Tab' -import TabContext from '@mui/lab/TabContext' -import TabList from '@mui/lab/TabList' -import TabPanel from '@mui/lab/TabPanel' - -const AccountSettings = ({ tabContentList }) => { - // States - const [activeTab, setActiveTab] = useState('account') - - const handleChange = (event, value) => { - setActiveTab(value) - } - - return ( - - - - - } iconPosition='start' value='account' /> - } - iconPosition='start' - value='notifications' - /> - } iconPosition='start' value='connections' /> - - - - - {tabContentList[activeTab]} - - - - - ) -} - -export default AccountSettings diff --git a/src/views/account-settings/notifications/index.jsx b/src/views/account-settings/notifications/index.jsx deleted file mode 100644 index 9a2e618..0000000 --- a/src/views/account-settings/notifications/index.jsx +++ /dev/null @@ -1,114 +0,0 @@ -// MUI Imports -import Card from '@mui/material/Card' -import CardHeader from '@mui/material/CardHeader' -import CardContent from '@mui/material/CardContent' -import Typography from '@mui/material/Typography' -import Checkbox from '@mui/material/Checkbox' -import Select from '@mui/material/Select' -import MenuItem from '@mui/material/MenuItem' -import Grid from '@mui/material/Grid' -import Button from '@mui/material/Button' - -// Component Imports -import Link from '@components/Link' -import Form from '@components/Form' - -// Style Imports -import tableStyles from '@core/styles/table.module.css' - -// Vars -const tableData = [ - { - app: true, - email: true, - browser: true, - type: 'New for you' - }, - { - app: true, - email: true, - browser: true, - type: 'Account activity' - }, - { - app: false, - email: true, - browser: true, - type: 'A new browser used to sign in' - }, - { - app: false, - email: true, - browser: false, - type: 'A new device is linked' - } -] - -const Notifications = () => { - return ( - - - We need permission from your browser to show notifications. - Request Permission - - } - /> -
-
- - - - - - - - - - - {tableData.map((data, index) => ( - - - - - - - ))} - -
TypeEmailBrowserApp
- {data.type} - - - - - - -
-
- - When should we send you notifications? - - - - - - - - - - -
-
- ) -} - -export default Notifications diff --git a/src/views/card-basic/CardFacebook.jsx b/src/views/card-basic/CardFacebook.jsx deleted file mode 100644 index 8108170..0000000 --- a/src/views/card-basic/CardFacebook.jsx +++ /dev/null @@ -1,42 +0,0 @@ -// MUI Imports -import Card from '@mui/material/Card' -import CardContent from '@mui/material/CardContent' -import Typography from '@mui/material/Typography' -import Avatar from '@mui/material/Avatar' - -const CardFacebook = () => { - return ( - - -
- - - Facebook Card - -
- - You've read about the importance of being courageous, rebellious and imaginative. These are all vital - ingredients in an effective. - -
-
- - Eugene Clarke -
-
- - - 2.5k - - - - 124 - -
-
-
-
- ) -} - -export default CardFacebook diff --git a/src/views/card-basic/CardHorizontalRatings.jsx b/src/views/card-basic/CardHorizontalRatings.jsx deleted file mode 100644 index dec4165..0000000 --- a/src/views/card-basic/CardHorizontalRatings.jsx +++ /dev/null @@ -1,45 +0,0 @@ -'use client' - -// MUI Imports -import Card from '@mui/material/Card' -import Grid from '@mui/material/Grid' -import CardContent from '@mui/material/CardContent' -import Typography from '@mui/material/Typography' -import Rating from '@mui/material/Rating' -import CardActions from '@mui/material/CardActions' -import Button from '@mui/material/Button' - -const CardHorizontalRatings = () => { - return ( - - - - - - Stumptown Roasters - -
- - 4 Star | 98 reviews -
- - Before there was a United States of America, there were coffee houses, because how are you supposed to - build. - -
- - - - -
- - - - - -
-
- ) -} - -export default CardHorizontalRatings diff --git a/src/views/card-basic/CardInfluencingInfluencer.jsx b/src/views/card-basic/CardInfluencingInfluencer.jsx deleted file mode 100644 index 9981bab..0000000 --- a/src/views/card-basic/CardInfluencingInfluencer.jsx +++ /dev/null @@ -1,32 +0,0 @@ -// MUI Imports -import Card from '@mui/material/Card' -import CardContent from '@mui/material/CardContent' -import Typography from '@mui/material/Typography' -import CardActions from '@mui/material/CardActions' -import Button from '@mui/material/Button' - -const CardInfluencingInfluencer = () => { - return ( - - - - Influencing Influencer - - - Computers have become ubiquitous in almost every facet of our lives. At work, desk jockeys spend hours in - front of their desktops, while delivery people scan bar codes with handhelds and workers in the field stay in - touch. - - - If you're in the market for new desktops, notebooks, or PDAs, there are a myriad of choices. Here's a - rundown of some of the best systems available. - - - - - - - ) -} - -export default CardInfluencingInfluencer diff --git a/src/views/card-basic/CardInfluencingInfluencerWithImg.jsx b/src/views/card-basic/CardInfluencingInfluencerWithImg.jsx deleted file mode 100644 index e6f84ff..0000000 --- a/src/views/card-basic/CardInfluencingInfluencerWithImg.jsx +++ /dev/null @@ -1,24 +0,0 @@ -// MUI Imports -import Card from '@mui/material/Card' -import CardMedia from '@mui/material/CardMedia' -import CardContent from '@mui/material/CardContent' -import Typography from '@mui/material/Typography' - -const CardInfluencingInfluencerWithImg = () => { - return ( - - - - - Influencing The Influencer - - - Cancun is back, better than ever! Over a hundred Mexico resorts have reopened and the state tourism minister - predicts Cancun will draw as many visitors in 2006 as it did two years ago. - - - - ) -} - -export default CardInfluencingInfluencerWithImg diff --git a/src/views/card-basic/CardLifetimeMembership.jsx b/src/views/card-basic/CardLifetimeMembership.jsx deleted file mode 100644 index 312d607..0000000 --- a/src/views/card-basic/CardLifetimeMembership.jsx +++ /dev/null @@ -1,80 +0,0 @@ -// MUI Imports -import Card from '@mui/material/Card' -import Grid from '@mui/material/Grid' -import CardContent from '@mui/material/CardContent' -import Typography from '@mui/material/Typography' -import Divider from '@mui/material/Divider' -import Button from '@mui/material/Button' - -const CardLifetimeMembership = () => { - return ( - - - - - - Lifetime Membership - - - Here, I focus on a range of items and features that we use in life without giving them a second thought - such as Coca Cola, body muscles and holding ones own breath. Though, most of these notes are not - fundamentally necessary, they are such that you can use them for a good laugh, at a drinks party or for - picking up women or men. - - - - -
-
- -
- Full Access -
-
-
- -
- 15 Members -
-
- -
-
- -
- Access all Features -
-
-
- -
- Lifetime Free Update -
-
-
-
-
- - -
-
- $ - 899 - USD -
- - 5 Tips For Offshore - Software Development - - -
-
-
-
-
- ) -} - -export default CardLifetimeMembership diff --git a/src/views/card-basic/CardLinkedIn.jsx b/src/views/card-basic/CardLinkedIn.jsx deleted file mode 100644 index 45fe70b..0000000 --- a/src/views/card-basic/CardLinkedIn.jsx +++ /dev/null @@ -1,42 +0,0 @@ -// MUI Imports -import Card from '@mui/material/Card' -import CardContent from '@mui/material/CardContent' -import Typography from '@mui/material/Typography' -import Avatar from '@mui/material/Avatar' - -const CardLinkedIn = () => { - return ( - - -
- - - LinkedIn Card - -
- - With the Internet spreading like wildfire and reaching every part of our daily life, more and more traffic is - directed. - -
-
- - Anne Burke -
-
- - - 1.2k - - - - 56 - -
-
-
-
- ) -} - -export default CardLinkedIn diff --git a/src/views/card-basic/CardMobile.jsx b/src/views/card-basic/CardMobile.jsx deleted file mode 100644 index 8492dd2..0000000 --- a/src/views/card-basic/CardMobile.jsx +++ /dev/null @@ -1,89 +0,0 @@ -'use client' - -// React Imports -import { useState } from 'react' - -// MUI Imports -import Card from '@mui/material/Card' -import Grid from '@mui/material/Grid' -import CardContent from '@mui/material/CardContent' -import Typography from '@mui/material/Typography' -import CardActions from '@mui/material/CardActions' -import Button from '@mui/material/Button' -import IconButton from '@mui/material/IconButton' -import Menu from '@mui/material/Menu' -import MenuItem from '@mui/material/MenuItem' - -const CardMobile = () => { - // States - const [anchorEl, setAnchorEl] = useState(null) - const open = Boolean(anchorEl) - - const handleClick = event => { - setAnchorEl(event.currentTarget) - } - - const handleClose = () => { - setAnchorEl(null) - } - - return ( - - - - - iPhone 11 Pro - - - - - - Apple iPhone 11 Pro - - - Apple iPhone 11 Pro smartphone. Announced Sep 2019. Features 5.8″ display Apple A13 Bionic - -
- Price: - - $899 - -
-
- - - - - - - - - - - - - - - - - - - - -
-
-
- ) -} - -export default CardMobile diff --git a/src/views/card-basic/CardSupport.jsx b/src/views/card-basic/CardSupport.jsx deleted file mode 100644 index 72196e7..0000000 --- a/src/views/card-basic/CardSupport.jsx +++ /dev/null @@ -1,28 +0,0 @@ -// MUI Imports -import Card from '@mui/material/Card' -import CardContent from '@mui/material/CardContent' -import Avatar from '@mui/material/Avatar' -import Typography from '@mui/material/Typography' -import Button from '@mui/material/Button' - -const CardSupport = () => { - return ( - - - - - - - Support - - - According to us blisters are a very common thing and we come across them very often in our daily lives. It is - a very common occurrence like cold or fever depending upon your lifestyle. - - - - - ) -} - -export default CardSupport diff --git a/src/views/card-basic/CardTwitter.jsx b/src/views/card-basic/CardTwitter.jsx deleted file mode 100644 index 7643843..0000000 --- a/src/views/card-basic/CardTwitter.jsx +++ /dev/null @@ -1,42 +0,0 @@ -// MUI Imports -import Card from '@mui/material/Card' -import CardContent from '@mui/material/CardContent' -import Typography from '@mui/material/Typography' -import Avatar from '@mui/material/Avatar' - -const CardTwitter = () => { - return ( - - -
- - - Twitter Card - -
- - Turns out semicolon-less style is easier and safer in TS because most gotcha edge cases are type invalid as - well. - -
-
- - Mary Vaughn -
-
- - - 1.6k - - - - 98 - -
-
-
-
- ) -} - -export default CardTwitter diff --git a/src/views/card-basic/CardUser.jsx b/src/views/card-basic/CardUser.jsx deleted file mode 100644 index e402f6a..0000000 --- a/src/views/card-basic/CardUser.jsx +++ /dev/null @@ -1,45 +0,0 @@ -// MUI Imports -import Card from '@mui/material/Card' -import CardMedia from '@mui/material/CardMedia' -import CardContent from '@mui/material/CardContent' -import Avatar from '@mui/material/Avatar' -import Typography from '@mui/material/Typography' -import Button from '@mui/material/Button' -import AvatarGroup from '@mui/material/AvatarGroup' - -const CardUser = () => { - return ( - - - - -
-
- Robert Meyer - London, UK -
- -
-
- - 18 mutual friends - - - - - - - - - -
-
-
- ) -} - -export default CardUser diff --git a/src/views/card-basic/CardVerticalRatings.jsx b/src/views/card-basic/CardVerticalRatings.jsx deleted file mode 100644 index a80478a..0000000 --- a/src/views/card-basic/CardVerticalRatings.jsx +++ /dev/null @@ -1,37 +0,0 @@ -// MUI Imports -import Card from '@mui/material/Card' -import CardContent from '@mui/material/CardContent' -import Typography from '@mui/material/Typography' -import Rating from '@mui/material/Rating' -import CardActions from '@mui/material/CardActions' -import Button from '@mui/material/Button' - -const CardVerticalRatings = () => { - return ( - - - - The Best Answers - -
- - 4 Star | 98 reviews -
- - If you are looking for a new way to promote your business that won't cost you more money, maybe printing - is one of the options you won't resist. - - - Printing is a widely use process in making printed materials that are used for advertising. It become fast, - easy and simple. - -
- - - - -
- ) -} - -export default CardVerticalRatings diff --git a/src/views/card-basic/CardWatch.jsx b/src/views/card-basic/CardWatch.jsx deleted file mode 100644 index 2d2c24d..0000000 --- a/src/views/card-basic/CardWatch.jsx +++ /dev/null @@ -1,26 +0,0 @@ -// MUI Imports -import Card from '@mui/material/Card' -import CardMedia from '@mui/material/CardMedia' -import CardContent from '@mui/material/CardContent' -import Typography from '@mui/material/Typography' -import Button from '@mui/material/Button' - -const CardWatch = () => { - return ( - - - - - Apple Watch - - $249.40 - 3.1GHz 6-core 10th-generation Intel Core i5 processor, Turbo Boost up to 4.5GHz - - - - ) -} - -export default CardWatch diff --git a/src/views/card-basic/CardWithCollapse.jsx b/src/views/card-basic/CardWithCollapse.jsx deleted file mode 100644 index 2ef6ba5..0000000 --- a/src/views/card-basic/CardWithCollapse.jsx +++ /dev/null @@ -1,50 +0,0 @@ -'use client' - -// React Imports -import { useState } from 'react' - -// MUI Imports -import Card from '@mui/material/Card' -import CardMedia from '@mui/material/CardMedia' -import CardContent from '@mui/material/CardContent' -import Typography from '@mui/material/Typography' -import CardActions from '@mui/material/CardActions' -import Button from '@mui/material/Button' -import IconButton from '@mui/material/IconButton' -import Collapse from '@mui/material/Collapse' -import Divider from '@mui/material/Divider' - -const CardWithCollapse = () => { - const [expanded, setExpanded] = useState(false) - - return ( - - - - - Popular Uses Of The Internet - - Although cards can support multiple actions, UI controls, and an overflow menu. - - - - setExpanded(!expanded)}> - - - - - - - - I'm a thing. But, like most politicians, he promised more than he could deliver. You won't have time - for sleeping, soldier, not with all the bed making you'll be doing. Then we'll go with that data - file! Hey, you add a one and two zeros to that or we walk! You're going to do his laundry? I've got - to find a way to escape. - - - - - ) -} - -export default CardWithCollapse diff --git a/src/views/card-basic/CardWithTabs.jsx b/src/views/card-basic/CardWithTabs.jsx deleted file mode 100644 index 5a30f14..0000000 --- a/src/views/card-basic/CardWithTabs.jsx +++ /dev/null @@ -1,69 +0,0 @@ -'use client' - -// React Imports -import { useState } from 'react' - -// MUI Imports -import Card from '@mui/material/Card' -import CardContent from '@mui/material/CardContent' -import TabContext from '@mui/lab/TabContext' -import TabList from '@mui/lab/TabList' -import Tab from '@mui/material/Tab' -import TabPanel from '@mui/lab/TabPanel' -import Typography from '@mui/material/Typography' -import Button from '@mui/material/Button' - -const CardWithTabs = () => { - // ** State - const [value, setValue] = useState('1') - - const handleChange = (event, newValue) => { - setValue(newValue) - } - - return ( - - - - - - - - - - - Header One - - - Pudding tiramisu caramels. Gingerbread gummies danish chocolate bar toffee marzipan. Wafer wafer cake - powder danish oat cake. - - - - - - Header Two - - - Dragée chupa chups soufflé cheesecake jelly tootsie roll cupcake marzipan. Carrot cake sweet roll gummi - bears caramels jelly beans. - - - - - - Header Three - - - Icing cake macaroon macaroon jelly chocolate bar. Chupa chups dessert dessert soufflé chocolate bar - jujubes gummi bears lollipop. - - - - - - - ) -} - -export default CardWithTabs diff --git a/src/views/card-basic/CardWithTabsCenter.jsx b/src/views/card-basic/CardWithTabsCenter.jsx deleted file mode 100644 index fc5d565..0000000 --- a/src/views/card-basic/CardWithTabsCenter.jsx +++ /dev/null @@ -1,69 +0,0 @@ -'use client' - -// React Imports -import { useState } from 'react' - -// MUI Imports -import Card from '@mui/material/Card' -import CardContent from '@mui/material/CardContent' -import TabContext from '@mui/lab/TabContext' -import TabList from '@mui/lab/TabList' -import Tab from '@mui/material/Tab' -import TabPanel from '@mui/lab/TabPanel' -import Typography from '@mui/material/Typography' -import Button from '@mui/material/Button' - -const CardWithTabsCenter = () => { - // ** State - const [value, setValue] = useState('1') - - const handleChange = (event, newValue) => { - setValue(newValue) - } - - return ( - - - - - - - - - - - Header One - - - Pudding tiramisu caramels. Gingerbread gummies danish chocolate bar toffee marzipan. Wafer wafer cake - powder danish oat cake. - - - - - - Header Two - - - Dragée chupa chups soufflé cheesecake jelly tootsie roll cupcake marzipan. Carrot cake sweet roll gummi - bears caramels jelly beans. - - - - - - Header Three - - - Icing cake macaroon macaroon jelly chocolate bar. Chupa chups dessert dessert soufflé chocolate bar - jujubes gummi bears lollipop. - - - - - - - ) -} - -export default CardWithTabsCenter