diff options
| author | 2023-04-22 19:52:26 +0800 | |
|---|---|---|
| committer | 2023-04-22 19:52:26 +0800 | |
| commit | 4838df315931bb883f704ec3e1abe2685f296cdf (patch) | |
| tree | 57a8550c4cd5338f1126364bb518c6cde8d96e7d /docs/components/RemoteCacheCounter.tsx | |
| parent | db74ade0234a40c2120ad5f2a41bee50ce13de02 (diff) | |
| download | HydroRoll-4838df315931bb883f704ec3e1abe2685f296cdf.tar.gz HydroRoll-4838df315931bb883f704ec3e1abe2685f296cdf.zip | |
😀
Diffstat (limited to 'docs/components/RemoteCacheCounter.tsx')
| -rw-r--r-- | docs/components/RemoteCacheCounter.tsx | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/docs/components/RemoteCacheCounter.tsx b/docs/components/RemoteCacheCounter.tsx new file mode 100644 index 0000000..ef4dc6e --- /dev/null +++ b/docs/components/RemoteCacheCounter.tsx @@ -0,0 +1,47 @@ +import cn from "classnames"; +import { useState, useEffect } from "react"; +import { animated, useSpring, config } from "@react-spring/web"; +import useTurborepoMinutesSaved from "../lib/useTurborepoMinutesSaved"; +import Link from "next/link"; + +const counterFormatter = Intl.NumberFormat(undefined, { + minimumIntegerDigits: 7, + maximumFractionDigits: 0, +}); + +export default function RemoteCacheCounter() { + const [targetMinutes, setTargetMinutes] = useState(0); + const timeSaved = useTurborepoMinutesSaved(); + useEffect(() => { + if (timeSaved) { + setTargetMinutes( + timeSaved.local_cache_minutes_saved + + timeSaved.remote_cache_minutes_saved + ); + } + }, [timeSaved]); + + const spring = useSpring({ + from: { minutesSaved: 0 }, + minutesSaved: targetMinutes, + config: config.molasses, + }); + + return ( + <Link + href="/repo/docs/core-concepts/remote-caching" + className="group mt-4 rounded-lg border border-transparent overflow-hidden bg-origin-border bg-gradient-to-r from-red-500 to-blue-500 dark:text-[#9ca3af] text-[#6b7280]" + > + <div className="p-4 dark:bg-[#111111] bg-white"> + <animated.p className="inline-block text-xl bg-gradient-to-r from-red-500 to-blue-500 bg-clip-text text-transparent tabular-nums"> + {spring.minutesSaved.to((t) => counterFormatter.format(t))} + </animated.p> + <div className="text-xs">Total Compute Minutes Saved</div> + + <div className="text-xs mt-4 group-hover:underline"> + Get Started With Remote Caching → + </div> + </div> + </Link> + ); +} |
