SuperdindaDocs
Consent & billing

PermissionGate

The screen before a capture step (Figma "Permission Gate" 189:1760): what the step needs and why, asked before the browser prompt.

Denied keeps the way back in words (where to unblock it), not only a retry button. Visual part only: the permission logic stays in the app.

<PermissionGate kind="camera" title="Precisamos da câmera" body="É para a sua foto, guardada criptografada como prova." action={<Button variant="brand" size="48" fullWidth>Permitir câmera</Button>} note="Nada é enviado antes de você confirmar no fim." />

Playground

Um preset por valor do primeiro eixo do Figma. Mude as props; dsState força hover, foco ou pressionado, como na matriz.

Permission Gate

string

Variantes, tamanhos e estados

Cada célula é o componente real, marcada com a variante do Figma que reproduz (passe o mouse pra ver o node).

Kind · Camera

AskDenied

Precisamos da câmera

É para a sua foto, que fica guardada criptografada como prova de que foi você quem concordou.

Nada é enviado antes de você confirmar no fim.

A câmera está bloqueada

Sem ela não dá pra tirar a foto. Libere o acesso nas configurações do navegador e tente de novo.

No iPhone: Ajustes › Safari › Câmera/Microfone. No Android: cadeado na barra de endereço › Permissões.

Kind · Microphone

AskDenied

Precisamos do microfone

É para gravar você lendo uma frase, que fica guardada criptografada como prova de que você concordou.

Nada é enviado antes de você confirmar no fim.

O microfone está bloqueado

Sem ele não dá pra gravar a frase. Libere o acesso nas configurações do navegador e tente de novo.

No iPhone: Ajustes › Safari › Câmera/Microfone. No Android: cadeado na barra de endereço › Permissões.

Props

As props que o arquivo do DS declara. O componente também repassa as do primitivo (base-ui), quando ele tem um.

PropTipoPadrãoDescrição
"camera" | "microphone"—Figma "Kind": what the next step needs.
"ask" | "denied""ask"Figma "State": Ask before the browser prompt, Denied after a refusal.
string—"Precisamos da câmera" / "A câmera está bloqueada".
ReactNode—Why it is needed, or what the refusal blocks.
ReactNode—The full-width brand 48 Button: "Permitir câmera" / "Tentar de novo". The app's hook owns getUserMedia; this part only draws the screen.
ReactNode—The small line under it: the privacy promise (Ask) or, on Denied, the text path to unblock it in the browser settings.
"h1" | "h2""h1"Heading level of the title.
string—

On this page