cloudflare/vinext

Public

mirrored from https://github.com/cloudflare/vinextAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
v0.0.9

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

tests/fixtures/app-basic/app/actions/like-button.tsx

29lines · modecode

1"use client";
2
3import { useState, useTransition } from "react";
4import { incrementLikes } from "./actions";
5
6export function LikeButton() {
7 const [likes, setLikes] = useState(0);
8 const [isPending, startTransition] = useTransition();
9
10 function handleClick() {
11 startTransition(async () => {
12 const newCount = await incrementLikes();
13 setLikes(newCount);
14 });
15 }
16
17 return (
18 <div>
19 <p data-testid="likes">Likes: {likes}</p>
20 <button
21 data-testid="like-btn"
22 onClick={handleClick}
23 disabled={isPending}
24 >
25 {isPending ? "Liking..." : "Like"}
26 </button>
27 </div>
28 );
29}
30