mirror of
https://gitea.gofwd.group/dstrawsb/ballistic-builder.git
synced 2025-12-06 02:36:44 -05:00
work and created develop branch
This commit is contained in:
25
Example Code/BasicClassComponent/index.js
Normal file
25
Example Code/BasicClassComponent/index.js
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
import React, { Component } from 'react'
|
||||||
|
import PropTypes from 'prop-types' //ES6
|
||||||
|
import styles from './styles.module.css'
|
||||||
|
|
||||||
|
export default class BasicClassComponent extends Component {
|
||||||
|
constructor(props){
|
||||||
|
super(props)
|
||||||
|
this.state = {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
render(){
|
||||||
|
return (
|
||||||
|
<div >
|
||||||
|
<h1>Basic Component</h1>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
BasicClassComponent.propTypes = {
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
23
Example Code/BasicClassComponent/package.json
Normal file
23
Example Code/BasicClassComponent/package.json
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
"name": "basicclasscomponent",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"private": true,
|
||||||
|
"main": "./index",
|
||||||
|
"author": {
|
||||||
|
"name": "Don Strawsburg",
|
||||||
|
"email": "don@goforward.group",
|
||||||
|
"url": "https://goforward.group/"
|
||||||
|
},
|
||||||
|
"contributors": [
|
||||||
|
{
|
||||||
|
"name": "Don Strawsburg",
|
||||||
|
"email": "don@goforward.group",
|
||||||
|
"url": "https://goforward.group/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Sean Strawsburg",
|
||||||
|
"email": "sean@goforward.group",
|
||||||
|
"url": "https://goforward.group/"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
0
Example Code/BasicClassComponent/styles.module.css
Normal file
0
Example Code/BasicClassComponent/styles.module.css
Normal file
10
Example Code/BasicFunctionComponent /index.js
Normal file
10
Example Code/BasicFunctionComponent /index.js
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
import styles from './styles.module.css'
|
||||||
|
|
||||||
|
export const BasicFunctionComponent = () => {
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
export default BasicFunctionComponent;
|
||||||
23
Example Code/BasicFunctionComponent /package.json
Normal file
23
Example Code/BasicFunctionComponent /package.json
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
"name": "basicfunctioncomponent",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"private": true,
|
||||||
|
"main": "./index",
|
||||||
|
"author": {
|
||||||
|
"name": "Don Strawsburg",
|
||||||
|
"email": "don@goforward.group",
|
||||||
|
"url": "https://goforward.group/"
|
||||||
|
},
|
||||||
|
"contributors": [
|
||||||
|
{
|
||||||
|
"name": "Don Strawsburg",
|
||||||
|
"email": "don@goforward.group",
|
||||||
|
"url": "https://goforward.group/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Sean Strawsburg",
|
||||||
|
"email": "sean@goforward.group",
|
||||||
|
"url": "https://goforward.group/"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
14
Example Code/Card/index.css
Normal file
14
Example Code/Card/index.css
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
.card {
|
||||||
|
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
|
||||||
|
max-width: 80%;
|
||||||
|
margin: auto;
|
||||||
|
text-align: center;
|
||||||
|
padding: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.close {
|
||||||
|
font-size: 1.5em;
|
||||||
|
float: right;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
23
Example Code/Card/index.tsx
Normal file
23
Example Code/Card/index.tsx
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
import React from "react";
|
||||||
|
import "./index.css";
|
||||||
|
class Card extends React.Component {
|
||||||
|
|
||||||
|
constructor( props ) {
|
||||||
|
super(props)
|
||||||
|
this.state = { show : true };
|
||||||
|
}
|
||||||
|
|
||||||
|
render() {
|
||||||
|
return (
|
||||||
|
<div className="card" >
|
||||||
|
<span
|
||||||
|
className="close" onClick={this.props.dataclick}
|
||||||
|
datatitle={this.props.title}>×</span>
|
||||||
|
<h3>{this.props.title}</h3>
|
||||||
|
<p>{this.props.content}</p>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
export default Card;
|
||||||
3
Example Code/CardList/index.css
Normal file
3
Example Code/CardList/index.css
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
.cardList {
|
||||||
|
|
||||||
|
}
|
||||||
38
Example Code/CardList/index.js
Normal file
38
Example Code/CardList/index.js
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
import React from "react";
|
||||||
|
import ReactDOM from "react-dom";
|
||||||
|
import Card from "../Card/";
|
||||||
|
import data from "../../data.json";
|
||||||
|
|
||||||
|
class CardList extends React.Component {
|
||||||
|
|
||||||
|
constructor(props) {
|
||||||
|
super(props);
|
||||||
|
this.state = { cards: data.cards };
|
||||||
|
}
|
||||||
|
|
||||||
|
remove() {
|
||||||
|
|
||||||
|
}
|
||||||
|
render() {
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
{
|
||||||
|
this.state.cards.map((card, index) => {
|
||||||
|
return <Card
|
||||||
|
key={index}
|
||||||
|
title={card.title}
|
||||||
|
content={card.content}
|
||||||
|
dataclick={this.remove}
|
||||||
|
/>
|
||||||
|
})
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
export default CardList;
|
||||||
|
|
||||||
38
Example Code/Weather/index.js
Normal file
38
Example Code/Weather/index.js
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
import React from "react";
|
||||||
|
import styles from "./styles.module.css";
|
||||||
|
class Weather extends React.Component {
|
||||||
|
constructor(props) {
|
||||||
|
super(props);
|
||||||
|
this.state = {
|
||||||
|
show: true,
|
||||||
|
|
||||||
|
};
|
||||||
|
this.props = {
|
||||||
|
name : '',
|
||||||
|
temperature : '',
|
||||||
|
temperatureUnit : '',
|
||||||
|
detailedForecast : '',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
render() {
|
||||||
|
return (
|
||||||
|
<div className="card">
|
||||||
|
<span
|
||||||
|
className="close"
|
||||||
|
onClick={this.props.dataclick}
|
||||||
|
datatitle={this.props.title}
|
||||||
|
>×
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<p>{this.props.name}</p>
|
||||||
|
<p>{this.props.temperature}</p>
|
||||||
|
<p>{this.props.temperatureUnit}</p>
|
||||||
|
<p>{this.props.detailedForecast}</p>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
export default Weather;
|
||||||
14
Example Code/Weather/styles.module.css
Normal file
14
Example Code/Weather/styles.module.css
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
.card {
|
||||||
|
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
|
||||||
|
max-width: 80%;
|
||||||
|
margin: auto;
|
||||||
|
text-align: center;
|
||||||
|
padding: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.close {
|
||||||
|
font-size: 1.5em;
|
||||||
|
float: right;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
3
Example Code/WeatherList/index.css
Normal file
3
Example Code/WeatherList/index.css
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
.cardList {
|
||||||
|
|
||||||
|
}
|
||||||
54
Example Code/WeatherList/index.js
Normal file
54
Example Code/WeatherList/index.js
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
import React from "react";
|
||||||
|
import ReactDOM from "react-dom";
|
||||||
|
import Weather from "../Weather";
|
||||||
|
|
||||||
|
class WeatherList extends React.Component {
|
||||||
|
|
||||||
|
constructor(props) {
|
||||||
|
super(props);
|
||||||
|
this.state = { periods: [] };
|
||||||
|
}
|
||||||
|
|
||||||
|
remove() {
|
||||||
|
|
||||||
|
}
|
||||||
|
render() {
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
{
|
||||||
|
this.state.periods.map((period, index) => {
|
||||||
|
return <Weather
|
||||||
|
key={index}
|
||||||
|
name={period.name}
|
||||||
|
temperature={period.temperature}
|
||||||
|
temperatureUnit={period.temperatureUnit}
|
||||||
|
detailedForecast={period.detailedForecast}
|
||||||
|
dataclick={this.remove}
|
||||||
|
/>
|
||||||
|
})
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
getData() {
|
||||||
|
fetch("https://api.weather.gov/gridpoints/MLB/25,69/forecast")
|
||||||
|
.then(response => response.json())
|
||||||
|
.then(data => this.setState({ periods : data.properties.periods}))
|
||||||
|
.then(data => console.log(data));
|
||||||
|
this.setState({
|
||||||
|
detailedForcast : 'Test Detailed forcast',
|
||||||
|
name : 'Test data',
|
||||||
|
temperature : '90',
|
||||||
|
temperatureUnit : 'Celcius'});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
componentDidMount() {
|
||||||
|
this.getData();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
export default WeatherList;
|
||||||
11
Example Code/fetchData.tsx
Normal file
11
Example Code/fetchData.tsx
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
export default async function Page() {
|
||||||
|
let data = await fetch('https://api.vercel.app/blog')
|
||||||
|
let posts = await data.json()
|
||||||
|
return (
|
||||||
|
<ul>
|
||||||
|
{posts.map((post) => (
|
||||||
|
<li key={post.id}>{post.title}</li>
|
||||||
|
))}
|
||||||
|
</ul>
|
||||||
|
)
|
||||||
|
}
|
||||||
74
components/Footer/FooterLinks/index copy.js
Normal file
74
components/Footer/FooterLinks/index copy.js
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
import React, { Component } from 'react'
|
||||||
|
import PropTypes from 'prop-types' //ES6
|
||||||
|
import styles from './styles.module.css'
|
||||||
|
import List from '@mui/material/List'
|
||||||
|
import ListItem from '@mui/material/ListItem';
|
||||||
|
import ListItemText from '@mui/material/ListItemText';
|
||||||
|
import TypoGraphy from '@mui/material/Typography'
|
||||||
|
import Link from 'next/link'
|
||||||
|
import { makeStyles } from '@mui/material/styles';
|
||||||
|
|
||||||
|
const useStyles = makeStyles((theme) => ({
|
||||||
|
root: {
|
||||||
|
width: '75%',
|
||||||
|
maxWidth: 260,
|
||||||
|
/* backgroundColor: theme.palette.background.paper, */
|
||||||
|
float : 'right',
|
||||||
|
marginRight:'2%',
|
||||||
|
fontSize : '.80em'
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
}));
|
||||||
|
|
||||||
|
export default function FooterLinks() {
|
||||||
|
|
||||||
|
const classes = useStyles();
|
||||||
|
return (
|
||||||
|
<div className={classes.root}>
|
||||||
|
<TypoGraphy variant="subtitle1" color="inherit" >
|
||||||
|
<List component="nav" >
|
||||||
|
|
||||||
|
<ListItemText inset >
|
||||||
|
<TypoGraphy color="inherit" variant="subtitle2">
|
||||||
|
<Link href="/info/faq"><a className={styles.navLinks}>FAQ</a></Link>
|
||||||
|
</TypoGraphy>
|
||||||
|
</ListItemText>
|
||||||
|
|
||||||
|
<ListItemText inset >
|
||||||
|
<TypoGraphy color="inherit" variant="subtitle2">
|
||||||
|
<Link href="/info/tos"><a className={styles.navLinks}>Terms Of Service</a></Link>
|
||||||
|
</TypoGraphy>
|
||||||
|
</ListItemText>
|
||||||
|
|
||||||
|
<ListItemText inset>
|
||||||
|
<TypoGraphy color="inherit" variant="subtitle2">
|
||||||
|
<Link href="/info/contactus"><a className={styles.navLinks}>Contact Us</a></Link>
|
||||||
|
</TypoGraphy>
|
||||||
|
</ListItemText>
|
||||||
|
|
||||||
|
<ListItemText inset>
|
||||||
|
<TypoGraphy color="inherit" variant="subtitle2">
|
||||||
|
<Link href="/info/privacypolicy"><a className={styles.navLinks}>Privacy Policy</a></Link>
|
||||||
|
</TypoGraphy>
|
||||||
|
</ListItemText>
|
||||||
|
|
||||||
|
<ListItemText inset>
|
||||||
|
<TypoGraphy color="inherit" variant="subtitle2">
|
||||||
|
<Link href="/info/pip"><a className={styles.navLinks}>Personal Information Policy</a></Link>
|
||||||
|
</TypoGraphy>
|
||||||
|
</ListItemText>
|
||||||
|
|
||||||
|
<ListItemText inset>
|
||||||
|
<TypoGraphy color="inherit" variant="subtitle2">
|
||||||
|
<Link href="/info/disclosure"><a className={styles.navLinks}>Disclosure</a></Link>
|
||||||
|
</TypoGraphy>
|
||||||
|
</ListItemText>
|
||||||
|
|
||||||
|
|
||||||
|
</List>
|
||||||
|
</TypoGraphy>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
68
components/Footer/FooterLinks/index.js
Normal file
68
components/Footer/FooterLinks/index.js
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
import React, { Component } from 'react'
|
||||||
|
import PropTypes from 'prop-types' //ES6
|
||||||
|
import styles from './styles.module.css'
|
||||||
|
import List from '@mui/material/List'
|
||||||
|
import ListItem from '@mui/material/ListItem';
|
||||||
|
import ListItemText from '@mui/material/ListItemText';
|
||||||
|
import TypoGraphy from '@mui/material/Typography'
|
||||||
|
import Link from 'next/link'
|
||||||
|
import { withStyles } from '@mui/material/styles';
|
||||||
|
import styled from '@emotion/styled'
|
||||||
|
import FooterLink from '@/fragments/FooterLink';
|
||||||
|
|
||||||
|
// SS - IDK what this is. It feels hacky..
|
||||||
|
// DS - Because it is hacky, its stupid javascript magic
|
||||||
|
// const useStyles = theme => ({ //const makes a constant, => defines a function,
|
||||||
|
// so it looks like useStyles will end up beign a function that is actually the theme function
|
||||||
|
// the useStyles function will have properties in root, so useStyles.root
|
||||||
|
// root: {
|
||||||
|
// width: '75%',
|
||||||
|
// maxWidth: 260,
|
||||||
|
// /* backgroundColor: theme.palette.background.paper, */
|
||||||
|
// float: 'right',
|
||||||
|
// marginRight: '2%',
|
||||||
|
// fontSize: '.80em'
|
||||||
|
// },
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
|
||||||
|
class FooterLinks extends React.Component {
|
||||||
|
constructor(props) {
|
||||||
|
super(props)
|
||||||
|
this.state = {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
render() {
|
||||||
|
const { classes } = this.props;
|
||||||
|
return (
|
||||||
|
<FooterLinksStyled>
|
||||||
|
<div className="footer-links">
|
||||||
|
<List component="nav" >
|
||||||
|
<React.Fragment>
|
||||||
|
<FooterLink href="/info/faq" title="FAQ" />
|
||||||
|
<FooterLink href="/info/tos" title="Terms Of Service" />
|
||||||
|
<FooterLink href="/info/contactus" title="Contact Us" />
|
||||||
|
<FooterLink href="/info/privacypolicy" title="Privacy Policy" />
|
||||||
|
<FooterLink href="/info/pip" title="Personal Information Policy" />
|
||||||
|
<FooterLink href="/info/disclosure" title="Disclosure" />
|
||||||
|
<FooterLink href="/info/about" title="About Us" />
|
||||||
|
</React.Fragment>
|
||||||
|
</List>
|
||||||
|
</div>
|
||||||
|
</FooterLinksStyled>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const FooterLinksStyled = styled.div`
|
||||||
|
.footer-links nav {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: space-around;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
`
|
||||||
|
// export default withStyles(useStyles)(FooterLinks);
|
||||||
|
|
||||||
|
export default FooterLinks;
|
||||||
23
components/Footer/FooterLinks/package.json
Normal file
23
components/Footer/FooterLinks/package.json
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
"name": "footerlinks",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"private": true,
|
||||||
|
"main": "./index",
|
||||||
|
"author": {
|
||||||
|
"name": "Don Strawsburg",
|
||||||
|
"email": "don@goforward.group",
|
||||||
|
"url": "https://goforward.group/"
|
||||||
|
},
|
||||||
|
"contributors": [
|
||||||
|
{
|
||||||
|
"name": "Don Strawsburg",
|
||||||
|
"email": "don@goforward.group",
|
||||||
|
"url": "https://goforward.group/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Sean Strawsburg",
|
||||||
|
"email": "sean@goforward.group",
|
||||||
|
"url": "https://goforward.group/"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
7
components/Footer/FooterLinks/styles.module.css
Normal file
7
components/Footer/FooterLinks/styles.module.css
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
.navLinks {
|
||||||
|
color:#000;
|
||||||
|
}
|
||||||
|
.navLinks:hover {
|
||||||
|
font-weight: bold;
|
||||||
|
text-decoration : none;
|
||||||
|
}
|
||||||
43
components/Footer/index.tsx
Normal file
43
components/Footer/index.tsx
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
import React, { Component } from "react";
|
||||||
|
import PropTypes from "prop-types";
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
import Copyright from "@/components/Info/Copyright";
|
||||||
|
import FooterLinks from "./FooterLinks";
|
||||||
|
import Link from "next/link";
|
||||||
|
import { infoLinks } from "@/lib/linkList/infoLinks";
|
||||||
|
import { sectionLinks } from "@/lib/linkList/sectionLinks";
|
||||||
|
import Armory from '@/fragments/Armory';
|
||||||
|
import GroundZero from "@/fragments/GroundZero";
|
||||||
|
import Information from "@/fragments/Information";
|
||||||
|
export const Footer = () => {
|
||||||
|
|
||||||
|
return (
|
||||||
|
// <div className={styles.Footer}>
|
||||||
|
// <FooterLinks></FooterLinks>
|
||||||
|
// <Copyright></Copyright>
|
||||||
|
// </div>
|
||||||
|
<>
|
||||||
|
<footer className={styles.footer}>
|
||||||
|
<nav className={styles.linksContainer}>
|
||||||
|
<div className={styles.brand}>
|
||||||
|
<div className={styles.logo}>
|
||||||
|
<span>Logo</span>
|
||||||
|
</div>
|
||||||
|
<p>Find Parts.</p>
|
||||||
|
<p>Build Guns.</p>
|
||||||
|
<p>Freedom On.</p>
|
||||||
|
</div>
|
||||||
|
<Armory titleText="Armory"/>
|
||||||
|
<GroundZero titleText="Ground Zero"/>
|
||||||
|
<Information titleText="Information"/>
|
||||||
|
</nav>
|
||||||
|
</footer>
|
||||||
|
<Copyright></Copyright>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Footer.propTypes = {};
|
||||||
|
|
||||||
|
export default Footer;
|
||||||
23
components/Footer/package.json
Normal file
23
components/Footer/package.json
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
"name": "footer",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"private": true,
|
||||||
|
"main": "./index",
|
||||||
|
"author": {
|
||||||
|
"name": "Don Strawsburg",
|
||||||
|
"email": "don@goforward.group",
|
||||||
|
"url": "https://goforward.group/"
|
||||||
|
},
|
||||||
|
"contributors": [
|
||||||
|
{
|
||||||
|
"name": "Don Strawsburg",
|
||||||
|
"email": "don@goforward.group",
|
||||||
|
"url": "https://goforward.group/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Sean Strawsburg",
|
||||||
|
"email": "sean@goforward.group",
|
||||||
|
"url": "https://goforward.group/"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
59
components/Footer/styles.module.scss
Normal file
59
components/Footer/styles.module.scss
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
@import '../../scss/variables.scss';
|
||||||
|
|
||||||
|
.footer {
|
||||||
|
background: #4c5c3f;
|
||||||
|
min-height: 300px;
|
||||||
|
height: 100%;
|
||||||
|
padding: 1rem 0;
|
||||||
|
border-top: 2px solid #000;
|
||||||
|
|
||||||
|
.brand {
|
||||||
|
font-weight: bolder;
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 1px;
|
||||||
|
font-size: 1.25em;
|
||||||
|
color:#FFF;
|
||||||
|
|
||||||
|
.logo span {
|
||||||
|
display: inline-block;
|
||||||
|
height: 100px;
|
||||||
|
width: 100px;
|
||||||
|
background: #FFF;
|
||||||
|
color:#4c5c3f;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.linksContainer {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-around;
|
||||||
|
align-items: flex-start;
|
||||||
|
|
||||||
|
ul {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
list-style: none;
|
||||||
|
padding: 0;
|
||||||
|
|
||||||
|
li {
|
||||||
|
color:#FFF;
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: #fff;
|
||||||
|
transition: all 500ms ease;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
color: #ADA17B;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
h4 {
|
||||||
|
color: #FFF;
|
||||||
|
border-bottom: 2px solid #fff;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
108
components/Header/index.tsx
Normal file
108
components/Header/index.tsx
Normal file
@@ -0,0 +1,108 @@
|
|||||||
|
import React, { Component } from 'react';
|
||||||
|
import PropTypes from 'prop-types'; //ES6
|
||||||
|
import styles from './styles.module.css';
|
||||||
|
import Link from 'next/link';
|
||||||
|
import AppBar from '@mui/material/AppBar';
|
||||||
|
import Toolbar from '@mui/material/Toolbar';
|
||||||
|
import List from '@mui/material/List';
|
||||||
|
import ListItem from '@mui/material/ListItem';
|
||||||
|
import ListItemText from '@mui/material//ListItemText';
|
||||||
|
// import TypoGraphy from '@mui/material/Typography';
|
||||||
|
import Button from '@mui/material//Button';
|
||||||
|
import { infoLinks } from '@/lib/linkList/infoLinks';
|
||||||
|
import sectionLinks from '@/lib/linkList/sectionLinks';
|
||||||
|
|
||||||
|
export default class Header extends Component {
|
||||||
|
constructor(props) {
|
||||||
|
super(props)
|
||||||
|
this.state = {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
render() {
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
<div className="topheader">
|
||||||
|
<Link href="/"><a className="logo">Gun Builder</a>
|
||||||
|
</Link>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<AppBar position="static">
|
||||||
|
<Toolbar>
|
||||||
|
<List component="nav">
|
||||||
|
<ListItem component="div" className="nav-item">
|
||||||
|
<ListItemText inset>
|
||||||
|
<Link href={sectionLinks.UPPERS.URL}><a className={styles.navLinks}>{sectionLinks.UPPERS.TEXT}</a></Link>
|
||||||
|
</ListItemText>
|
||||||
|
|
||||||
|
<ListItemText inset>
|
||||||
|
<Link href={sectionLinks.PARTSLIST.URL}><a className={styles.navLinks}>{sectionLinks.PARTSLIST.TEXT}</a></Link>
|
||||||
|
</ListItemText>
|
||||||
|
|
||||||
|
<ListItemText inset>
|
||||||
|
<Link href={sectionLinks.BUILDS.URL}><a className={styles.navLinks}>{sectionLinks.BUILDS.TEXT}</a></Link>
|
||||||
|
</ListItemText>
|
||||||
|
|
||||||
|
<ListItemText inset>
|
||||||
|
<Link href={sectionLinks.BLOG.URL}><a className={styles.navLinks}>{sectionLinks.BLOG.TEXT}</a></Link>
|
||||||
|
</ListItemText>
|
||||||
|
|
||||||
|
{/* <ListItemText inset>
|
||||||
|
<Link href="/admin"><a className={styles.navLinks}>Admin</a></Link>
|
||||||
|
</ListItemText> */}
|
||||||
|
</ListItem>
|
||||||
|
|
||||||
|
</List>
|
||||||
|
</Toolbar>
|
||||||
|
</AppBar>
|
||||||
|
|
||||||
|
<style jsx>{`
|
||||||
|
header {
|
||||||
|
background:#101010;
|
||||||
|
color:#fff;
|
||||||
|
}
|
||||||
|
.topheader {
|
||||||
|
background:#111;
|
||||||
|
height: 4em;
|
||||||
|
color: #000;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.topheader a {
|
||||||
|
color:#fff;
|
||||||
|
padding-left: 15px;
|
||||||
|
text-transform: uppercase;
|
||||||
|
font-weight: bold;
|
||||||
|
letter-spacing: 2px;
|
||||||
|
}
|
||||||
|
.nav {
|
||||||
|
display: flex;
|
||||||
|
background: #4c5d34;
|
||||||
|
}
|
||||||
|
ul {
|
||||||
|
list-style: none;
|
||||||
|
padding: 0;
|
||||||
|
display: flex;
|
||||||
|
margin: 0;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
ul li {
|
||||||
|
margin-right: 10px;
|
||||||
|
padding:1em 1.5em;
|
||||||
|
border-right:2px solid rgba(0,0,0,.3);
|
||||||
|
text-transform: uppercase;
|
||||||
|
font-weight:bold;
|
||||||
|
letter-spacing:2px;
|
||||||
|
}
|
||||||
|
`}</style>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Header.propTypes = {
|
||||||
|
|
||||||
|
};
|
||||||
23
components/Header/package.json
Normal file
23
components/Header/package.json
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
"name": "header",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"private": true,
|
||||||
|
"main": "./index",
|
||||||
|
"author": {
|
||||||
|
"name": "Don Strawsburg",
|
||||||
|
"email": "don@goforward.group",
|
||||||
|
"url": "https://goforward.group/"
|
||||||
|
},
|
||||||
|
"contributors": [
|
||||||
|
{
|
||||||
|
"name": "Don Strawsburg",
|
||||||
|
"email": "don@goforward.group",
|
||||||
|
"url": "https://goforward.group/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Sean Strawsburg",
|
||||||
|
"email": "sean@goforward.group",
|
||||||
|
"url": "https://goforward.group/"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
13
components/Header/styles.module.css
Normal file
13
components/Header/styles.module.css
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
.navLinks {
|
||||||
|
color:white;
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 2px;
|
||||||
|
font-weight: bold;
|
||||||
|
transition: all 500ms ease;
|
||||||
|
}
|
||||||
|
.navLinks:hover {
|
||||||
|
text-decoration : none;
|
||||||
|
}
|
||||||
|
.nav-item:hover {
|
||||||
|
background-color: pink;
|
||||||
|
}
|
||||||
45
components/Hero/index.tsx
Normal file
45
components/Hero/index.tsx
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import Typography from '@mui/material/Typography';
|
||||||
|
import MuiLink from '@mui/material/Link';
|
||||||
|
import Button from '@mui/material/Button';
|
||||||
|
|
||||||
|
export default class Hero extends React.Component {
|
||||||
|
constructor(props) {
|
||||||
|
super(props);
|
||||||
|
this.state = {
|
||||||
|
show: true,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
render() {
|
||||||
|
return (
|
||||||
|
|
||||||
|
<div className="hero" styles={{ backgroundImage:`url({${this.props.image}})` }}>
|
||||||
|
<div className="hero-text">
|
||||||
|
<h3>{this.props.heading}</h3>
|
||||||
|
<p>{this.props.subheading}</p>
|
||||||
|
<Button href={this.props.link} variant="contained" color="primary">
|
||||||
|
{this.props.linktext}
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<style jsx>{`
|
||||||
|
.hero {
|
||||||
|
// background:url('/gb-hero.jpg');
|
||||||
|
background-size:cover;
|
||||||
|
min-height:35vw;
|
||||||
|
color: #fff;
|
||||||
|
display:flex;
|
||||||
|
justify-content: center;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
.hero-text {
|
||||||
|
padding: 2em;
|
||||||
|
}
|
||||||
|
`}</style>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
23
components/Hero/package.json
Normal file
23
components/Hero/package.json
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
"name": "hero",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"private": true,
|
||||||
|
"main": "./index",
|
||||||
|
"author": {
|
||||||
|
"name": "Don Strawsburg",
|
||||||
|
"email": "don@goforward.group",
|
||||||
|
"url": "https://goforward.group/"
|
||||||
|
},
|
||||||
|
"contributors": [
|
||||||
|
{
|
||||||
|
"name": "Don Strawsburg",
|
||||||
|
"email": "don@goforward.group",
|
||||||
|
"url": "https://goforward.group/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Sean Strawsburg",
|
||||||
|
"email": "sean@goforward.group",
|
||||||
|
"url": "https://goforward.group/"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
0
components/Hero/styles.module.css
Normal file
0
components/Hero/styles.module.css
Normal file
132
components/SignIn/index.tsx
Normal file
132
components/SignIn/index.tsx
Normal file
@@ -0,0 +1,132 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import Avatar from '@mui/material/Avatar';
|
||||||
|
import Button from '@mui/material/Button';
|
||||||
|
import CssBaseline from '@mui/material/CssBaseline';
|
||||||
|
import TextField from '@mui/material/TextField';
|
||||||
|
import FormControlLabel from '@mui/material/FormControlLabel';
|
||||||
|
import Checkbox from '@mui/material/Checkbox';
|
||||||
|
import Link from '@mui/material/Link';
|
||||||
|
import Paper from '@mui/material/Paper';
|
||||||
|
import Box from '@mui/material/Box';
|
||||||
|
import Grid from '@mui/material/Grid';
|
||||||
|
import LockOutlinedIcon from '@material-ui/icons/LockOutlined';
|
||||||
|
import Typography from '@mui/material/Typography';
|
||||||
|
import { makeStyles } from '@mui/material/styles';
|
||||||
|
import styles from "./styles.module.css";
|
||||||
|
|
||||||
|
function Copyright() {
|
||||||
|
return (
|
||||||
|
<Typography variant="body2" color="textSecondary" align="center">
|
||||||
|
{'Copyright © '}
|
||||||
|
<Link color="inherit" href="https://material-ui.com/">
|
||||||
|
Your Website
|
||||||
|
</Link>{' '}
|
||||||
|
{new Date().getFullYear()}
|
||||||
|
{'.'}
|
||||||
|
</Typography>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const useStyles = makeStyles((theme) => ({
|
||||||
|
root: {
|
||||||
|
height: '100vh',
|
||||||
|
},
|
||||||
|
image: {
|
||||||
|
backgroundImage: 'url(https://source.unsplash.com/random)',
|
||||||
|
backgroundRepeat: 'no-repeat',
|
||||||
|
backgroundColor:
|
||||||
|
theme.palette.type === 'light' ? theme.palette.grey[50] : theme.palette.grey[900],
|
||||||
|
backgroundSize: 'cover',
|
||||||
|
backgroundPosition: 'center',
|
||||||
|
},
|
||||||
|
paper: {
|
||||||
|
margin: theme.spacing(8, 4),
|
||||||
|
display: 'flex',
|
||||||
|
flexDirection: 'column',
|
||||||
|
alignItems: 'center',
|
||||||
|
},
|
||||||
|
avatar: {
|
||||||
|
margin: theme.spacing(1),
|
||||||
|
backgroundColor: theme.palette.secondary.main,
|
||||||
|
},
|
||||||
|
form: {
|
||||||
|
width: '100%', // Fix IE 11 issue.
|
||||||
|
marginTop: theme.spacing(1),
|
||||||
|
},
|
||||||
|
submit: {
|
||||||
|
margin: theme.spacing(3, 0, 2),
|
||||||
|
},
|
||||||
|
}));
|
||||||
|
|
||||||
|
export default function SignInSide() {
|
||||||
|
const classes = useStyles();
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Grid container component="main" className={classes.root}>
|
||||||
|
<CssBaseline />
|
||||||
|
<Grid item xs={false} sm={4} md={7} className={classes.image} />
|
||||||
|
<Grid item xs={12} sm={8} md={5} component={Paper} elevation={6} square>
|
||||||
|
<div className={classes.paper}>
|
||||||
|
<Avatar className={classes.avatar}>
|
||||||
|
<LockOutlinedIcon />
|
||||||
|
</Avatar>
|
||||||
|
<Typography component="h1" variant="h5">
|
||||||
|
Sign in
|
||||||
|
</Typography>
|
||||||
|
<form className={classes.form} noValidate>
|
||||||
|
<TextField
|
||||||
|
variant="outlined"
|
||||||
|
margin="normal"
|
||||||
|
required
|
||||||
|
fullWidth
|
||||||
|
id="email"
|
||||||
|
label="Email Address"
|
||||||
|
name="email"
|
||||||
|
autoComplete="email"
|
||||||
|
autoFocus
|
||||||
|
/>
|
||||||
|
<TextField
|
||||||
|
variant="outlined"
|
||||||
|
margin="normal"
|
||||||
|
required
|
||||||
|
fullWidth
|
||||||
|
name="password"
|
||||||
|
label="Password"
|
||||||
|
type="password"
|
||||||
|
id="password"
|
||||||
|
autoComplete="current-password"
|
||||||
|
/>
|
||||||
|
<FormControlLabel
|
||||||
|
control={<Checkbox value="remember" color="primary" />}
|
||||||
|
label="Remember me"
|
||||||
|
/>
|
||||||
|
<Button
|
||||||
|
type="submit"
|
||||||
|
fullWidth
|
||||||
|
variant="contained"
|
||||||
|
color="primary"
|
||||||
|
className={classes.submit}
|
||||||
|
>
|
||||||
|
Sign In
|
||||||
|
</Button>
|
||||||
|
<Grid container>
|
||||||
|
<Grid item xs>
|
||||||
|
<Link href="#" variant="body2">
|
||||||
|
Forgot password?
|
||||||
|
</Link>
|
||||||
|
</Grid>
|
||||||
|
<Grid item>
|
||||||
|
<Link href="#" variant="body2">
|
||||||
|
{"Don't have an account? Sign Up"}
|
||||||
|
</Link>
|
||||||
|
</Grid>
|
||||||
|
</Grid>
|
||||||
|
<Box mt={5}>
|
||||||
|
<Copyright />
|
||||||
|
</Box>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</Grid>
|
||||||
|
</Grid>
|
||||||
|
);
|
||||||
|
}
|
||||||
23
components/SignIn/package.json
Normal file
23
components/SignIn/package.json
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
"name": "signin",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"private": true,
|
||||||
|
"main": "./index",
|
||||||
|
"author": {
|
||||||
|
"name": "Don Strawsburg",
|
||||||
|
"email": "don@goforward.group",
|
||||||
|
"url": "https://goforward.group/"
|
||||||
|
},
|
||||||
|
"contributors": [
|
||||||
|
{
|
||||||
|
"name": "Don Strawsburg",
|
||||||
|
"email": "don@goforward.group",
|
||||||
|
"url": "https://goforward.group/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Sean Strawsburg",
|
||||||
|
"email": "sean@goforward.group",
|
||||||
|
"url": "https://goforward.group/"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
1
components/SignIn/styles.module.css
Normal file
1
components/SignIn/styles.module.css
Normal file
@@ -0,0 +1 @@
|
|||||||
|
|
||||||
28
lib/constants.ts
Normal file
28
lib/constants.ts
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
export const APP_NAME = "The Gun Bag - Gun Builder";
|
||||||
|
export const COMPANY_NAME = "DarkShark Technologies, LLC";
|
||||||
|
export const COMPANY_URL = "https://goforward.group";
|
||||||
|
export const AUTHOR = "DarkShark Technologies, LLC";
|
||||||
|
export const META_KEYWORDS = "Pew Pew";
|
||||||
|
export const META_DESCRIPTION = "Pow Pow";
|
||||||
|
export default {
|
||||||
|
APP_NAME: 'The Gun Bag - Gun Builder',
|
||||||
|
SITE_NAME: 'Gun Builder',
|
||||||
|
COMPANY_NAME: 'DarkShark Technologies, LLC',
|
||||||
|
COMPANY_URL: 'https://goforward.group',
|
||||||
|
AUTHOR: 'DarkShark Technologies, LLC',
|
||||||
|
META_KEYWORDS: 'Pew Pew',
|
||||||
|
META_DESCRIPTION: 'Pow Pow',
|
||||||
|
PJAM_RAINIER: 'https://api.pepperjamnetwork.com/20120402/publisher/creative/product?apiKey=17c11367569cc10dce51e6a5900d0c7c8b390c9cb2d2cecc25b3ed53a3b8649b&format=json&programIds=8713',
|
||||||
|
PJAM_BARRETTA: 'https://api.pepperjamnetwork.com/20120402/publisher/creative/product?apiKey=17c11367569cc10dce51e6a5900d0c7c8b390c9cb2d2cecc25b3ed53a3b8649b&format=json&programIds=8342'
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export enum SITE_CONT_TYPE {
|
||||||
|
CONTACTUS = "CONTACTUS",
|
||||||
|
PRIVACYPOLICY = "PP",
|
||||||
|
PERSONALINFOPOLICY = "PIP",
|
||||||
|
FAQ = "FAQ",
|
||||||
|
TERMSOFSERVICE = "TOS",
|
||||||
|
ABOUTUS="ABOUTUS",
|
||||||
|
DISCLOSURE="DISCLOSURE"
|
||||||
|
}
|
||||||
38
lib/linkList/infoLinks.js
Normal file
38
lib/linkList/infoLinks.js
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
export const infoLinks = {
|
||||||
|
ABOUT: {
|
||||||
|
URL: "/info/about",
|
||||||
|
TEXT: "About Us",
|
||||||
|
TIP: "About Us"
|
||||||
|
},
|
||||||
|
TOS: {
|
||||||
|
URL: "/info/tos",
|
||||||
|
TEXT: "Terms Of Service",
|
||||||
|
TIP: "Terms Of Service"
|
||||||
|
},
|
||||||
|
PRIVACYPOLICY: {
|
||||||
|
URL: "/info/privacypolicy",
|
||||||
|
TEXT: "Privacy Policy",
|
||||||
|
TIP: "Privacy Policy"
|
||||||
|
},
|
||||||
|
FAQ: {
|
||||||
|
URL: "/info/faq",
|
||||||
|
TEXT: "FAQ",
|
||||||
|
TIP: "FAQ"
|
||||||
|
},
|
||||||
|
DISCLOSURE: {
|
||||||
|
URL: "/info/disclosure",
|
||||||
|
TEXT: "Disclosure",
|
||||||
|
TIP: "Disclosure",
|
||||||
|
},
|
||||||
|
PIP: {
|
||||||
|
URL: "/info/pip",
|
||||||
|
TEXT: "Personal Information Policy",
|
||||||
|
TIP: "Personal Information Policy"
|
||||||
|
},
|
||||||
|
CONTACTUS: {
|
||||||
|
URL: "/info/contactus",
|
||||||
|
TEXT: "Contact Us",
|
||||||
|
TIP: "Contact Us"
|
||||||
|
}
|
||||||
|
};
|
||||||
|
export default infoLinks;
|
||||||
86
lib/linkList/sectionLinks.js
Normal file
86
lib/linkList/sectionLinks.js
Normal file
@@ -0,0 +1,86 @@
|
|||||||
|
export const sectionLinks = {
|
||||||
|
UPPERS: {
|
||||||
|
URL: "/products/rifleuppers",
|
||||||
|
TEXT: "Rifle Uppers",
|
||||||
|
TIP: "Rifle Uppers"
|
||||||
|
},
|
||||||
|
LOWERS: {
|
||||||
|
URL: "/products/lowers",
|
||||||
|
TEXT: "Lowers",
|
||||||
|
TIP: "Lowers"
|
||||||
|
},
|
||||||
|
PARTSLIST: {
|
||||||
|
URL: "/products/partslist",
|
||||||
|
TEXT: "Parts List",
|
||||||
|
TIP: "Parts List"
|
||||||
|
},
|
||||||
|
OPTICS: {
|
||||||
|
URL: "/products/optics",
|
||||||
|
TEXT: "Optics",
|
||||||
|
TIP: "Optics"
|
||||||
|
},
|
||||||
|
BARRELS: {
|
||||||
|
URL: "/products/barrels",
|
||||||
|
TEXT: "Barrels",
|
||||||
|
TIP: "Barrels"
|
||||||
|
},
|
||||||
|
ACCESSORIES: {
|
||||||
|
URL: "/products/accessories",
|
||||||
|
TEXT: "Accessories",
|
||||||
|
TIP: "Accessories"
|
||||||
|
},
|
||||||
|
BUILDGUIDES: {
|
||||||
|
URL: "/knowledge/guides",
|
||||||
|
TEXT: "Guides",
|
||||||
|
TIP: "Guides",
|
||||||
|
},
|
||||||
|
BLOG: {
|
||||||
|
URL: "/blog",
|
||||||
|
TEXT: "Blog",
|
||||||
|
TIP: "Blog"
|
||||||
|
},
|
||||||
|
PRICEDROPS: {
|
||||||
|
URL: "/knowledge/pricedrops",
|
||||||
|
TEXT: "Price Drops",
|
||||||
|
TIP: "Price Drops"
|
||||||
|
},
|
||||||
|
BUILDS: {
|
||||||
|
URL: "/builds",
|
||||||
|
TEXT: "Builds",
|
||||||
|
TIP: "Builds"
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
export const armoryLinks = [
|
||||||
|
{UPPERS: {
|
||||||
|
URL: "/products/rifleuppers",
|
||||||
|
TEXT: "Rifle Uppers",
|
||||||
|
TIP: "Rifle Uppers"
|
||||||
|
}},
|
||||||
|
{LOWERS: {
|
||||||
|
URL: "/products/lowers",
|
||||||
|
TEXT: "Lowers",
|
||||||
|
TIP: "Lowers"
|
||||||
|
}},
|
||||||
|
{PARTSLIST: {
|
||||||
|
URL: "/products/partslist",
|
||||||
|
TEXT: "Parts List",
|
||||||
|
TIP: "Parts List"
|
||||||
|
}},
|
||||||
|
{OPTICS: {
|
||||||
|
URL: "/products/optics",
|
||||||
|
TEXT: "Optics",
|
||||||
|
TIP: "Optics"
|
||||||
|
}},
|
||||||
|
{BARRELS: {
|
||||||
|
URL: "/products/barrels",
|
||||||
|
TEXT: "Barrels",
|
||||||
|
TIP: "Barrels"
|
||||||
|
}},
|
||||||
|
{ACCESSORIES: {
|
||||||
|
URL: "/products/accessories",
|
||||||
|
TEXT: "Accessories",
|
||||||
|
TIP: "Accessories"
|
||||||
|
}}];
|
||||||
|
|
||||||
|
export default sectionLinks;
|
||||||
1252
package-lock.json
generated
1252
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
21
package.json
21
package.json
@@ -9,18 +9,27 @@
|
|||||||
"lint": "next lint"
|
"lint": "next lint"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"react": "19.0.0-rc-66855b96-20241106",
|
"@emotion/react": "^11.13.3",
|
||||||
"react-dom": "19.0.0-rc-66855b96-20241106",
|
"@emotion/styled": "^11.13.0",
|
||||||
"next": "15.0.3"
|
"@mui/icons-material": "^6.1.7",
|
||||||
|
"@mui/joy": "^5.0.0-beta.48",
|
||||||
|
"@mui/material": "^6.1.7",
|
||||||
|
"@mui/styles": "^6.1.7",
|
||||||
|
"@mui/system": "^6.1.7",
|
||||||
|
"@mui/x-data-grid": "^7.22.2",
|
||||||
|
"fontsource-roboto": "^4.0.0",
|
||||||
|
"next": "15.0.3",
|
||||||
|
"react": "18.2.0",
|
||||||
|
"react-dom": "18.2.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"typescript": "^5",
|
|
||||||
"@types/node": "^20",
|
"@types/node": "^20",
|
||||||
"@types/react": "^18",
|
"@types/react": "^18",
|
||||||
"@types/react-dom": "^18",
|
"@types/react-dom": "^18",
|
||||||
|
"eslint": "^8",
|
||||||
|
"eslint-config-next": "15.0.3",
|
||||||
"postcss": "^8",
|
"postcss": "^8",
|
||||||
"tailwindcss": "^3.4.1",
|
"tailwindcss": "^3.4.1",
|
||||||
"eslint": "^8",
|
"typescript": "^5"
|
||||||
"eslint-config-next": "15.0.3"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user