11import { X } from "lucide-react" ;
22import Head from "next/head" ;
3- import Link from "next/link" ;
43
54import achievements from "@/data/achievements.json" ;
65import recipes from "@/data/cooking.json" ;
@@ -16,6 +15,7 @@ import { useEffect, useMemo, useState } from "react";
1615
1716import { AchievementCard } from "@/components/cards/achievement-card" ;
1817import { RecipeCard } from "@/components/cards/recipe-card" ;
18+ import { BetaFeaturesDialog } from "@/components/dialogs/beta-features-dialog" ;
1919import { BulkActionDialog } from "@/components/dialogs/bulk-action-dialog" ;
2020import { UnblurDialog } from "@/components/dialogs/unblur-dialog" ;
2121import { FilterSearch } from "@/components/filter-btn" ;
@@ -92,6 +92,7 @@ export default function Cooking() {
9292 const [ bulkActionOpen , setBulkActionOpen ] = useState ( false ) ;
9393
9494 const [ showPrompt , setPromptOpen ] = useState ( false ) ;
95+ const [ betaDialogOpen , setBetaDialogOpen ] = useState ( false ) ;
9596
9697 const { activePlayer } = usePlayers ( ) ;
9798 const { show, toggleShow, showBetaFeatures, toggleBetaFeatures } =
@@ -171,6 +172,11 @@ export default function Cooking() {
171172 if ( value == activeTab ) {
172173 return ;
173174 }
175+ // If trying to switch to ingredients tab and beta features aren't enabled, show dialog
176+ if ( value === "ingredients" && ! showBetaFeatures ) {
177+ setBetaDialogOpen ( true ) ;
178+ return ;
179+ }
174180 router . push (
175181 {
176182 pathname : router . pathname ,
@@ -243,14 +249,14 @@ export default function Cooking() {
243249 </ section >
244250 </ Accordion >
245251 < Tabs value = { activeTab } onValueChange = { handleTabChange } >
246- < TabsList className = "grid w-full grid-cols-3 " >
252+ < TabsList className = "grid w-full grid-cols-2 " >
247253 < TabsTrigger value = "recipes" > All Recipes</ TabsTrigger >
248254 < TabsTrigger value = "ingredients" className = "relative" >
249255 Ingredient Tracker < NewItemBadge version = "beta" />
250256 </ TabsTrigger >
251257 </ TabsList >
252258 { /* All Recipes Section */ }
253- < TabsContent value = "recipes" className = "mt-4 space-y-8 " >
259+ < TabsContent value = "recipes" className = "mt-4" >
254260 { /* Filters and Actions Row */ }
255261 < div className = "flex w-full flex-row items-center justify-between" >
256262 < ToggleGroup
@@ -338,7 +344,7 @@ export default function Cooking() {
338344 </ Command >
339345 </ div >
340346 { /* Cards */ }
341- < div className = "grid grid-cols-1 gap-4 md:grid-cols-2 xl:grid-cols-4" >
347+ < div className = "grid grid-cols-1 mt-2 gap-4 md:grid-cols-2 xl:grid-cols-4" >
342348 { Object . values ( recipes )
343349 . filter ( ( r ) => semverGte ( gameVersion , r . minVersion ) )
344350 . filter ( ( r ) => {
@@ -383,27 +389,7 @@ export default function Cooking() {
383389 ) ) }
384390 </ div >
385391 </ TabsContent >
386- < TabsContent value = "ingredients" className = "mt-4 space-y-8" >
387- { ! showBetaFeatures && (
388- < >
389- < h3 > Show Beta Features?</ h3 >
390- < p >
391- This feature is currently in beta and will likely change
392- often based on feedback. You can always disable beta
393- features again in your{ " " }
394- < Link
395- href = "/account"
396- className = "underline hover:text-neutral-400 hover:dark:text-neutral-300"
397- >
398- account settings
399- </ Link >
400- .
401- </ p >
402- < Button onClick = { toggleBetaFeatures } >
403- Show Beta Features
404- </ Button >
405- </ >
406- ) }
392+ < TabsContent value = "ingredients" className = "mt-4" >
407393 { /* Needed Ingredients Section */ }
408394 { showBetaFeatures && (
409395 < >
@@ -483,6 +469,28 @@ export default function Cooking() {
483469 setOpen = { setPromptOpen }
484470 toggleShow = { toggleShow }
485471 />
472+ < BetaFeaturesDialog
473+ open = { betaDialogOpen }
474+ setOpen = { setBetaDialogOpen }
475+ toggleBetaFeatures = { ( ) => {
476+ const enabled = toggleBetaFeatures ( ) ;
477+ if ( enabled ) {
478+ // Switch to ingredients tab after enabling
479+ router . push (
480+ {
481+ pathname : router . pathname ,
482+ query : {
483+ ...router . query ,
484+ trackingTab : "ingredients" ,
485+ } ,
486+ } ,
487+ undefined ,
488+ { shallow : true } ,
489+ ) ;
490+ }
491+ return enabled ;
492+ } }
493+ />
486494 < BulkActionDialog
487495 open = { bulkActionOpen }
488496 setOpen = { setBulkActionOpen }
0 commit comments