Prüfung / Lint, Typen, Tests (push) Canceled after 0s
Prüfung / Images bauen (pdf) (push) Canceled after 0s
Prüfung / Images bauen (web) (push) Canceled after 0s
Prüfung / Images bauen (worker) (push) Canceled after 0s
Images / bauen (pdf, docker/pdf.Dockerfile) (push) Canceled after 0s
Images / bauen (web, docker/web.Dockerfile) (push) Canceled after 0s
Images / bauen (worker, docker/worker.Dockerfile) (push) Canceled after 0s
375 Vorkommen in 210 Dateien. Betrifft Kommentare, Oberflaechentexte und die README; an keiner Stelle Bedeutung, nur Zeichensetzung.
25 lines
871 B
TypeScript
25 lines
871 B
TypeScript
'use client'
|
|
|
|
import { useLinkStatus } from 'next/link'
|
|
|
|
/**
|
|
* Der Ladepunkt in einem Link, solange der Wechsel läuft.
|
|
*
|
|
* Ein Wechsel kann einen Moment dauern, und ohne Rückmeldung sieht es aus, als
|
|
* sei der Klick nicht angekommen - man klickt ein zweites Mal. Der Punkt sitzt
|
|
* **im geklickten Link**, damit sichtbar bleibt, wohin es geht.
|
|
*
|
|
* Das ist kein Blockade-Spinner im Sinn von Zusicherung 5 der README: er ersetzt
|
|
* keinen Inhalt und hält nichts auf. Die Zielseite bringt ihr Skelett mit, das
|
|
* ist die eigentliche Antwort auf das Warten - hier geht es nur darum, den
|
|
* Klick zu quittieren.
|
|
*
|
|
* `useLinkStatus` funktioniert nur als Kind eines `next/link`, deshalb die
|
|
* eigene Komponente.
|
|
*/
|
|
export function Pending() {
|
|
const { pending } = useLinkStatus()
|
|
if (!pending) return null
|
|
return <span aria-hidden className="pending-dot" />
|
|
}
|