feat: erroreen kudeaketa sartzen du

This commit is contained in:
2026-08-17 10:32:49 +02:00
parent 882f8db9f6
commit 34741ff636

View File

@@ -5,6 +5,7 @@ import styles from "./YT2RSS.module.scss";
export const YT2RSS: React.FC = () => { export const YT2RSS: React.FC = () => {
const [rssFeed, setRssFeed] = useState(); const [rssFeed, setRssFeed] = useState();
const [isLoading, setIsLoading] = useState(false); const [isLoading, setIsLoading] = useState(false);
const [hasError, setHasError] = useState(false);
const handleSubmit: SubmitEventHandler<HTMLFormElement> = async (e) => { const handleSubmit: SubmitEventHandler<HTMLFormElement> = async (e) => {
e.preventDefault(); e.preventDefault();
@@ -20,11 +21,20 @@ export const YT2RSS: React.FC = () => {
} }
setIsLoading(true); setIsLoading(true);
const res = await fetch("/api/yt?url=" + encodeURIComponent(ytUrl)); setHasError(false);
const data = await res.json(); setRssFeed(undefined);
setIsLoading(false); try {
const res = await fetch("/api/yt?url=" + encodeURIComponent(ytUrl));
setRssFeed(data.href); if (!res.ok) {
throw new Error("Errorea gertatu da informazioa eskuratzean");
}
const data = await res.json();
setRssFeed(data.href);
} catch {
setHasError(true);
} finally {
setIsLoading(false);
}
}; };
return ( return (
@@ -48,6 +58,13 @@ export const YT2RSS: React.FC = () => {
</form> </form>
{rssFeed && <p className={styles.rssFeed}>{rssFeed}</p>} {rssFeed && <p className={styles.rssFeed}>{rssFeed}</p>}
{hasError && (
<p className={styles.rssFeed}>
Errore bat izan da. Errebisatu kanalaren URL-a egokia dela eta saiatu
berriro.
</p>
)}
</div> </div>
); );
}; };