---
# System prepended metadata

title: Summoner App Alpha

---

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