Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 16 additions & 10 deletions index.html
Original file line number Diff line number Diff line change
@@ -1,13 +1,19 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Elearning</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Elearning</title>
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap"
rel="stylesheet"
/>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>
2 changes: 2 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
"@videosdk.live/react-sdk": "^0.1.103",
"antd": "^5.13.1",
"axios": "^1.6.7",
"clsx": "^2.1.1",
"date-fns": "^4.1.0",
"fabric": "^6.4.3",
"firebase": "^11.0.1",
Expand Down
2 changes: 1 addition & 1 deletion src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import Cart from "./pages/cart";
import CourseDetail from "./pages/course";
import Learning from "./pages/learning";
import Filter from "./pages/filter";
import './index.scss'
import './styles/index.scss'
import MyLearning from "./pages/my-learning";
import ProtectedRoute from "./components/protected-route";
import NotFound from "./components/not-found";
Expand Down
Binary file added src/assets/img/150.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions src/assets/img/logo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
47 changes: 47 additions & 0 deletions src/components/button/Button.module.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
.btn {
min-width: 40px;
height: 40px;
display: inline-flex;
align-items: center;
justify-content: center;
border-radius: 6px;
background: #032E32;
text-align: center;
font-size: 1.6rem;
font-weight: 500;
line-height: 175%;
cursor: pointer;
transition: background color;
transition-duration: 0.25s;


&.primary {
background: #FF6934;
color: #fff;

&:hover {
background: #FF4401;
}
}

&.outline {
background: transparent;
border: 1px solid #FF6934;
color: #FF6934;

&:hover {
background: rgb(255, 180, 153, 0.3)
}
}

&.text {
background: transparent;
font-weight: normal;
padding: 0 15px;

&:hover {
color: #FF6934;
background: #FFB499;
}
}
}
23 changes: 23 additions & 0 deletions src/components/button/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import { Link } from "react-router-dom";
import { clsx } from "clsx";
import styles from "./Button.module.scss";

type ButtonVariant = "primary" | "outline" | "text" | "icon";

interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
variant?: ButtonVariant;
leftIcon?: React.ReactNode;
rightIcon?: React.ReactNode;
}

const Button: React.FC<ButtonProps> = ({ children, variant = "primary", leftIcon, rightIcon, className, ...props }) => {
return (
<button className={clsx(styles.btn, styles[variant], className)} {...props}>
{leftIcon && <span className={styles.icon}>{leftIcon}</span>}
<span className={styles.content}>{children}</span>
{rightIcon && <span className={styles.icon}>{rightIcon}</span>}
</button>
);
};

export default Button;
28 changes: 0 additions & 28 deletions src/components/footer/Footer.style.scss
Original file line number Diff line number Diff line change
@@ -1,28 +0,0 @@
.footer-container {
padding: 40px 90px;
background-color: black;
display: flex;
flex-direction: column;
gap: 30px;

.footer-info {
display: flex;
color: white;
gap: 100px;
}

.footer-contact {
color: white;
font-size: 14px;
display: flex;
align-items: center;
justify-content: space-between;

.footer-icon {
font-size: 20px;
display: flex;
align-items: center;
gap: 10px;
}
}
}
52 changes: 4 additions & 48 deletions src/components/footer/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,54 +2,10 @@ import { FaYoutube, FaFacebook, FaTiktok } from 'react-icons/fa6'
import './Footer.style.scss'
function Footer() {
return (
<div className="footer-container">
<div className="footer-info">
<div className="address">
<ul>
<li>Học Lập Trình Để Đi Làm</li>
<li>Điện thoại: 0352304114</li>
<li>Email: thuanngo3072002@gmail.com</li>
<li>Địa chỉ: Thủ Đức, Tp Hồ Chí Minh</li>
</ul>
</div>
<div className="address">
<ul>
<li>Về website</li>
<li>Giới thiệu</li>
<li>Liên hệ</li>
<li>Điều khoản</li>
<li>Bảo mật</li>
</ul>
</div>
<div className="address">
<ul>
<li>Sản phẩm</li>
<li>Giới thiệu</li>
<li>Liên hệ</li>
<li>Điều khoản</li>
<li>Bảo mật</li>
</ul>
</div>
<div className="address">
<ul>
<li>Công cụ</li>
<li>Giới thiệu</li>
<li>Liên hệ</li>
<li>Điều khoản</li>
<li>Bảo mật</li>
</ul>
</div>
</div>
<div className="footer-contact">
<span>© 2023 - 2025 . Nền tảng học lập trình hàng đầu Việt Nam</span>
<div className="footer-icon">
<FaYoutube />
<FaFacebook />
<FaTiktok />
</div>
</div>
</div>
<footer className='footer'>

</footer>
)
}

export default Footer
export default Footer
Loading
Loading