# 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?