forked from UKSOURCE/hailearning.edu.vn
Merge branch 'main' of https://gits.techvanguard.vn/UKSOURCE/hailearning.edu.vn into fix/thanh-23032026-style-scss
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -43,3 +43,4 @@ next-env.d.ts
|
||||
#vs code
|
||||
/.vscode
|
||||
package-lock.json
|
||||
standalone-deploy.tar.gz
|
||||
@@ -3,47 +3,72 @@
|
||||
import { useEffect, useState } from "react";
|
||||
|
||||
export default function Loader() {
|
||||
const [show, setShow] = useState(true);
|
||||
const [show, setShow] = useState(true);
|
||||
|
||||
useEffect(() => {
|
||||
const timer = setTimeout(() => setShow(false), 700);
|
||||
return () => clearTimeout(timer);
|
||||
}, []);
|
||||
useEffect(() => {
|
||||
const timer = setTimeout(() => setShow(false), 1100);
|
||||
return () => clearTimeout(timer);
|
||||
}, []);
|
||||
|
||||
if (!show) return null;
|
||||
if (!show) return null;
|
||||
|
||||
return (
|
||||
<div id="preloader" className="preloader">
|
||||
<div className="animation-preloader">
|
||||
<div className="spinner"></div>
|
||||
<div className="txt-loading">
|
||||
<span data-text-preloader="V" className="letters-loading">V</span>
|
||||
<span data-text-preloader="I" className="letters-loading">I</span>
|
||||
<span data-text-preloader="S" className="letters-loading">S</span>
|
||||
<span data-text-preloader="A" className="letters-loading">A</span>
|
||||
<span data-text-preloader="W" className="letters-loading">W</span>
|
||||
<span data-text-preloader="A" className="letters-loading">A</span>
|
||||
<span data-text-preloader="Y" className="letters-loading">Y</span>
|
||||
</div>
|
||||
<p className="text-center">Loading</p>
|
||||
</div>
|
||||
<div className="loader">
|
||||
<div className="row">
|
||||
<div className="col-3 loader-section section-left">
|
||||
<div className="bg"></div>
|
||||
</div>
|
||||
<div className="col-3 loader-section section-left">
|
||||
<div className="bg"></div>
|
||||
</div>
|
||||
<div className="col-3 loader-section section-right">
|
||||
<div className="bg"></div>
|
||||
</div>
|
||||
<div className="col-3 loader-section section-right">
|
||||
<div className="bg"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
return (
|
||||
<div id="preloader" className="preloader">
|
||||
<div className="animation-preloader">
|
||||
<div className="spinner"></div>
|
||||
<div className="txt-loading">
|
||||
<span data-text-preloader="H" className="letters-loading">
|
||||
H
|
||||
</span>
|
||||
<span data-text-preloader="A" className="letters-loading">
|
||||
A
|
||||
</span>
|
||||
<span data-text-preloader="I" className="letters-loading">
|
||||
I
|
||||
</span>
|
||||
<span data-text-preloader="L" className="letters-loading">
|
||||
L
|
||||
</span>
|
||||
<span data-text-preloader="E" className="letters-loading">
|
||||
E
|
||||
</span>
|
||||
<span data-text-preloader="A" className="letters-loading">
|
||||
A
|
||||
</span>
|
||||
<span data-text-preloader="R" className="letters-loading">
|
||||
R
|
||||
</span>
|
||||
<span data-text-preloader="N" className="letters-loading">
|
||||
N
|
||||
</span>
|
||||
<span data-text-preloader="I" className="letters-loading">
|
||||
I
|
||||
</span>
|
||||
<span data-text-preloader="N" className="letters-loading">
|
||||
N
|
||||
</span>
|
||||
<span data-text-preloader="G" className="letters-loading">
|
||||
G
|
||||
</span>
|
||||
</div>
|
||||
);
|
||||
<p className="text-center">Loading</p>
|
||||
</div>
|
||||
<div className="loader">
|
||||
<div className="row">
|
||||
<div className="col-3 loader-section section-left">
|
||||
<div className="bg"></div>
|
||||
</div>
|
||||
<div className="col-3 loader-section section-left">
|
||||
<div className="bg"></div>
|
||||
</div>
|
||||
<div className="col-3 loader-section section-right">
|
||||
<div className="bg"></div>
|
||||
</div>
|
||||
<div className="col-3 loader-section section-right">
|
||||
<div className="bg"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -9,8 +9,8 @@ import MouseCursor from "./components/MouseCursor";
|
||||
import Script from "next/script";
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "Visaway – Immigration & Visa Consulting HTML Template",
|
||||
description: "Visaway – Immigration & Visa Consulting HTML Template",
|
||||
title: "H.A.I Learning",
|
||||
description: "H.A.I Learning",
|
||||
};
|
||||
|
||||
export default function RootLayout({
|
||||
|
||||
@@ -2,6 +2,7 @@ import type { NextConfig } from "next";
|
||||
|
||||
const nextConfig: NextConfig = {
|
||||
/* config options here */
|
||||
output: "standalone",
|
||||
};
|
||||
|
||||
export default nextConfig;
|
||||
|
||||
6538
package-lock.json
generated
6538
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -45,9 +45,9 @@ Version: 1.0.0
|
||||
--body: #fff;
|
||||
--black: #000;
|
||||
--white: #fff;
|
||||
--theme: #E13833;
|
||||
--theme-2: #0048B4;
|
||||
--header: #151A26;
|
||||
--theme: #BA312E;
|
||||
--theme-2: #071830;
|
||||
--header: #151a26;
|
||||
--text: #535761;
|
||||
--text-2: #0B4E3D;
|
||||
--border: #C9C9C9;
|
||||
@@ -6525,26 +6525,71 @@ html.lenis, html.lenis body {
|
||||
color: var(--theme);
|
||||
position: relative;
|
||||
}
|
||||
.preloader .animation-preloader .txt-loading .letters-loading:nth-child(2):before {
|
||||
.preloader
|
||||
.animation-preloader
|
||||
.txt-loading
|
||||
.letters-loading:nth-child(2):before {
|
||||
animation-delay: 0.1s;
|
||||
}
|
||||
.preloader
|
||||
.animation-preloader
|
||||
.txt-loading
|
||||
.letters-loading:nth-child(3):before {
|
||||
animation-delay: 0.2s;
|
||||
}
|
||||
.preloader .animation-preloader .txt-loading .letters-loading:nth-child(3):before {
|
||||
.preloader
|
||||
.animation-preloader
|
||||
.txt-loading
|
||||
.letters-loading:nth-child(4):before {
|
||||
animation-delay: 0.3s;
|
||||
}
|
||||
.preloader
|
||||
.animation-preloader
|
||||
.txt-loading
|
||||
.letters-loading:nth-child(5):before {
|
||||
animation-delay: 0.4s;
|
||||
}
|
||||
.preloader .animation-preloader .txt-loading .letters-loading:nth-child(4):before {
|
||||
.preloader
|
||||
.animation-preloader
|
||||
.txt-loading
|
||||
.letters-loading:nth-child(6):before {
|
||||
animation-delay: 0.5s;
|
||||
}
|
||||
.preloader
|
||||
.animation-preloader
|
||||
.txt-loading
|
||||
.letters-loading:nth-child(7):before {
|
||||
animation-delay: 0.6s;
|
||||
}
|
||||
.preloader .animation-preloader .txt-loading .letters-loading:nth-child(5):before {
|
||||
.preloader
|
||||
.animation-preloader
|
||||
.txt-loading
|
||||
.letters-loading:nth-child(8):before {
|
||||
animation-delay: 0.7s;
|
||||
}
|
||||
.preloader
|
||||
.animation-preloader
|
||||
.txt-loading
|
||||
.letters-loading:nth-child(8):before {
|
||||
animation-delay: 0.8s;
|
||||
}
|
||||
.preloader .animation-preloader .txt-loading .letters-loading:nth-child(6):before {
|
||||
.preloader
|
||||
.animation-preloader
|
||||
.txt-loading
|
||||
.letters-loading:nth-child(9):before {
|
||||
animation-delay: 0.9s;
|
||||
}
|
||||
.preloader
|
||||
.animation-preloader
|
||||
.txt-loading
|
||||
.letters-loading:nth-child(10):before {
|
||||
animation-delay: 1s;
|
||||
}
|
||||
.preloader .animation-preloader .txt-loading .letters-loading:nth-child(7):before {
|
||||
animation-delay: 1.2s;
|
||||
}
|
||||
.preloader .animation-preloader .txt-loading .letters-loading:nth-child(8):before {
|
||||
animation-delay: 1.4s;
|
||||
.preloader
|
||||
.animation-preloader
|
||||
.txt-loading
|
||||
.letters-loading:nth-child(11):before {
|
||||
animation-delay: 1.1s;
|
||||
}
|
||||
.preloader .animation-preloader .txt-loading .letters-loading::before {
|
||||
animation: letters-loading 4s infinite;
|
||||
|
||||
BIN
public/assets/img/logo/Logo_HaiLearning.jpg
Normal file
BIN
public/assets/img/logo/Logo_HaiLearning.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 60 KiB |
43
standalone-build.sh
Executable file
43
standalone-build.sh
Executable file
@@ -0,0 +1,43 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
echo "=== Next.js Standalone Build ==="
|
||||
|
||||
APP_DIR=$(pwd)
|
||||
BUILD_DIR=".next"
|
||||
STANDALONE_DIR=".next/standalone"
|
||||
|
||||
echo "1. Installing dependencies..."
|
||||
npm install
|
||||
|
||||
echo "2. Building Next.js..."
|
||||
npm run build
|
||||
|
||||
echo "3. Preparing standalone structure..."
|
||||
|
||||
# ensure directories exist
|
||||
mkdir -p $STANDALONE_DIR/.next
|
||||
|
||||
# copy static assets
|
||||
echo "Copying static assets..."
|
||||
cp -r $BUILD_DIR/static $STANDALONE_DIR/.next/ 2>/dev/null || true
|
||||
|
||||
# copy public folder
|
||||
if [ -d "public" ]; then
|
||||
echo "Copying public folder..."
|
||||
cp -r public $STANDALONE_DIR/
|
||||
fi
|
||||
|
||||
echo "4. Creating deploy package..."
|
||||
|
||||
tar -czf standalone-deploy.tar.gz \
|
||||
-C $STANDALONE_DIR . \
|
||||
-C $APP_DIR public 2>/dev/null || true
|
||||
|
||||
echo ""
|
||||
echo "Build completed."
|
||||
echo "Deploy file: standalone-deploy.tar.gz"
|
||||
echo ""
|
||||
echo "Run on server:"
|
||||
echo "PORT=3005 node server.js"
|
||||
Reference in New Issue
Block a user