# Summoner App Alpha - Going into Sage Mode -- what would we want to keep in sync for parallel development? ## Patterns to Test - Building patterns and testing them out for other upcoming apps - Polling (have already done a Rage for this) - Going deeper into Polling and combining this with other features such as caching - Different type of Polling than in the Rage - This would be initiated by a transaction or by a transaction *in* the cache - In the SDK: - API where someone can **choose** a continuous (Rage) or user-initiated poll (v2) - Need to integrate the state -- should be unopinionated - Possibly a callback, but what function would be called? - Transaction Cache - DESIGN WIP - icon next to connect wallet - if we have txs in cache we show a button to open a transaction list - show last 10 transactions - pending, failed, confirmed list - state to check local storage and poll for pending txs - Comprehensive Error Handling - Error handling across multiple transactions: - As much as possible, each transaction should display *why* there is an error and not crash the app - Error handling per field on the form: - Validation and error handling -- all form 'matrix' system - React Hook Form integration with error handling - Form validation system that works *with* and *without* the builder - We may be able to pull out validation objects for reuse in a utils library - Testing for how we want to handle form integration for component library - Form rules and behavior - Input with a caution and error -> error displays but not the caution - Hierarchy here; they don't stack - Error > Caution > Success (priority order) - Caution: "This may not work" - Error: "This will not work" - Validation: - Some things on blur and on change -- certain things are checked on blur but re-validated on change, etc. - Accordion: - When open, display the form - Rules around formatting inside each accordion: - Header - Content - Form - When closed, implement a callback - Templating system - All transformations needed - Transaction Modal - All application/modal states - Submitting transaction, indexing - Comprehensive error handling - Submit button states and how this interacts with validation - What blocks submit? - What fields are required for submission? - NEED loading button - Loading states - How are these handled across the app? - Connect Wallet - Good opportunity to do a v1 of this -> can then add to start a future UI package! - Would we want to start with this to build and split out into a potential future UI package - Do we want to use Quiver to handle the wallet connection? - Wallet not connected: - DESIGN WIP - What shows up in the form UI when a wallet not connected? - (Surface these states out when we're building this for future reference) - Connected but unsupported network - General app scaffolding and states across the app: - Success state - DESIGN CONFETTI MOMENT WIP - Error states - Success/error toasts - error on transaction failed - success state - can open/close - Subgraph / RPC Outage notification toasts - subgraph poll for block number - rpc call to get block number - user with the redux test ## Summoner App Features/User Stories - ## Async Sage Mode What would be coming up for collaboration/parallel work while in Sage Mode? - In the SDK: - API where someone can **choose** a continuous (Rage) or user-initiated poll (v2) - Need to integrate the state -- should be unopinionated - Possibly a callback, but what function would be called?