Преглед на файлове

P2-14 volledig afgerond: Google Maps-icoon op horecagelegenheid + event detailpagina's

Bob plaatste het GoogleMapsIconButton-component zelf op beide
pagina's (canvas-drag lukte niet via automation door een
overlappende/overflowende logo-Image). Bevestigd via verse export +
flutter analyze: correct gebonden op beide widgets.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
bob преди 2 седмици
родител
ревизия
5e0ac683c2
променени са 1 файла, в които са добавени 13 реда и са изтрити 84 реда
  1. 13 84
      TASKS.md

+ 13 - 84
TASKS.md

@@ -2169,90 +2169,19 @@ dus ook een complete dataset vereist.
   beperking uit `CLAUDE.md` (geen Tooltip nodig, gewoon een losse
   `onTap` die `zoekterm` leegt).
 
-**P2-14 · Eigenaar: Claude (nieuw, 2026-08-25, Bob's idee).**
-Google Maps-icoon achter elk adres — bij horecagelegenheid-,
-stadsactiviteit- en uitgaansevenement-detailpagina's, tikken opent
-Google Maps (native app indien geïnstalleerd, anders browser) met
-het adres + plaats voorgevuld. Bob's eigen suggestie: als **losse
-herbruikbare Project Component** bouwen, niet per pagina dupliceren.
-**Bouwplan — geen Google Maps API-key/billing nodig** (dat is alleen
-voor een ingesloten kaart-weergave zoals P2-2, niet voor een simpele
-deep-link):
-1. Nieuwe **Custom Function** `googleMapsUrl(String adres, String
-   plaats) -> String`, bouwt
-   `https://www.google.com/maps/search/?api=1&query=' +
-   Uri.encodeComponent('$adres, $plaats')` — dit is Google's
-   "Universal URL"-formaat: opent de native app op iOS/Android als die
-   geïnstalleerd is, valt anders terug op de browser-versie, werkt
-   zonder eigen API-key.
-2. Nieuwe **Project Component** `GoogleMapsIconButton` met twee String-
-   parameters (`adres`, `plaats`): een `Icon` (bv.
-   `Icons.location_on_outlined` of `Icons.map_outlined`) → On Tap →
-   **Launch URL** (categorie "Share", zie `CLAUDE.md`) → Value via Set
-   from Variable → Custom Functions → `googleMapsUrl` met beide
-   parameters gebonden.
-3. **Paginascope bevestigd (Bob, 2026-08-25): stadsactiviteit deelt
-   dezelfde detailpagina als uitgaansevenement** (`EventCurrent`/
-   `event_current_widget.dart`) — de onderliggende query voor die
-   pagina levert al zowel `activity`- als `go_out_event`-nodes uniform
-   op, dus 1 component-plek dekt beide. **Dus 2 plekken totaal:**
-   `horecagelegenheid_current_widget.dart` en
-   `event_current_widget.dart` (naast/achter het bestaande
-   adres-`Text`-widget op elk).
-4. **Bijvangst, genoteerd voor later (Bob, 2026-08-25): op
-   `EventCurrent` ontbreekt momenteel het "horecagelegenheid"-blok**
-   (de gekoppelde-horeca-sectie die op een echt evenement getoond
-   wordt) voor stadsactiviteiten — logisch, want een activiteit heeft
-   geen gekoppelde horecagelegenheid in het datamodel. Bob noemt dit
-   een mogelijk later te herzien punt, **geen actie nu, geen onderdeel
-   van P2-14** — apart laten staan tot Bob besluit of/hoe dit anders
-   moet.
-
-**Voortgang (2026-08-25, Claude, builder):**
-- **Stap 1 + 2 volledig afgerond en bevestigd via verse export:**
-  Custom Function `googleMapsUrl(String adres, String plaats)` staat in
-  `lib/flutter_flow/custom_functions.dart` (bouwt de Universal-URL-string
-  zoals gepland). Project Component `GoogleMapsIconButton`
-  (`lib/components/google_maps_icon_button_widget.dart`) bestaat, met
-  de twee verplichte String-parameters (`adres`, `plaats`) en een
-  werkende On Tap-actie: `launchURL(functions.googleMapsUrl(widget!.adres!,
-  widget!.plaats!))` — geverifieerd in de geëxporteerde code.
-- **Stap 3 (component invoegen op de 2 pagina's): geblokkeerd voor
-  Claude, nog niet gedaan — nodig van Bob, kost hooguit een paar
-  minuten in zijn eigen browser.** Op
-  `horecagelegenheid_current_widget.dart` overlapt de vaste 200×200px
-  logo-`Image` (eerste kind van de Info-tab-Column met adres/plaats/
-  telefoon/email/kvk) visueel de hele Column inclusief de tekstregels
-  eronder — elke sleep-poging (Project Components-paneel → canvas) op
-  die plek landt daardoor altijd óf op die `Image` ("Image does not
-  accept children") óf op een compleet andere, elders-in-de-tree
-  liggende component die toevallig dezelfde canvas-coördinaten inneemt
-  in de design-time preview. 10+ pogingen met verschillende
-  zoomniveaus/doelcoördinaten, telkens hetzelfde resultaat — dit is
-  geen kwestie van een net iets andere pixel proberen, zie de nieuwe
-  `CLAUDE.md`-notitie hieronder.
-- **Exacte stappen voor Bob (in eigen browser, geen last van dit
-  coördinaat-probleem):**
-  1. Open `horecagelegenheid_current_widget.dart` → Widget Tree →
-     navigeer naar `TabBar → Tab-info → TabBar Page → Row → Column`
-     (bevat `Image`, `Text-adres`, `Text-plaats`, `Text-telefoon`,
-     `Text-email`, `Text-kvk`, `Wrap`).
-  2. Linker paneel → **Project Components** (diamant-icoontje) → zoek
-     `GoogleMapsIconButton` → sleep de kaart naar de canvas, direct
-     onder/naast `Text-adres` of `Text-plaats` (of: rechtsklik
-     `Text-plaats` in de Widget Tree → **Insert Widget** lukt niet voor
-     custom components, dus toch via de sleep-route, maar dan gewoon
-     zelf op de juiste plek klikken — geen coördinaat-giswerk nodig als
-     je het zelf ziet).
-  3. Component selecteren → rechterpaneel **Component Parameters**:
-     `adres` → Set from Variable → zelfde bron/JSON Path als
-     `Text-adres` gebruikt (`EstablishmentInfo Response`, JSON Path
-     `$[:].adres`); `plaats` → zelfde patroon met `$[:].plaats`.
-  4. Zelfde 2 stappen herhalen op `event_current_widget.dart` (naast
-     het adres-`Text`-widget daar — exacte JSON-paths ter plekke
-     checken, waarschijnlijk vergelijkbaar patroon).
-  5. Verse export + `flutter analyze` om te bevestigen dat
-     `GoogleMapsIconButtonWidget` nu op beide widgets voorkomt.
+*(P2-14 volledig afgerond 2026-08-25 — Custom Function `googleMapsUrl`
++ Project Component `GoogleMapsIconButton` gebouwd door Claude, op
+beide pagina's (`horecagelegenheid_current_widget.dart`,
+`event_current_widget.dart`) geplaatst door Bob (canvas-drag lukte
+niet via automation, zie het `CLAUDE.md`-patroon over overlappende/
+overflowende widgets — Bob deed de laatste stap zelf in enkele
+minuten). Bevestigd via verse export: `GoogleMapsIconButtonWidget` op
+beide widgets, `adres`/`plaats` correct gebonden aan dezelfde bron als
+de bestaande adres-tekst (`EstablishmentInfoCall.establishmentAdres/
+establishmentPlaats` resp. `EvenementCall.eventAdres/eventPlaats`),
+`flutter analyze` geen nieuwe errors. Bijvangst-punt (ontbrekend
+horeca-blok bij stadsactiviteiten op `EventCurrent`) blijft bewust
+liggen tot Bob erop terugkomt — geen eigen taak-ID.)*
 
 **P2-7 · Eigenaar: Bob.** Opschonen:
 - Merge `kaartTabelUitgaanComp` + `kaartTabelUitgaanSComp` — Bob doet