Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/four-buttons-do.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@nmi-agro/fdm-app": patch
---

Add feature flag to manage access to RVO import of fields
38 changes: 37 additions & 1 deletion fdm-app/app/routes/farm.$b_id_farm.$calendar.rvo.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,8 @@ import {
DialogTrigger,
DialogClose,
} from "~/components/ui/dialog"
import { AlertTriangle, Loader2 } from "lucide-react"
import { AlertTriangle, CloudDownload, Loader2 } from "lucide-react"
import { useFeatureFlagEnabled } from "posthog-js/react"
import { useEffect, useState } from "react"
import { FarmContent } from "~/components/blocks/farm/farm-content"
import { FarmTitle } from "~/components/blocks/farm/farm-title"
Expand Down Expand Up @@ -228,6 +229,8 @@ export default function RvoImportReviewPage() {
const navigation = useNavigation()
const location = useLocation()

const isRvoEnabled = useFeatureFlagEnabled("rvo")

const isImporting =
navigation.state === "submitting" &&
navigation.formData?.get("intent") === "start_import"
Expand Down Expand Up @@ -299,6 +302,39 @@ export default function RvoImportReviewPage() {
)
const hasChanges = Object.values(changes).some((count) => count > 0)

if (isRvoEnabled === false) {
return (
<SidebarInset>
<Header
action={{
to: `/farm/${b_id_farm}`,
label: "Terug naar bedrijf",
disabled: false,
}}
>
<HeaderFarm b_id_farm={b_id_farm} farmOptions={farms} />
</Header>
<FarmContent>
<div className="max-w-2xl mx-auto mt-20 text-center space-y-6">
<div className="bg-primary/10 border border-primary/20 p-8 rounded-xl">
<CloudDownload className="w-12 h-12 text-primary mx-auto mb-4" />
<h2 className="text-2xl font-bold text-foreground mb-2">
Percelen ophalen bij RVO is nog niet beschikbaar
voor je.
</h2>
<p className="text-muted-foreground mb-6">
Deze functionaliteit is momenteel in ontwikkeling
en is nog niet voor iedereen beschikbaar. Neem
contact op met Ondersteuning als je hier vragen
over hebt.
</p>
</div>
</div>
</FarmContent>
</SidebarInset>
)
}

if (error) {
return (
<SidebarInset>
Expand Down
5 changes: 4 additions & 1 deletion fdm-app/app/routes/farm.$b_id_farm._index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import {
UserRoundCheck,
CloudDownload,
} from "lucide-react"
import { useFeatureFlagEnabled } from "posthog-js/react"
import { useState } from "react"
import {
data,
Expand Down Expand Up @@ -155,6 +156,7 @@ export async function loader({ request, params }: LoaderFunctionArgs) {

export default function FarmDashboardIndex() {
const loaderData = useLoaderData<typeof loader>()
const isRvoEnabled = useFeatureFlagEnabled("rvo")

const calendar = useCalendarStore((state) => state.calendar)
const setCalendar = useCalendarStore((state) => state.setCalendar)
Expand Down Expand Up @@ -449,7 +451,8 @@ export default function FarmDashboardIndex() {
</CardHeader>
</Card>
</NavLink>
{loaderData.isRvoConfigured && (
{loaderData.isRvoConfigured &&
isRvoEnabled !== false && (
<NavLink
to={`${calendar}/rvo`}
className={cn(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { getFarm } from "@nmi-agro/fdm-core"
import { DownloadCloud, Map as MapIcon, UploadCloud } from "lucide-react"
import { useFeatureFlagEnabled } from "posthog-js/react"
import type { LoaderFunctionArgs, MetaFunction } from "react-router"
import { data, NavLink, useLoaderData } from "react-router"
import { Header } from "~/components/blocks/header/base"
Expand Down Expand Up @@ -63,6 +64,8 @@ export async function loader({ request, params }: LoaderFunctionArgs) {

export default function ChooseFieldImportMethod() {
const { farm, isRvoConfigured } = useLoaderData<typeof loader>()
const isRvoEnabled = useFeatureFlagEnabled("rvo")
const showRvoOption = isRvoConfigured && isRvoEnabled !== false

return (
<SidebarInset>
Expand All @@ -80,12 +83,12 @@ export default function ChooseFieldImportMethod() {
<div
className={cn(
"grid gap-8",
isRvoConfigured
showRvoOption
? "md:grid-cols-3"
: "md:grid-cols-2",
)}
>
{isRvoConfigured && (
{showRvoOption && (
<Card className="flex flex-col">
<CardHeader className="items-center text-center">
<DownloadCloud className="w-12 h-12 mb-4" />
Expand Down
32 changes: 31 additions & 1 deletion fdm-app/app/routes/farm.create.$b_id_farm.$calendar.rvo.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ import { RvoImportReviewTable } from "~/components/blocks/rvo/import-review-tabl
import { type Cultivation, type Field, getFarm } from "@nmi-agro/fdm-core"
import { Alert, AlertDescription, AlertTitle } from "~/components/ui/alert"
import { Button } from "~/components/ui/button"
import { AlertTriangle, Loader2 } from "lucide-react"
import { AlertTriangle, CloudDownload, Loader2 } from "lucide-react"
import { useFeatureFlagEnabled } from "posthog-js/react"
import { useEffect, useState } from "react"
import { FarmContent } from "~/components/blocks/farm/farm-content"
import { FarmTitle } from "~/components/blocks/farm/farm-title"
Expand Down Expand Up @@ -202,6 +203,8 @@ export default function RvoImportCreatePage() {
const navigation = useNavigation()
const location = useLocation()

const isRvoEnabled = useFeatureFlagEnabled("rvo")

const isImporting =
navigation.state === "submitting" &&
navigation.formData?.get("intent") === "start_import"
Expand Down Expand Up @@ -251,6 +254,33 @@ export default function RvoImportCreatePage() {
setUserChoices((prev: UserChoiceMap) => ({ ...prev, [id]: action }))
}

if (isRvoEnabled === false) {
return (
<SidebarInset>
<Header action={undefined}>
<HeaderFarmCreate b_name_farm={b_name_farm} />
</Header>
<FarmContent>
<div className="max-w-2xl mx-auto mt-20 text-center space-y-6">
<div className="bg-primary/10 border border-primary/20 p-8 rounded-xl">
<CloudDownload className="w-12 h-12 text-primary mx-auto mb-4" />
<h2 className="text-2xl font-bold text-foreground mb-2">
Percelen ophalen bij RVO is nog niet beschikbaar
voor je.
</h2>
<p className="text-muted-foreground mb-6">
Deze functionaliteit is momenteel in ontwikkeling
en is nog niet voor iedereen beschikbaar. Neem
contact op met Ondersteuning als je hier vragen
over hebt.
</p>
</div>
</div>
</FarmContent>
</SidebarInset>
)
}

if (error) {
return (
<SidebarInset>
Expand Down
Loading