4466ba436b
## Description This PR ensures that the default prettier config is used for examples and templates. This config is compatible with `prettier@3` as well (upgrading prettier is bigger change that can be a future PR). ## Changes - Updated `.prettierrc.json` in root with `"trailingComma": "es5"` (will be needed upgrading to prettier@3) - Added `examples/.prettierrc.json` with default config (this will change every example) - Added `packages/create-next-app/templates/.prettierrc.json` with default config (this will change every template) ## Related - Fixes #54402 - Closes #54409
48 lines
1,017 B
TypeScript
48 lines
1,017 B
TypeScript
import { useMemo, useState } from "react";
|
|
import Script from "next/script";
|
|
|
|
export default function Onload() {
|
|
const [stripe, setStripe] = useState<{ stripe: typeof window.Stripe } | null>(
|
|
null,
|
|
);
|
|
const methods = useMemo(
|
|
() =>
|
|
stripe
|
|
? Object.entries(stripe.stripe).filter(
|
|
([_key, value]) => typeof value === "function",
|
|
)
|
|
: [],
|
|
[stripe],
|
|
);
|
|
|
|
function handleLoad() {
|
|
const stripe = window.Stripe("pk_test_1234");
|
|
|
|
console.log("Stripe loaded: ", stripe);
|
|
|
|
setStripe({ stripe });
|
|
}
|
|
|
|
return (
|
|
<>
|
|
{/* We load Stripe sdk */}
|
|
<Script
|
|
id="stripe-js"
|
|
src="https://js.stripe.com/v3/"
|
|
onLoad={handleLoad}
|
|
/>
|
|
|
|
<main>
|
|
<h1>Executing code after loading</h1>
|
|
<div>
|
|
<p>Stripe methods: </p>
|
|
<ul>
|
|
{methods.map(([method]) => (
|
|
<li key={method}>{method}</li>
|
|
))}
|
|
</ul>
|
|
</div>
|
|
</main>
|
|
</>
|
|
);
|
|
}
|