Files
VaryaandGitHub f20c4013af refactor(web): migrate No Fee Campaign to the new feature architecture (#7078)
* docs: move No Fee Campaign to the new Features Architecture

* docs: add tasks; adjust requirements in `quicktasks.md`

* refactor(no-fee-campaign): migrate to the new feature architecture pattern
2026-02-03 11:54:35 +01:00

30 lines
1.1 KiB
TypeScript

/**
* No Fee Campaign Feature Contract
*
* Defines the public API surface for lazy-loaded components.
* Accessed via useLoadFeature(NoFeeCampaignFeature).
*
* Naming conventions determine stub behavior:
* - PascalCase → Component (stub renders null when not ready)
*
* IMPORTANT: Hooks are NOT in the contract - exported directly from index.ts
*/
// Component imports for typeof pattern (enables IDE navigation)
import type NoFeeCampaignBanner from './components/NoFeeCampaignBanner'
import type NoFeeCampaignTransactionCard from './components/NoFeeCampaignTransactionCard'
import type GasTooHighBanner from './components/GasTooHighBanner'
/**
* No Fee Campaign Feature Contract - flat structure (NO hooks)
*
* This is what gets loaded when handle.load() is called.
* Hooks are exported directly from index.ts to avoid Rules of Hooks violations.
*/
export interface NoFeeCampaignContract {
// Components (PascalCase) - stub renders null when not ready
NoFeeCampaignBanner: typeof NoFeeCampaignBanner
NoFeeCampaignTransactionCard: typeof NoFeeCampaignTransactionCard
GasTooHighBanner: typeof GasTooHighBanner
}