From 7aa38bc7f232c610eda33b9858154e1ea78af532 Mon Sep 17 00:00:00 2001 From: Remy van der Wereld Date: Mon, 25 Nov 2024 15:55:50 +0100 Subject: [PATCH] Remove MailtoAnchor component and related email functionality; update Residence component to handle BagData directly --- .../molecules/MailtoAnchor/MailtoAnchor.tsx | 45 ---------- .../CaseDetail/sections/Residence.tsx | 86 ++++++------------- .../features/cases/email/basisInformatie.ts | 51 ----------- src/app/features/types.ts | 4 + 4 files changed, 31 insertions(+), 155 deletions(-) delete mode 100644 src/app/features/cases/components/molecules/MailtoAnchor/MailtoAnchor.tsx delete mode 100644 src/app/features/cases/email/basisInformatie.ts diff --git a/src/app/features/cases/components/molecules/MailtoAnchor/MailtoAnchor.tsx b/src/app/features/cases/components/molecules/MailtoAnchor/MailtoAnchor.tsx deleted file mode 100644 index 38df758fe..000000000 --- a/src/app/features/cases/components/molecules/MailtoAnchor/MailtoAnchor.tsx +++ /dev/null @@ -1,45 +0,0 @@ -import React, { FC } from "react" - -import StyledLink from "app/features/shared/components/atoms/StyledLink/StyledLink" -import { body, email, subject } from "app/features/cases/email/basisInformatie" - -export type Props = { - address: string - postalCode: string - isWoonboot: boolean - aantalBouwlagen?: number - aantalKamers?: number - etage?: number - gebruik?: string - gebruiksdoel?: string - oppervlak?: number - woonbootAanduiding?: boolean - woonbootIndicatie?: boolean - woonbootStatus?: string -} - -const MailtoAnchor: FC = ( - { - address, - postalCode, - gebruiksdoel, - gebruik, - aantalBouwlagen, - etage, - aantalKamers, - oppervlak, - isWoonboot, - woonbootStatus - } -) => { - const href = `mailto:${ email }?subject=${ subject }&body=${ body(isWoonboot, address, postalCode, gebruiksdoel, gebruik, aantalBouwlagen, etage, aantalKamers, oppervlak, woonbootStatus) }` - const text = "Meld BAG afwijkingen" - - return ( - - { text } - - ) -} - -export default MailtoAnchor diff --git a/src/app/features/cases/components/organisms/CaseDetail/sections/Residence.tsx b/src/app/features/cases/components/organisms/CaseDetail/sections/Residence.tsx index f2f1f7152..a8a86d05e 100644 --- a/src/app/features/cases/components/organisms/CaseDetail/sections/Residence.tsx +++ b/src/app/features/cases/components/organisms/CaseDetail/sections/Residence.tsx @@ -1,18 +1,14 @@ -import React, { FC } from "react" - import { useCase } from "app/state/rest" import { BagData, BagDataError } from "app/features/types" -import MailtoAnchor from "app/features/cases/components/molecules/MailtoAnchor/MailtoAnchor" - -import { getAddress, getBagId } from "../utils" import CaseDetailSection from "../CaseDetailSection" import Owner from "./Owner" + type Props = { caseId: string } -const Residence: FC = ({ caseId }) => { +const Residence: React.FC = ({ caseId }) => { const { data: caseData } = useCase(caseId) if (!caseData) { @@ -20,79 +16,51 @@ const Residence: FC = ({ caseId }) => { } const hasBagData = (caseData.bag_data as BagDataError).error === undefined - const bagData = caseData.bag_data as BagData + const bagData = (hasBagData ? caseData.bag_data : {}) as BagData const isWoonboot = Boolean(hasBagData && bagData?.ligplaatsIdentificatie) const isWoning = !isWoonboot const woningTitle = isWoning ? "Woning" : "Ligplaats" + console.log("bagData", bagData?.identificatie) // Woning - const gebruiksdoel = hasBagData ? bagData.gebruiksdoelOmschrijvingen : undefined - const woningBestemming = gebruiksdoel && gebruiksdoel.length ? gebruiksdoel.join(", ") : undefined - const woningGebruik = hasBagData && bagData.verblijfsobjectFeitelijkGebruikOmschrijving ? bagData.verblijfsobjectFeitelijkGebruikOmschrijving : undefined - const woningBouwlagen = hasBagData && bagData.verblijfsobjectAantalBouwlagen ? bagData.verblijfsobjectAantalBouwlagen : undefined - const woningEtage = hasBagData && bagData.verblijfsobjectVerdiepingToegang != null ? bagData.verblijfsobjectVerdiepingToegang : undefined - const woningKamers = hasBagData && bagData.verblijfsobjectAantalKamers ? bagData.verblijfsobjectAantalKamers : 0 - const woningOppervlak = hasBagData && bagData.verblijfsobjectOppervlakte && bagData.verblijfsobjectOppervlakte > 1 ? bagData.verblijfsobjectOppervlakte : 0 - const woningBagId = getBagId(caseData!) - - // Woonboot - const woonbootLigplaatsIndicatie = hasBagData && bagData.ligplaatsIdentificatie - const woonbootStatus = hasBagData && bagData.ligplaatsStatusOmschrijving ? bagData.ligplaatsStatusOmschrijving : undefined - - // General - const address = getAddress(caseData.address) - const postalCode = caseData.address.postal_code - - // Terugmeld email - const mailtoAnchor = ( - -) - + const woningBestemming = bagData?.gebruiksdoelOmschrijvingen && bagData?.gebruiksdoelOmschrijvingen.length ? bagData?.gebruiksdoelOmschrijvingen.join(", ") : undefined + const wozSoortObjectOmschrijving = bagData?.wozSoortObjectOmschrijving + const status = bagData?.verblijfsobjectStatusOmschrijving + const toegang = bagData?.toegangOmschrijvingen && bagData?.toegangOmschrijvingen.length ? bagData.toegangOmschrijvingen.join(", ") : undefined + const verdiepingToegang = bagData?.verblijfsobjectVerdiepingToegang + const aantalKamers = bagData?.verblijfsobjectAantalKamers + const oppervlakte = bagData?.verblijfsobjectOppervlakte + const aantalBouwlagen = bagData?.verblijfsobjectAantalBouwlagen + + const woningFields = [ // [ "Databron", "BRK" ], // , [ "Databron", "BAG" ], [ "Gebruiksdoel", woningBestemming ], - [ "Soort object (feitelijk gebruik)", woningGebruik ], - [ "Aantal bouwlagen", woningBouwlagen !== undefined ? woningBouwlagen : "–" ], - [ "Verdieping toegang", woningEtage !== undefined ? woningEtage : "–" ], - [ "Aantal kamers", woningKamers > 0 ? woningKamers : "–" ], - [ "Woonoppervlak", woningOppervlak > 0 ? woningOppervlak + " m²" : "–" ], - mailtoAnchor + [ "Soort object (feitelijk gebruik) volgens de WOZ", wozSoortObjectOmschrijving ], + [ "Status", status ], + [ "Woonoppervlak", oppervlakte ? `${ oppervlakte } m²` : "–" ], + [ "Aantal kamers", aantalKamers ?? "–" ], + [ "Verdieping toegang", verdiepingToegang !== undefined ? verdiepingToegang : "–" ], + [ "Toegang", toegang ], + [ "Aantal bouwlagen", aantalBouwlagen !== undefined ? aantalBouwlagen : "–" ] ] + // Woonboot const woonbootFields = [ - [ "Status", woonbootStatus || "–" ], - , - mailtoAnchor + [ "Status", bagData?.ligplaatsStatusOmschrijving || "–" ], + ] - const woningData = isWoning ? woningFields : woonbootFields - // Footer - const woningUrlBagType = isWoning ? "verblijfsobject" : "ligplaats" - const woningUrlBagId = isWoning ? woningBagId : woonbootLigplaatsIndicatie - const woningUrl = `https://data.amsterdam.nl/data/bag/${ woningUrlBagType }/${ woningUrlBagId }/` - const woningFooter = woningUrlBagId ? ( - { link: woningUrl, title: "Bekijk op Data en informatie" } - ) : undefined + const woningUrl = `https://data.amsterdam.nl/adressen/${ bagData?.identificatie }/` return ( ) } diff --git a/src/app/features/cases/email/basisInformatie.ts b/src/app/features/cases/email/basisInformatie.ts deleted file mode 100644 index 8b2e23744..000000000 --- a/src/app/features/cases/email/basisInformatie.ts +++ /dev/null @@ -1,51 +0,0 @@ -import formatBoolean from "app/features/shared/utils/formatBoolean" - -export const email = "Terugmelding.Basisinformatie@amsterdam.nl" - -export const subject = "Terugmelding Basisinformatie" - -export const body = ( - isWoonboot: boolean, - address: string, - postalCode: string, - gebruiksdoel?: string, - gebruik?: string, - aantalBouwlagen?: number, - etage?: number, - aantalKamers?: number, - oppervlak?: number, - woonbootStatus?: string -) => - `Beste collega, - -Wij hebben een afwijking in de woninggegevens geconstateerd op het volgende adres: - -${ address } -${ postalCode } Amsterdam - -Ons systeem toont bij dit adres op dit moment de volgende gegevens uit BAG: - -${ !isWoonboot ? - - `Gebruiksdoel: ${ gebruiksdoel || "–" } -Soort object (feitelijk gebruik): ${ gebruik || "–" } -Aantal bouwlagen: ${ aantalBouwlagen !== undefined ? aantalBouwlagen : "–" } -Verdieping toegang: ${ etage !== undefined ? etage : "–" } -Aantal kamers: ${ aantalKamers !== undefined ? aantalKamers : "–" } -Woonoppervlak: ${ oppervlak !== undefined ? `${ oppervlak } m² ` : "–" }` - : - `Status: ${ woonbootStatus || "–" }` - } - -We hebben bij onze controle de volgende afwijkingen geconstateerd: - -[--- VUL HIER DE GECONSTATEERDE AFWIJKING IN ---] - -Vriendelijke groet, - -[--- VUL HIER JE NAAM IN ---] - -Gemeente Amsterdam -Afdeling Wonen -Telefoon: 020 2514192 -`.replace(/\n/g, escape("\r\n")) diff --git a/src/app/features/types.ts b/src/app/features/types.ts index 76097106b..8b5866261 100644 --- a/src/app/features/types.ts +++ b/src/app/features/types.ts @@ -14,14 +14,18 @@ export type FraudPrediction = { export type BagData = { gebruiksdoelOmschrijvingen: string[] indicatie_geconstateerd?: boolean + identificatie: string ligplaatsIdentificatie?: string ligplaatsStatusOmschrijving?: string + toegangOmschrijvingen?: string[] verblijfsobjectAantalBouwlagen: number | null verblijfsobjectAantalKamers: number | null verblijfsobjectFeitelijkGebruikOmschrijving: string | null verblijfsobjectIdentificatie: string | null verblijfsobjectOppervlakte: number | null verblijfsobjectVerdiepingToegang: number | null + verblijfsobjectStatusOmschrijving: string | null + wozSoortObjectOmschrijving?: string | null } export type BagDataError = {