feat: build Home layout per Figma — animations, CategoriesResult, layout fixes#223
Merged
Conversation
- Add EscrowResolvedEvent struct with arbitrator: Address field - Add emit_escrow_resolved_event helper (topic: escrow_resolved) - Emit EscrowResolvedEvent in resolve_dispute alongside existing EscrowEvent Off-chain systems can now track arbitrator identity per resolution to build reputation/history scores.
Hub-of-Evolution#211) Replace all synchronous OnboardingClient.update_reputation / update_user_metrics calls with ReputationUpdateEvent emissions. - Add ReputationUpdateEvent struct (address, deltas, metrics, token, ts) - Add emit_reputation_update helper (topic: reputation_update) - Replace 5 call sites: release_funds, auto_release, refund_to_buyer, resolve_dispute, recurring escrow cycle Off-chain indexers subscribe to 'reputation_update' events and apply updates asynchronously. Escrow financial operations no longer revert if the onboarding contract is paused, upgraded, or buggy.
…instance storage (Hub-of-Evolution#206) Global platform config keys are read on every escrow operation. Instance storage is cheaper (no per-key rent) and appropriate for contract-wide static config. Changes: - All get/set calls for PlatformConfig, MaxReleaseWindow, and WhitelistedTokens switched from persistent() to instance() - Removed all extend_persistent() calls for those three keys - Added extend_instance_ttl(TTL_THRESHOLD, TTL_EXTENSION) in get_platform_config_internal (hot path) to keep instance alive
- Add missing CSS animation keyframes (fadeSlideDown, fadeSlideUp,
cardSlideIn, popIn) so BrowseCategories section renders correctly
instead of staying opacity-0
- Create CategoriesResult component: responsive 4-col product card
grid with category badge, artisan name, USDC price, and Buy Now CTA
linked to /market
- Wire CategoriesResult into page.tsx between BrowseCategories and
TopCourses
- Remove body { padding: 5px } that was breaking full-width sections
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implements the missing Home page layout per Figma design.
Changes
app/globals.css@keyframesforfadeSlideDown,fadeSlideUp,cardSlideIn,popInand their utility classesBrowseCategorieswas permanently stuck atopacity-0(all cards invisible)body { padding: 5px }that was creating an unwanted gap around full-width sections (hero, feature bar, testimonials)components/landing/CategoriesResult.tsx(new)/marketapp/page.tsxCategoriesResultimport and section betweenBrowseCategoriesandTopCoursesclassName=""on wrapper divSections order (matches Figma)
Closes #2