diff --git a/frontend/components/SignatureForm.js b/frontend/components/SignatureForm.js index 09a9346..17e64e1 100644 --- a/frontend/components/SignatureForm.js +++ b/frontend/components/SignatureForm.js @@ -20,11 +20,13 @@ class SignatureForm extends Component { this.state = { loading: false, passkeyAvailable: false, - usePasskey: false, // disabled by default; enabled only when ?passkey=true in URL + usePasskey: false, + emailOptional: false, // true when passkey is available and user hasn't switched to email form: { name: null, occupation: null, city: null, + organization: null, email: null, share_email: false, id: this.props.signature && this.props.signature.id, @@ -37,11 +39,10 @@ class SignatureForm extends Component { } async componentDidMount() { - // Only enable passkey when ?passkey=true is in the URL const params = new URLSearchParams(window.location.search); if (params.get('passkey') === 'true' && isPasskeySupported()) { const available = await isPlatformAuthenticatorAvailable(); - this.setState({ passkeyAvailable: available, usePasskey: available }); + this.setState({ passkeyAvailable: available, usePasskey: available, emailOptional: available }); } } @@ -62,7 +63,6 @@ class SignatureForm extends Component { await this.props.onSubmit(formData); - // just in case setTimeout(() => { this.setState({ loading: false }); }, 2000); @@ -73,9 +73,12 @@ class SignatureForm extends Component { render() { const { error, t, letter } = this.props; - const { passkeyAvailable, usePasskey } = this.state; - const showEmailField = !this.updatingSignature && !usePasskey; - const showEmailOptional = !this.updatingSignature && usePasskey && passkeyAvailable; + const { passkeyAvailable, usePasskey, emailOptional } = this.state; + + // When ?passkey=true and passkey is available, show the redesigned flow + const showPasskeyFlow = passkeyAvailable && !this.updatingSignature; + // Fallback: current interface when passkey is NOT available + const showFallbackFlow = !passkeyAvailable && !this.updatingSignature; return (
); diff --git a/frontend/pages/_app.js b/frontend/pages/_app.js index 102e1b3..dddc2c4 100644 --- a/frontend/pages/_app.js +++ b/frontend/pages/_app.js @@ -36,15 +36,51 @@ export const GlobalStyle = createGlobalStyle` } `; +const GIT_SHA = process.env.NEXT_PUBLIC_VERCEL_GIT_COMMIT_SHA || process.env.GIT_SHA || 'unknown'; +const GIT_MSG = process.env.NEXT_PUBLIC_VERCEL_GIT_COMMIT_MESSAGE || process.env.GIT_MSG || ''; + +function DevBanner() { + const [visible, setVisible] = React.useState(false); + React.useEffect(() => { + const params = new URLSearchParams(window.location.search); + setVisible(params.get('devmode') === 'true'); + document.body.style.paddingTop = params.get('devmode') === 'true' ? '36px' : ''; + }, []); + + if (!visible) return null; + + const sha = GIT_SHA.slice(0, 8); + return ( +