/* global React, ReactDOM */ const { useState, useEffect } = React; const D = window.DOUMEN; function Nav() { const [scrolled, setScrolled] = useState(false); const [open, setOpen] = useState(false); useEffect(() => { const f = () => setScrolled(window.scrollY > 8); window.addEventListener("scroll", f); return () => window.removeEventListener("scroll", f); }, []); const links = [ ["#diensten", "Diensten"], ["#projecten", "Projecten"], ["#over", "Over"], ["#materieel", "Materieel"], ["#contact", "Contact"], ]; return (
Grondwerken J. Doumen Offerte aanvragen
); } function Hero() { return (
Grondwerken sinds 2008 / Dilsen-Stokkem

Wij graven
dieper &
bouwen vaster.

Familiebedrijf voor graafwerken, rioleringen, opritten en afbraakwerken. Eigen ploeg, eigen materieel, één aanspreekpunt — van offerte tot oplevering.

Vraag uw offerte Recente werken
PHOTO · Werf in uitvoering
{D.stats.map((s, i) => (
{s.num}{s.suffix}
{s.lbl}
))}
); } function Ticker() { const items = ["Graafwerken", "Rioleringen", "Opritten", "Afbraak", "Nivelleringen", "Funderingen", "Drainage", "Tuinaanleg"]; return ( ); } function Services() { return (
[ 01 — Diensten ]

Van eerste schop
tot afwerking

Zes vaste werkdomeinen, uitgevoerd met eigen ploeg en materieel. Geen onderaannemers, geen verrassingen.

{D.services.map((s) => (
{s.n}

{s.t}

{s.d}

))}
); } function Projects() { return (
[ 02 — Projecten ]

Werk dat de
tand des tijds doorstaat

Een greep uit de werven van het afgelopen seizoen. Vraag gerust een referentie in uw buurt op.

{D.projects.map((p, i) => (
{p.tag}

{p.t}

{p.p}{p.y}
))}
); } function About() { return (
PHOTO · Werfploeg
[ 03 — Over Doumen ]

Een familiezaak
met diepe wortels

Grondwerken J. Doumen is gestart vanuit één graafmachine en een eenvoudige overtuiging: een werf goed afleveren begint bij eerlijk werk in de grond. Achttien jaar later is dat nog steeds de maat van alles wat we doen.

We werken voor particulieren, architecten en aannemers in heel Belgisch Limburg. Eén ploeg, één aanspreekpunt — van plaatsbezoek tot de laatste klinker.

"Goed werk zie je niet —
het ligt onder de grond."
); } function Process() { return (
[ 04 — Werkwijze ]

Vier stappen,
zonder ruis

{D.steps.map((s) => (
{s.n}

{s.t}

{s.d}

))}
); } function Machinery() { return (
[ 05 — Materieel ]

Eigen vloot,
steeds inzetbaar

We werken uitsluitend met eigen machines, onderhouden in eigen werkplaats. Dat houdt de planning strak en de prijs eerlijk.

{D.machines.map((m, i) => (
{m.s}
{m.t}
))}
); } const SVC_OPTS = ["Graafwerken", "Riolering", "Oprit", "Afbraak", "Nivellering", "Tuinaanleg"]; const TIMING = ["Zo snel mogelijk", "Binnen 1 maand", "Binnen 3 maanden", "Later dit jaar", "Nog te bepalen"]; function QuoteForm() { const [step, setStep] = useState(0); const [services, setServices] = useState([]); const [timing, setTiming] = useState(""); const [form, setForm] = useState({ name: "", phone: "", city: "", note: "" }); const [done, setDone] = useState(false); const toggle = (s) => setServices(a => a.includes(s) ? a.filter(x => x !== s) : [...a, s]); const upd = (k, v) => setForm(f => ({ ...f, [k]: v })); const canNext = (step === 0 && services.length) || (step === 1 && timing) || (step === 2 && form.name && form.phone); if (done) return (

Bedankt, {form.name.split(" ")[0] || "buurman"}

We bekijken uw aanvraag en bellen u binnen één werkdag terug op {form.phone || "het opgegeven nummer"}.

); return (
{ e.preventDefault(); if (canNext) setDone(true); }}>