diff --git a/frontend/src/components/account/AccountPage.tsx b/frontend/src/components/account/AccountPage.tsx index 63b0f8d..20a77f8 100644 --- a/frontend/src/components/account/AccountPage.tsx +++ b/frontend/src/components/account/AccountPage.tsx @@ -71,13 +71,7 @@ function DeleteDialog({ ); } -function NotesInput({ - value, - onSave, -}: { - value: string; - onSave: (notes: string) => void; -}) { +function NotesInput({ value, onSave }: { value: string; onSave: (notes: string) => void }) { const [text, setText] = useState(value); const textareaRef = useRef(null); const timerRef = useRef | null>(null); @@ -207,7 +201,7 @@ function SavedSearchesTab({ No saved searches yet

- Save your dashboard filters and view to quickly return to them later. + Save your filters and map view so you can pick up exactly where you left off.

); @@ -333,7 +327,7 @@ function SavedPropertiesTab({ No saved properties yet

- Click the bookmark icon on any property in the dashboard to save it here. + Bookmark properties as you explore and build your shortlist without losing track.

); @@ -367,10 +361,7 @@ function SavedPropertiesTab({

- onUpdateNotes(prop.id, notes)} - /> + onUpdateNotes(prop.id, notes)} />
@@ -823,7 +814,7 @@ export default function AccountPage({ - {user.subscription === 'licensed' ? 'Licensed' : 'Free'} + {user.subscription === 'licensed' ? 'Full Access' : 'Inner London'}
diff --git a/frontend/src/components/home/HomePage.tsx b/frontend/src/components/home/HomePage.tsx index 53abc75..c321e75 100644 --- a/frontend/src/components/home/HomePage.tsx +++ b/frontend/src/components/home/HomePage.tsx @@ -181,13 +181,13 @@ export default function HomePage({

- Listings show what's available, not what's possible — fragments - without context. Traditional tools force you to begin with a location, separating area - insight from property detail. You search, cross-reference, and repeat per location. + On Rightmove, you pick an area first, then hope it's good. You end up + cross-referencing crime stats, school reports, and broadband checkers across a dozen + tabs, one postcode at a time.

- We take a different approach. Start with what matters to you, and the right places - reveal themselves. No context lost. No property missed. + We flip that. Tell us what you need (budget, commute, schools, safety) and we show + you every area in England that qualifies. No guesswork. No wasted viewings.

@@ -302,7 +302,7 @@ export default function HomePage({ Make your biggest investment your smartest move.

- This deserves proper tools behind it — don't leave it to luck. + This deserves proper tools behind it, don't leave it to luck.

diff --git a/frontend/src/components/ui/UserMenu.tsx b/frontend/src/components/ui/UserMenu.tsx index cc1d861..0749e0f 100644 --- a/frontend/src/components/ui/UserMenu.tsx +++ b/frontend/src/components/ui/UserMenu.tsx @@ -55,7 +55,7 @@ export default function UserMenu({ : 'bg-warm-100 text-warm-500 dark:bg-warm-700 dark:text-warm-400' }`} > - {user.subscription === 'licensed' || user.isAdmin ? 'Pro' : 'Free'} + {user.subscription === 'licensed' || user.isAdmin ? 'Full Access' : 'Inner London'} diff --git a/frontend/src/hooks/useTutorial.ts b/frontend/src/hooks/useTutorial.ts index 5fc4bf6..6234c00 100644 --- a/frontend/src/hooks/useTutorial.ts +++ b/frontend/src/hooks/useTutorial.ts @@ -7,48 +7,48 @@ const STORAGE_KEY = 'tutorial_completed'; const STEPS: Step[] = [ { target: '[data-tutorial="filters"]', - title: 'Filter Properties', + title: 'Tell the map what matters', content: - 'Use filters to narrow down to areas which contain matching properties. Filter by crime rate, number of schools around, or filter to an area with detached houses. Pin a filter with the eye icon to colour the map by that feature.', + 'Set your budget, commute limit, school quality, crime threshold \u2014 whatever matters to you. Only areas that qualify stay lit. Use the eye icon to colour by any feature.', placement: 'right', disableBeacon: true, }, { target: '[data-tutorial="ai-filters"]', - title: 'AI-Powered Filters', + title: 'Or just describe it', content: - 'Describe your ideal area in plain English — like "quiet neighbourhood with good schools" — and AI will set up the right filters for you automatically.', + 'Type what you want in plain English \u2014 like "quiet area near good schools under \u00A3400k" \u2014 and we\u2019ll set up the filters for you.', placement: 'right', disableBeacon: true, }, { target: '[data-tutorial="map"]', - title: 'Explore the Map', + title: 'Explore what\u2019s out there', content: - 'Pan and zoom to explore property data across England. Click any area (hexagon or postcode boundary) to see detailed stats of historical or currently sold properties matching your filters.', + 'Pan and zoom across England. Click any coloured area to see crime, schools, prices, broadband, noise \u2014 everything about that neighbourhood.', placement: 'bottom', disableBeacon: true, }, { target: '[data-tutorial="search"]', - title: 'Search Locations', - content: 'Search for a place name or postcode to jump directly to that area on the map.', + title: 'Jump to a location', + content: 'Search for any place or postcode to fly straight there.', placement: 'bottom', disableBeacon: true, }, { target: '[data-tutorial="right-pane"]', - title: 'Area Stats & Properties', + title: 'Dig into the details', content: - 'After clicking a hexagon, view aggregated area statistics or browse individual properties in this pane.', + 'See area statistics, histograms, and individual property records \u2014 prices, floor area, energy ratings, and more.', placement: 'left', disableBeacon: true, }, { target: '[data-tutorial="poi-button"]', - title: 'Points of Interest', + title: 'What\u2019s nearby?', content: - 'Toggle points of interest like schools, shops, and transport stops to see what amenities are nearby.', + 'Toggle schools, shops, stations, parks, and restaurants on the map to see what\u2019s within reach.', placement: 'left', disableBeacon: true, styles: { diff --git a/server-rs/src/pocketbase.rs b/server-rs/src/pocketbase.rs index 00de860..21e4270 100644 --- a/server-rs/src/pocketbase.rs +++ b/server-rs/src/pocketbase.rs @@ -815,7 +815,7 @@ async fn poll_pocketbase_counts(state: &AppState) { ("type", "referral"), ), ( - Some(r#"used_by_id!=""#), + Some(r##"used_by_id!=""##), "invites_total", ("type", "redeemed"), ),