Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
VCCI-News
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Văn Hoàng
VCCI-News
Commits
696cbc16
Commit
696cbc16
authored
Jan 06, 2026
by
Phạm Quang Bảo
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update/feature loading content
parent
1242be99
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
87 additions
and
69 deletions
+87
-69
index.tsx
src/app/(main)/(home)/components/events/index.tsx
+1
-1
index.tsx
src/app/(main)/(home)/components/featured-news/index.tsx
+42
-36
index.tsx
src/app/(main)/(home)/components/news/index.tsx
+44
-32
No files found.
src/app/(main)/(home)/components/events/index.tsx
View file @
696cbc16
...
...
@@ -26,7 +26,7 @@ function Events() {
<
div
className=
"flex flex-col md:flex-row gap-5"
>
{
isLoading
?
(
<
div
className=
"
container w-full h-[80vh] flex justify-center items-center
"
>
<
div
className=
"
flex flex-col justify-center items-center w-full min-h-[180px] sm:min-h-[220px] p-3
"
>
<
Spinner
/>
</
div
>
)
:
(
...
...
src/app/(main)/(home)/components/featured-news/index.tsx
View file @
696cbc16
...
...
@@ -7,9 +7,10 @@ import Link from "next/link";
import
{
Swiper
,
SwiperSlide
}
from
"swiper/react"
;
import
{
Autoplay
,
Grid
}
from
"swiper/modules"
;
import
BASE_URL
from
"@/links/index"
;
import
{
Spinner
}
from
"@/components/ui/spinner"
;
function
FeaturedNews
()
{
const
{
data
}
=
useGetNews
<
GetNewsResponseType
>
(
const
{
data
,
isLoading
}
=
useGetNews
<
GetNewsResponseType
>
(
{
pageSize
:
'10'
,
}
...
...
@@ -26,7 +27,11 @@ function FeaturedNews() {
<
div
className=
"flex-1 h-px bg-linear-to-l from-transparent via-gray-300 to-gray-400"
></
div
>
</
div
>
</
div
>
{
isLoading
?
(
<
div
className=
"flex justify-center items-center w-full h-64"
>
<
Spinner
/>
</
div
>
)
:
(
<
Swiper
modules=
{
[
Autoplay
]
}
autoplay=
{
{
delay
:
4000
,
disableOnInteraction
:
false
}
}
...
...
@@ -61,6 +66,7 @@ function FeaturedNews() {
</
SwiperSlide
>
))
}
</
Swiper
>
)
}
</
section
>
);
}
...
...
src/app/(main)/(home)/components/news/index.tsx
View file @
696cbc16
...
...
@@ -7,12 +7,13 @@ import { ChevronsRight } from "lucide-react";
import
{
useState
}
from
"react"
;
import
stripImagesAndHtml
from
"@/helpers/stripImageAndHtml"
;
import
CardNews
from
"./components/card-news"
;
import
{
Spinner
}
from
"@/components/ui/spinner"
;
const
News
=
()
=>
{
const
[
tab
,
setTab
]
=
useState
(
"all"
);
const
{
data
:
newsSpecial
}
=
useGetNews
<
GetNewsResponseType
>
({
pageSize
:
'1'
});
const
{
data
:
newsFilters
}
=
useGetNews
<
GetNewsResponseType
>
(
const
{
data
:
newsSpecial
,
isLoading
:
isLoadingSpecial
}
=
useGetNews
<
GetNewsResponseType
>
({
pageSize
:
'1'
});
const
{
data
:
newsFilters
,
isLoading
:
isLoadingFilters
}
=
useGetNews
<
GetNewsResponseType
>
(
{
pageSize
:
'5'
,
filters
:
tab
===
"all"
?
``
:
`page_config.code @=
${
tab
}
`
,
...
...
@@ -38,7 +39,12 @@ const News = () => {
<
hr
className=
"border-[#063e8e] mb-4"
/>
<
div
className=
"flex flex-col md:flex-row gap-5"
>
{
newsSpecial
?.
responseData
.
rows
{
isLoadingSpecial
?
(
<
div
className=
"flex justify-center items-center flex-col w-full md:w-1/2 min-h-[180px] sm:min-h-[220px] gap-3 mb-3"
>
<
Spinner
/>
</
div
>
)
:
(
newsSpecial
?.
responseData
.
rows
.
slice
(
0
,
1
)
.
map
((
news
:
NewsItem
)
=>
(
<
Link
...
...
@@ -64,8 +70,8 @@ const News = () => {
<
p
className=
"line-clamp-4 text-justify"
>
{
stripImagesAndHtml
(
news
.
description
)
}
</
p
>
</
div
>
</
Link
>
))
}
))
)
}
<
div
className=
"w-full md:w-1/2"
>
<
div
className=
"flex flex-wrap gap-2 sm:gap-3 mb-5"
>
<
button
...
...
@@ -105,9 +111,15 @@ const News = () => {
</
button
>
</
div
>
{
newsFilters
?.
responseData
?.
rows
.
slice
(
0
,
4
).
map
((
news
)
=>
(
{
isLoadingFilters
?
(
<
div
className=
"flex justify-center py-10"
>
<
Spinner
/>
</
div
>
)
:
(
newsFilters
?.
responseData
?.
rows
.
slice
(
0
,
4
).
map
((
news
)
=>
(
<
CardNews
key=
{
news
.
id
}
news=
{
news
}
/>
))
}
))
)
}
</
div
>
</
div
>
</
div
>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment