39 lines
1.6 KiB
JavaScript
39 lines
1.6 KiB
JavaScript
document.addEventListener("DOMContentLoaded", () => {
|
|
const button = document.getElementById("generate");
|
|
const result = document.getElementById("result");
|
|
|
|
button.addEventListener("click", async () => {
|
|
try {
|
|
const [hooksResponse, bugsResponse, featuresResponse] = await Promise.all([
|
|
fetch("data/hooks.json"),
|
|
fetch("data/bugs.json"),
|
|
fetch("data/features.json")
|
|
]);
|
|
|
|
if (!hooksResponse.ok || !bugsResponse.ok || !featuresResponse.ok) {
|
|
throw new Error("Erreur lors du chargement des fichiers JSON.");
|
|
}
|
|
|
|
const hooks = await hooksResponse.json();
|
|
const bugs = await bugsResponse.json();
|
|
const features = await featuresResponse.json();
|
|
|
|
const hook = hooks.hooks[Math.floor(Math.random() * hooks.hooks.length)];
|
|
const bug = bugs.bugs[Math.floor(Math.random() * bugs.bugs.length)];
|
|
const feature = features.features[Math.floor(Math.random() * features.features.length)];
|
|
|
|
// Construction de la phrase en fonction du type d'accroche
|
|
let phrase;
|
|
if (hook.includes("fait que")) {
|
|
phrase = `${hook} ${feature}`;
|
|
} else {
|
|
phrase = `${hook} ${bug}, ${feature}`;
|
|
}
|
|
|
|
result.textContent = phrase;
|
|
} catch (error) {
|
|
result.textContent = "Une erreur s'est produite. Veuillez réessayer.";
|
|
console.error(error);
|
|
}
|
|
});
|
|
}); |