**Motivations:**
- Improve UI clarity by displaying two distinct buttons instead of one combined button
- Reduce the number of clicks needed to access the import functionality
- Allow users to directly choose their desired action without an intermediate step
**Evolutions:**
- Added optional 'initialStep' prop to CreateAccountModal to initialize modal at 'import' or 'choose' step
- Refactored NoAccountView to display two separate buttons: 'Générer un nouveau compte' and 'Importer une clé existante'
- Extracted buttons into separate NoAccountActionButtons component to respect function line limit
- Removed unused 'connected' parameter from AuthorPresentationFormView
**Pages affectées:**
- components/CreateAccountModal.tsx
- components/AuthorPresentationEditor.tsx
- features/account-creation-buttons-separation.md
**Motivations:**
- Ensure user interfaces are designed to minimize user interactions
- Improve overall user experience by reducing friction
**Root causes:**
- N/A (new requirement)
**Correctifs:**
- N/A
**Evolutions:**
- Added new UX section with click minimization principles
- Defined guidelines for direct actions, functional grouping, optimized forms
- Specified what to avoid in user interfaces
**Pages affectées:**
- .cursor/rules/quality.mdc
**Motivations :**
* Remove outdated message that appears after account creation/import
* Clean up dead code and unused translation keys
* Simplify presentation page UX now that key creation/import is available
**Root causes :**
* Message 'Connectez-vous avec Nostr pour créer votre article de présentation' was displayed even when account exists
* NotConnected component and translation keys were no longer needed after implementing key creation/import
**Correctifs :**
* Removed NotConnected component and its message
* Removed presentation.notConnected translation keys from all locale files
* Simplified display to show ConnectButton directly when no pubkey is available
* Added auto-loading of pubkey when account exists but pubkey not yet loaded
**Evolutions :**
* Presentation form now displays immediately when account exists (even if not unlocked)
* Better UX: users can see the form and will get error message if they try to publish without unlocking
**Page affectées :**
* components/AuthorPresentationEditor.tsx
* locales/fr.txt
* locales/en.txt
* public/locales/fr.txt
* public/locales/en.txt
- Add NEXT_PUBLIC_NIP95_UPLOAD_URL to README environment variables section
- Add NIP-95 upload service documentation with examples
- Create .env.example file with all required environment variables
- Improve error message to guide users to README for setup instructions
- All TypeScript checks pass
- Extract PresentationFormHeader to reduce PresentationForm line count
- Add all missing translations to public/locales files
- Update Bitcoin address help text to specify 'excluding fees'
- All TypeScript and linter checks pass
- Translate all hardcoded French text in presentation form to use i18n
- Update Bitcoin address help text to specify '0.046 BTC excluding fees'
- Add all presentation field translations (labels, placeholders, help texts)
- Add image upload field translations
- Add validation error message translation
- Add fallback user name translation
- All TypeScript checks pass
- Update nav.publish translation from 'Publier' to 'Publier le profil' (FR)
- Update nav.publish translation from 'Publish' to 'Publish profile' (EN)
- Update all locale files
- Remove nos2x and NostrConnect support
- Create new NostrAuthService using Alby (window.nostr NIP-07)
- Replace useNostrConnect with useNostrAuth in all components
- Update NostrRemoteSigner to use Alby for signing
- Delete NostrConnect-related files (nostrconnect.ts, handlers, etc.)
- Update documentation to reflect Alby-only authentication
- Remove NOSTRCONNECT_BRIDGE environment variable
- All TypeScript checks pass
- Update NostrConnectService to use nos2x (window.nostr) by default
- Fallback to NostrConnect bridge only if nos2x is not available
- Update NostrRemoteSigner to use window.nostr.signEvent() for signing
- Add TypeScript definitions for NIP-07 window.nostr API
- Update documentation to reflect nos2x as primary authentication method
- Remove default use.nsec.app bridge URL
- All TypeScript checks pass
- Replace 'NotConnected' message with ConnectButton component
- Display user name (or shortened pubkey) in form title when connected
- Update ConnectButton styling to match dark theme
- Improve UX by allowing direct connection from presentation page
- Update /presentation page to use dark theme (PageHeader, Footer, bg-cyber-darker)
- Add LanguageSelector component to PageHeader for all pages
- Update AuthorPresentationEditor to use dark theme styling
- Update ArticleField and ArticleFormButtons to use dark theme
- Add locale persistence in localStorage
- Update _app.tsx to load saved locale from localStorage
- All pages now support FR/EN language switching
- Display button for creating author page even when user is not connected
- Button redirects to /presentation page
- Improves discoverability of author page creation feature