diff --git a/package.json b/package.json
index da504ab..08decb1 100644
--- a/package.json
+++ b/package.json
@@ -12,7 +12,7 @@
"devDependencies": {
"@babel/preset-react": "^7.16.5",
"@popperjs/core": "^2.10.2",
- "axios": "^0.21",
+ "axios": "^0.21.4",
"bootstrap": "^5.1.3",
"laravel-mix": "^6.0.6",
"lodash": "^4.17.19",
@@ -24,8 +24,15 @@
"sass-loader": "^11.0.1"
},
"dependencies": {
+ "@emotion/react": "^11.7.1",
+ "@emotion/styled": "^11.6.0",
+ "@mui/icons-material": "^5.2.5",
+ "@mui/material": "^5.2.5",
"@types/react": "^17.0.37",
"@types/react-dom": "^17.0.11",
+ "@types/react-redux": "^7.1.20",
+ "react-redux": "^7.2.6",
+ "react-router-dom": "^6.2.1",
"ts-loader": "^9.2.6",
"typescript": "^4.5.4"
}
diff --git a/resources/js/app.tsx b/resources/js/app.tsx
index bcc767f..82d8b3b 100644
--- a/resources/js/app.tsx
+++ b/resources/js/app.tsx
@@ -1,6 +1,7 @@
import React from 'react';
import ReactDOM from 'react-dom';
import App from "./components/App";
+import { BrowserRouter } from "react-router-dom";
/**
* First we will load all of this project's JavaScript dependencies which
@@ -16,4 +17,4 @@ require('./bootstrap');
* or customize the JavaScript scaffolding to fit your unique needs.
*/
-ReactDOM.render(, document.getElementById('app'));
\ No newline at end of file
+ReactDOM.render(, document.getElementById('app'));
\ No newline at end of file
diff --git a/resources/js/components/App.tsx b/resources/js/components/App.tsx
index 60274c7..26e2689 100644
--- a/resources/js/components/App.tsx
+++ b/resources/js/components/App.tsx
@@ -1,15 +1,252 @@
-import React, { useState } from "react";
+import * as React from "react";
+import { styled, useTheme, Theme, CSSObject } from "@mui/material/styles";
+import Box from "@mui/material/Box";
+import MuiDrawer from "@mui/material/Drawer";
+import MuiAppBar, { AppBarProps as MuiAppBarProps } from "@mui/material/AppBar";
+import Toolbar from "@mui/material/Toolbar";
+import List from "@mui/material/List";
+import CssBaseline from "@mui/material/CssBaseline";
+import Typography from "@mui/material/Typography";
+import Divider from "@mui/material/Divider";
+import IconButton from "@mui/material/IconButton";
+import MenuIcon from "@mui/icons-material/Menu";
+import ChevronLeftIcon from "@mui/icons-material/ChevronLeft";
+import ChevronRightIcon from "@mui/icons-material/ChevronRight";
+import ListItem from "@mui/material/ListItem";
+import ListItemIcon from "@mui/material/ListItemIcon";
+import ListItemText from "@mui/material/ListItemText";
+import InboxIcon from "@mui/icons-material/MoveToInbox";
+import MailIcon from "@mui/icons-material/Mail";
+import { Routes, Route, Link } from "react-router-dom";
+import Paper from "@mui/material/Paper";
-export interface IUser {
- name: string;
- age: number;
+const drawerWidth = 240;
+
+const openedMixin = (theme: Theme): CSSObject => ({
+ width: drawerWidth,
+ transition: theme.transitions.create("width", {
+ easing: theme.transitions.easing.sharp,
+ duration: theme.transitions.duration.enteringScreen,
+ }),
+ overflowX: "hidden",
+});
+
+const closedMixin = (theme: Theme): CSSObject => ({
+ transition: theme.transitions.create("width", {
+ easing: theme.transitions.easing.sharp,
+ duration: theme.transitions.duration.leavingScreen,
+ }),
+ overflowX: "hidden",
+ width: `calc(${theme.spacing(7)} + 1px)`,
+ [theme.breakpoints.up("sm")]: {
+ width: `calc(${theme.spacing(7)} + 1px)`,
+ },
+});
+
+const DrawerHeader = styled("div")(({ theme }) => ({
+ display: "flex",
+ alignItems: "center",
+ justifyContent: "flex-end",
+ padding: theme.spacing(0, 1),
+ // necessary for content to be below app bar
+ ...theme.mixins.toolbar,
+}));
+
+interface AppBarProps extends MuiAppBarProps {
+ open?: boolean;
}
-const App = () => {
+
+const AppBar = styled(MuiAppBar, {
+ shouldForwardProp: (prop) => prop !== "open",
+})(({ theme, open }) => ({
+ zIndex: theme.zIndex.drawer + 1,
+ transition: theme.transitions.create(["width", "margin"], {
+ easing: theme.transitions.easing.sharp,
+ duration: theme.transitions.duration.leavingScreen,
+ }),
+ ...(open && {
+ marginLeft: drawerWidth,
+ width: `calc(100% - ${drawerWidth}px)`,
+ transition: theme.transitions.create(["width", "margin"], {
+ easing: theme.transitions.easing.sharp,
+ duration: theme.transitions.duration.enteringScreen,
+ }),
+ }),
+}));
+
+const Drawer = styled(MuiDrawer, {
+ shouldForwardProp: (prop) => prop !== "open",
+})(({ theme, open }) => ({
+ width: drawerWidth,
+ flexShrink: 0,
+ whiteSpace: "nowrap",
+ boxSizing: "border-box",
+ ...(open && {
+ ...openedMixin(theme),
+ "& .MuiDrawer-paper": openedMixin(theme),
+ }),
+ ...(!open && {
+ ...closedMixin(theme),
+ "& .MuiDrawer-paper": closedMixin(theme),
+ }),
+}));
+
+const Container = styled(Paper)(({ theme }) => ({
+ ...theme.typography.body2,
+ padding: 16
+ }));
+
+export default function App() {
+ const theme = useTheme();
+ const [open, setOpen] = React.useState(false);
+
+ const handleDrawerOpen = () => {
+ setOpen(true);
+ };
+
+ const handleDrawerClose = () => {
+ setOpen(false);
+ };
+
return (
-
-
Initial setup
-
+
+
+
+
+
+
+
+
+ Covid Statistics
+
+
+
+
+
+
+ {theme.direction === "rtl" ? (
+
+ ) : (
+
+ )}
+
+
+
+
+ {["Inbox", "Starred", "Send email", "Drafts"].map(
+ (text, index) => (
+
+
+ {index % 2 === 0 ? (
+
+ ) : (
+
+ )}
+
+
+
+ )
+ )}
+
+
+
+
+
+
+
+
+ Lorem ipsum dolor sit amet, consectetur
+ adipiscing elit, sed do eiusmod tempor
+ incididunt ut labore et dolore magna
+ aliqua. Rhoncus dolor purus non enim
+ praesent elementum facilisis leo vel.
+ Risus at ultrices mi tempus imperdiet.
+ Semper risus in hendrerit gravida rutrum
+ quisque non tellus. Convallis convallis
+ tellus id interdum velit laoreet id
+ donec ultrices. Odio morbi quis commodo
+ odio aenean sed adipiscing. Amet nisl
+ suscipit adipiscing bibendum est
+ ultricies integer quis. Cursus euismod
+ quis viverra nibh cras. Metus vulputate
+ eu scelerisque felis imperdiet proin
+ fermentum leo. Mauris commodo quis
+ imperdiet massa tincidunt. Cras
+ tincidunt lobortis feugiat vivamus at
+ augue. At augue eget arcu dictum varius
+ duis at consectetur lorem. Velit sed
+ ullamcorper morbi tincidunt. Lorem donec
+ massa sapien faucibus et molestie ac.
+
+
+ Consequat mauris nunc congue nisi vitae
+ suscipit. Fringilla est ullamcorper eget
+ nulla facilisi etiam dignissim diam.
+ Pulvinar elementum integer enim neque
+ volutpat ac tincidunt. Ornare
+ suspendisse sed nisi lacus sed viverra
+ tellus. Purus sit amet volutpat
+ consequat mauris. Elementum eu facilisis
+ sed odio morbi. Euismod lacinia at quis
+ risus sed vulputate odio. Morbi
+ tincidunt ornare massa eget egestas
+ purus viverra accumsan in. In hendrerit
+ gravida rutrum quisque non tellus orci
+ ac. Pellentesque nec nam aliquam sem et
+ tortor. Habitant morbi tristique
+ senectus et. Adipiscing elit duis
+ tristique sollicitudin nibh sit. Ornare
+ aenean euismod elementum nisi quis
+ eleifend. Commodo viverra maecenas
+ accumsan lacus vel facilisis. Nulla
+ posuere sollicitudin aliquam ultrices
+ sagittis orci a.
+
+ >
+ }
+ />
+
+ Consequat mauris nunc congue nisi vitae
+ suscipit. Fringilla est ullamcorper eget
+ nulla facilisi etiam dignissim diam.
+ Pulvinar elementum integer enim neque
+ volutpat ac tincidunt. Ornare suspendisse
+ sed nisi lacus sed viverra tellus. Purus sit
+ amet volutpat consequat mauris. Elementum eu
+ facilisis sed odio morbi. Euismod lacinia at
+ quis risus sed vulputate odio. Morbi
+ tincidunt ornare massa eget egestas purus
+ viverra accumsan in. In hendrerit gravida
+ rutrum quisque non tellus orci ac.
+ Pellentesque nec nam aliquam sem et tortor.
+ Habitant morbi tristique senectus et.
+ Adipiscing elit duis tristique sollicitudin
+ nibh sit. Ornare aenean euismod elementum
+ nisi quis eleifend. Commodo viverra maecenas
+ accumsan lacus vel facilisis. Nulla posuere
+ sollicitudin aliquam ultrices sagittis orci
+ a.
+
+ }
+ />
+
+
+
+
);
-};
-
-export default App;
\ No newline at end of file
+}
diff --git a/routes/web.php b/routes/web.php
index b130397..f027fd5 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -13,6 +13,6 @@ use Illuminate\Support\Facades\Route;
|
*/
-Route::get('/', function () {
+Route::get('/{any}', function () {
return view('welcome');
-});
+})->where('any', '.*');