1- import { mdiCrosshairsGps , mdiHeart , mdiHistory , mdiStarFourPoints , mdiTrophy , mdiViewGridPlus } from "@mdi/js" ;
1+ import {
2+ mdiCrosshairsGps ,
3+ mdiHeart ,
4+ mdiHistory ,
5+ mdiInformationOutline ,
6+ mdiStarFourPoints ,
7+ mdiTrophy ,
8+ mdiViewGridPlus ,
9+ } from "@mdi/js" ;
210import Icon from "@mdi/react" ;
311import dayjs from "dayjs" ;
412import relativeTime from "dayjs/plugin/relativeTime" ;
5- import { useEffect } from "react" ;
613import { Button , Card , ListGroup , OverlayTrigger , Tooltip } from "react-bootstrap" ;
7- import { useDispatch , useSelector } from "react-redux" ;
14+ import { useSelector } from "react-redux" ;
815import { Link , useNavigate } from "react-router" ;
916
1017import VertItem from "../components/vertitem.jsx" ;
1118import { useRetrieveAccoListQuery , useRetrieveGrantingQuery } from "../features/call.js" ;
12- import { hideLoad , showLoad } from "../features/part .js" ;
19+ import { useLoadingState } from "../features/hooks .js" ;
1320import { generateIdentity , portraitProvider } from "../features/util.js" ;
1421import Mistaken from "./mistaken.jsx" ;
1522
1623dayjs . extend ( relativeTime ) ;
1724
1825export default function Homepage ( ) {
19- const dispatch = useDispatch ( ) ;
2026 const navigate = useNavigate ( ) ;
2127 const { data : granting , isLoading : isGrantingLoading , error : grantingError } = useRetrieveGrantingQuery ( ) ;
2228 const { data : accolade , isLoading : isAccoladeLoading , error : accoladeError } = useRetrieveAccoListQuery ( ) ;
@@ -32,14 +38,7 @@ export default function Homepage() {
3238 }
3339 } ;
3440
35- // Show or Hide LoadNote
36- useEffect ( ( ) => {
37- if ( isLoading ) {
38- dispatch ( showLoad ( ) ) ;
39- } else {
40- dispatch ( hideLoad ( ) ) ;
41- }
42- } , [ isLoading , dispatch ] ) ;
41+ useLoadingState ( isLoading ) ;
4342
4443 if ( error ) {
4544 return < Mistaken /> ;
@@ -128,6 +127,17 @@ export default function Homepage() {
128127 < Icon path = { mdiCrosshairsGps } size = { 0.875 } className = "me-1" />
129128 Explore badges
130129 </ Button >
130+ < Button
131+ as = { Link }
132+ to = "/addendum"
133+ variant = "outline-secondary"
134+ className = "d-grid d-inline-flex align-items-center ps-1 vibe-border"
135+ size = "sm"
136+ style = { { "--vibe" : vibe } }
137+ >
138+ < Icon path = { mdiInformationOutline } size = { 0.875 } className = "me-1" />
139+ Service information
140+ </ Button >
131141 < Button
132142 as = "a"
133143 href = "https://chat.fedoraproject.org/#/room/#badges:fedoraproject.org"
@@ -175,7 +185,7 @@ export default function Homepage() {
175185 ) }
176186 </ >
177187 }
178- shot = { item . person ?. email ? portraitProvider ( item . person . email , 45 ) : null }
188+ shot = { item . person ?. mail ? portraitProvider ( item . person . mail , 45 ) : null }
179189 link = { `/identity/${ item . person ?. nickname || "" } ` }
180190 />
181191 ) ) }
0 commit comments