diff --git a/src/@types/geese-info.d.ts b/src/@types/geese-info.d.ts new file mode 100644 index 0000000000..395147f6f3 --- /dev/null +++ b/src/@types/geese-info.d.ts @@ -0,0 +1,7 @@ +declare module "geese-info" { + export interface GeeseInfo { + description: string; + id: number; + name: string; + } +} \ No newline at end of file diff --git a/src/api/geese-info.ts b/src/api/geese-info.ts new file mode 100644 index 0000000000..e0136a427f --- /dev/null +++ b/src/api/geese-info.ts @@ -0,0 +1,9 @@ +import { Server } from 'server'; +import { AxiosResponse } from 'axios'; +import { GeeseInfo } from 'geese-info'; + +const getGeeseInfo = (server: Server) => (): Promise> => server.get(`/api/geese-info/`); + +export default (server: Server) => ({ + getGeeseInfo: getGeeseInfo(server), +}); \ No newline at end of file diff --git a/src/api/index.ts b/src/api/index.ts index 790626e82d..22029bc963 100644 --- a/src/api/index.ts +++ b/src/api/index.ts @@ -3,10 +3,12 @@ import postings from './postings'; import server from './server'; import sponsors from './sponsors'; import teams from './teams'; +import geeseInfo from './geese-info'; export default { postings: postings(server), teams: teams(server), sponsors: sponsors(server), - newsletter: newsletter(server) + newsletter: newsletter(server), + geeseInfo: geeseInfo(server) }; diff --git a/src/components/PastGeeseTimeline/hooks/geese-images.ts b/src/components/PastGeeseTimeline/hooks/geese-images.ts index d7a127b7d2..2330645389 100644 --- a/src/components/PastGeeseTimeline/hooks/geese-images.ts +++ b/src/components/PastGeeseTimeline/hooks/geese-images.ts @@ -5,6 +5,9 @@ import goose2 from '../../../static/img/pgimgs/goose2.png'; import goose3 from '../../../static/img/pgimgs/goose3.png'; import goose4 from '../../../static/img/pgimgs/goose4.png'; +import api from 'api'; +import { useEffect } from 'react'; + interface Image { imgFile: string; name: string; @@ -54,6 +57,16 @@ const imgs: Image[] = [ const useGeeseImages: GooseImagesHook = () => { const [currentIndex, setCurrentIndex] = useState(0); + const [geeseInfo, setGeeseInfo] = useState>([]); + + useEffect(()=>{ + const getInfo = async() =>{ + const res = await api.geeseInfo.getGeeseInfo(); + //console.log(res); + setGeeseInfo(res.data); + } + getInfo(); + }, []) const cycleRight = useCallback( () => setCurrentIndex((currentIndex + 1) % imgs.length), @@ -79,8 +92,8 @@ const useGeeseImages: return { image: imgs[currentIndex].imgFile, - name: imgs[currentIndex].name, - desc: imgs[currentIndex].desc, + name: geeseInfo[currentIndex]?.name, + desc: geeseInfo[currentIndex]?.description, imgs: imgs, currentGoose: currentIndex, cycleRight,