ReCaptcha

1. Neon konfigurace

Ideální je dát ji do local.neon aby pro každé pískoviště jednoho projektu mohly být jiné kódy.

xart.utils:
	recaptcha:
		secretKey: doplnit_secret_key
		siteKey: doplnit_site_key
2. Init bundle

Skript je možné vytvořit kdekoli v projektu a používat do pak napříč různými moduly.

import initRecaptcha from "xart-utils/recaptcha";

initRecaptcha()
3. Vite konfigurace

Přidáme cestu k novému bundle.

export default defineConfig({
	...
	plugins: [
		...
		nette({
			entry: [
				... ostatní bundly ...
				'AdminModule/Scripts/recaptcha.ts',
			]
		}),
		...
	],
	...
})
4. Asset

Vybuildovaný asset musíme vložit do všech stránek kde se bude reCaptcha používat.
Pokud se bude využívat jen v jedné komponentě tak se dá vložit do šablony komponenty. Je ale možné ji vložit i do @layout.latte.
Důležité je že musí být vložena před ukončovací tag </body>

	... html kód ...

	{asset 'AdminModule/Scripts/recaptcha.ts'}

</body>
</html>
5. Formulář

Do formuláře už stačí jen vložit control typu invisible ReCaptcha.

$form->addInvisibleReCaptcha('recaptcha', true);
6. PHPStan

Do phpstan.neon by se mělo přidat ignorování chyby nedefinované metody addInvisibleReCaptcha.

parameters:
	...
	ignoreErrors:
		...
		- '#Call to an undefined method Nette\\Application\\UI\\Form::addInvisibleReCaptcha\(\)#'
		...