Astro component:
---
import { Image } from "astro:assets";
import logoLeDevoir from "../images/logo-le-devoir.png";
import { Contact } from "./Contact";
---
<footer class="footer bg-secondary p-10">
<aside>
<Image src={logoLeDevoir} alt="Le Devoir" height="40" />
</aside>
<nav>
<header class="footer-title">Social</header>
<div class="grid grid-flow-col gap-3">
<a href="">
<i class="icon-facebook text-2xl/none text-primary"></i>
</a>
<a href="">
<i class="icon-instagram text-2xl/none text-primary"></i>
</a>
</div>
</nav>
<Contact client:only="react" />
</footer>
React component:
import { useEffect, useState } from "react";
import axios from "axios";
export const Contact = () => {
const [dogImg, setDogImg] = useState<string>();
useEffect(() => {
axios
.get("https://dog.ceo/api/breeds/image/random")
.then(function (response) {
// handle success
console.log(response);
setDogImg(response.data.message);
})
.catch(function (error) {
// handle error
console.log(error);
});
}, []);
return (
<>
<div>
<header className="footer-title">Pour annoncer</header>
<img src={dogImg} alt="dog" width={200} />
</div>
<div>
<header className="footer-title">Équipe</header>
<div className="flex space-x-12">
{/* ... */}
</div>
</div>
</>
);
};