diff --git a/apps/react/src/app/app.tsx b/apps/react/src/app/app.tsx index ae774f3a..d6c462c1 100644 --- a/apps/react/src/app/app.tsx +++ b/apps/react/src/app/app.tsx @@ -1,39 +1,38 @@ import './app.scss'; -import { Link, Route } from 'react-router-dom'; +import { Route } from 'react-router-dom'; +import Nav from './nav/nav'; +import LoginPage from './login-page/login-page'; +import ProductsPage from './products-page/products-page'; export function App() { return ( -
-
- +
+
); } diff --git a/apps/react/src/app/login-page/login-page.scss b/apps/react/src/app/login-page/login-page.scss new file mode 100644 index 00000000..e69de29b diff --git a/apps/react/src/app/login-page/login-page.tsx b/apps/react/src/app/login-page/login-page.tsx new file mode 100644 index 00000000..b94f50ff --- /dev/null +++ b/apps/react/src/app/login-page/login-page.tsx @@ -0,0 +1,26 @@ +import './login-page.scss'; + +export function LoginPage() { + return ( + <> +

Login

+ +
+
+ + +
+ +
+ + +
+ + +
+ + + ); +} + +export default LoginPage; diff --git a/apps/react/src/app/nav/nav.scss b/apps/react/src/app/nav/nav.scss new file mode 100644 index 00000000..e69de29b diff --git a/apps/react/src/app/nav/nav.tsx b/apps/react/src/app/nav/nav.tsx new file mode 100644 index 00000000..697de3fc --- /dev/null +++ b/apps/react/src/app/nav/nav.tsx @@ -0,0 +1,35 @@ +import { Link } from 'react-router-dom'; +import './nav.scss'; + +export function Nav() { + return ( + + ); +} + +export default Nav; diff --git a/apps/react/src/app/products-page/product/product.scss b/apps/react/src/app/products-page/product/product.scss new file mode 100644 index 00000000..e69de29b diff --git a/apps/react/src/app/products-page/product/product.tsx b/apps/react/src/app/products-page/product/product.tsx new file mode 100644 index 00000000..4b1b401d --- /dev/null +++ b/apps/react/src/app/products-page/product/product.tsx @@ -0,0 +1,27 @@ +import './product.scss'; + + +export interface ProductProps { + product: Product; +} + +export interface Product { + id: number; + title: string; + description: string; +} + +export function Product({ product: { title, description, id } }: ProductProps) { + return ( +
+
+
{title}
+
{description}
+ {/* Card link */} + {/* Another link */} +
+
+ ); +} + +export default Product; diff --git a/apps/react/src/app/products-page/products-page.scss b/apps/react/src/app/products-page/products-page.scss new file mode 100644 index 00000000..e69de29b diff --git a/apps/react/src/app/products-page/products-page.tsx b/apps/react/src/app/products-page/products-page.tsx new file mode 100644 index 00000000..bf7a6c83 --- /dev/null +++ b/apps/react/src/app/products-page/products-page.tsx @@ -0,0 +1,28 @@ +import Product from './product/product'; +import './products-page.scss'; + +const products = Array.from({ length: 10 }).map((_, i) => ({ + id: i, + title: `Product ${i}`, + description: 'lorem ipsum' +})) + +export function ProductsPage() { + return ( + <> +

Products

+ +
+ {products.map(product => ( +
+ +
+ ))} + +
+ + + ); +} + +export default ProductsPage; diff --git a/apps/react/src/index.html b/apps/react/src/index.html index 5026f0dd..7b3058d1 100644 --- a/apps/react/src/index.html +++ b/apps/react/src/index.html @@ -1,14 +1,21 @@ - - - React - - - - - - -
- - + + + + React + + + + + + + + + + +
+ + + \ No newline at end of file