Add in-app house (villa) purchase + Home picker dialog (RND-1965)#2949
Open
hugokallstrom wants to merge 9 commits into
Open
Add in-app house (villa) purchase + Home picker dialog (RND-1965)#2949hugokallstrom wants to merge 9 commits into
hugokallstrom wants to merge 9 commits into
Conversation
…r dialog Sibling SE_HOUSE form in feature-purchase-house module, modal Home picker dialog in feature-insurances. Defers useRegistrationAddress, currentInsurance, and extraBuildings UI to follow-up PRs. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
10 tasks: SubmitHouseFormAndGetOffersUseCase, HouseFormViewModel, HouseFormDestination + previews, HousePurchaseNavGraph branch on productName, DI registration, HomePickerDialog in feature-insurances, cross-sell URL routing update, full-app build, emulator verification, PR prep. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4 tasks
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
Stacked on top of #2947 (vacation home). Adds the
SE_HOUSE(villa) form as a sibling toVacationHomeFormDestinationinsidefeature-purchase-house, plus a modal "Home" picker dialog that disambiguates the generichemforsakring/home-insurancecross-sell.HouseFormDestination+HouseFormViewModelinfeature-purchase-house/ui/house/. Same form pattern as pet/vacation home (RadioChoiceRowwithRadioGroupStyle.Labeled.HorizontalFlow,yesNoOptions()helper, radio values held in ViewModel state withUpdate*events, text/stepper values inrememberSaveable).SubmitHouseFormAndGetOffersUseCase— new use case, reuses the existingHouseShopSessionCreate/HousePriceIntentCreate/HousePriceIntentDataUpdate/HousePriceIntentConfirmApollo operations (same mutations, different form-data keys).HousePurchaseNavGraph.Formbranches onproductName—SE_VACATION_HOME→VacationHomeFormDestination,SE_HOUSE→HouseFormDestination. Both share the post-form flow (SelectTier → Summary → Signing → Success).HomePickerDialoginfeature-insurances/insurance/. ModalHedvigDialogwith three options: Rental apartment (Hyresrätt), Owned apartment (Bostadsrätt), House (Villa). State held local to theInsuranceGraphnavdestination viarememberSaveable.hemforsakring/home-insurancerule (which previously silently routed to APARTMENT_RENT). New routes:villaforsakring/home-insurance/house→SE_HOUSEshortcut (no dialog)bostadsratt/home-insurance/homeowner→SE_APARTMENT_BRF(existing)hyresratt/home-insurance/rental→SE_APARTMENT_RENT(existing, slug-narrowed)hemforsakring/home-insurance→ opens the picker dialogappmodule changes —onNavigateToHousePurchase(productName)already accepts arbitrary product names from the vacation home PR.Form fields (v1): street, zipCode, livingSpace, ancillaryArea (biarea), numberCoInsured (stepper 1–5), yearOfConstruction, numberOfBathrooms (stepper 1–10), isSubleted. ssn + email auto-injected from
currentMember.extraBuildings: [],currentInsurance: null,useRegistrationAddress: nullall sent / omitted in v1.Design spec:
docs/superpowers/specs/2026-05-21-in-app-house-purchase-design.md.Plan:
docs/superpowers/plans/2026-05-21-in-app-house-purchase.md.Base branch:
feat/in-app-vacation-home-purchase. Retarget todeveloponce #2947 merges.Test plan
./gradlew :app:assemble); Compose previews render forPreviewHouseFormEmpty/Filled/ErrorsandPreviewHomePickerDialog.hemforsakring/home-insurance) opens theHomePickerDialog.HouseFormDestinationopens.hemforsakring/villaforsakring→ house form,hemforsakring/bostadsratt→ apartment-BRF,hemforsakring/hyresratt→ apartment-RENT.Out of scope (separate follow-up PRs)
useRegistrationAddressprefill toggle (needs a member-address query)currentInsurancedropdown + insurer query + cancellation flowextraBuildingsadd/remove dialog UI (shared with vacation home)🤖 Generated with Claude Code