Skip to content

Commit 9317218

Browse files
Format and Fix Glass Selector
1 parent 85a9f1e commit 9317218

4 files changed

Lines changed: 62 additions & 41 deletions

File tree

renovate.json

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,14 @@
11
{
22
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
3-
"extends": [
4-
"config:recommended"
5-
],
6-
"baseBranchPatterns": [
7-
"main"
8-
],
3+
"extends": ["config:recommended"],
4+
"baseBranchPatterns": ["main"],
95
"packageRules": [
106
{
11-
"matchUpdateTypes": [
12-
"minor",
13-
"patch",
14-
"pin",
15-
"digest"
16-
],
7+
"matchUpdateTypes": ["minor", "patch", "pin", "digest"],
178
"automerge": true
189
},
1910
{
20-
"matchDepTypes": [
21-
"devDependencies"
22-
],
11+
"matchDepTypes": ["devDependencies"],
2312
"automerge": true
2413
}
2514
],

src/index.css

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,8 +118,9 @@
118118
[data-slot="card"].pump-running {
119119
--tw-ring-color: var(--primary) !important;
120120
--tw-ring-opacity: 1 !important;
121-
box-shadow: 0 0 0 2px var(--primary),
122-
0 10px 15px -3px oklch(0.601 0.153 262.676 / 0.3) !important;
121+
box-shadow:
122+
0 0 0 2px var(--primary),
123+
0 10px 15px -3px oklch(0.601 0.153 262.676 / 0.3) !important;
123124
}
124125

125126
/* Scrolling progress bar animation */

src/pages/simple-mode/simpleOrder/components/GlassSelector.tsx

Lines changed: 35 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { useState, useEffect } from 'react';
1+
import { useState, useEffect, useRef } from 'react';
22
import { GlassWater, Loader2 } from 'lucide-react';
33
import glassService from '../../../../services/glass.service';
44
import { Button } from '@/components/ui/button';
@@ -16,7 +16,8 @@ import { Alert, AlertDescription } from '@/components/ui/alert';
1616
interface Glass {
1717
id: string;
1818
name: string;
19-
sizeInMl: number;
19+
size: number;
20+
sizeInMl?: number;
2021
description?: string;
2122
}
2223

@@ -38,23 +39,42 @@ const GlassSelector = ({
3839
const [loading, setLoading] = useState(true);
3940
const [glasses, setGlasses] = useState<Glass[]>([]);
4041
const [isModalOpen, setIsModalOpen] = useState(false);
42+
const hasInitialized = useRef(false);
4143

4244
useEffect(() => {
4345
const fetchGlasses = async () => {
4446
try {
45-
// Fetch all available glasses
4647
const allGlasses = await glassService.getGlasses(token);
4748
setGlasses(allGlasses);
4849

49-
// If default glass is provided, select it
50-
if (defaultGlass) {
51-
const glass = allGlasses.find((g: Glass) => g.id === defaultGlass.id);
52-
if (glass) {
53-
setSelectedGlass(glass);
50+
if (!hasInitialized.current) {
51+
hasInitialized.current = true;
52+
53+
console.log('GlassSelector initializing:', {
54+
defaultGlass,
55+
selectedGlass,
56+
glassCount: allGlasses.length,
57+
});
58+
59+
if (defaultGlass) {
60+
const glass = allGlasses.find(
61+
(g: Glass) => g.id === defaultGlass.id,
62+
);
63+
if (glass) {
64+
console.log('Setting default glass:', glass);
65+
setSelectedGlass(glass);
66+
if (onGlassChange) {
67+
onGlassChange(glass);
68+
}
69+
}
70+
} else if (allGlasses.length > 0 && !selectedGlass) {
71+
// Auto-select first glass if none selected
72+
console.log('Auto-selecting first glass:', allGlasses[0]);
73+
setSelectedGlass(allGlasses[0]);
74+
if (onGlassChange) {
75+
onGlassChange(allGlasses[0]);
76+
}
5477
}
55-
} else if (allGlasses.length > 0 && !selectedGlass) {
56-
// Auto-select first glass if none selected
57-
setSelectedGlass(allGlasses[0]);
5878
}
5979
} catch (error) {
6080
console.error('Failed to fetch glasses:', error);
@@ -66,7 +86,7 @@ const GlassSelector = ({
6686
if (token) {
6787
fetchGlasses();
6888
}
69-
}, [token, defaultGlass, setSelectedGlass]);
89+
}, [token]);
7090

7191
if (loading) {
7292
return (
@@ -113,11 +133,11 @@ const GlassSelector = ({
113133
{selectedGlass.name}
114134
</div>
115135
<div className="text-xs sm:text-sm text-muted-foreground">
116-
{selectedGlass.sizeInMl}ml capacity
136+
{selectedGlass.size}ml capacity
117137
</div>
118138
</div>
119139
</div>
120-
<Badge className="shrink-0">{selectedGlass.sizeInMl}ml</Badge>
140+
<Badge className="shrink-0">{selectedGlass.size}ml</Badge>
121141
</div>
122142
) : (
123143
<div className="flex items-center gap-2 text-muted-foreground">
@@ -173,7 +193,7 @@ const GlassSelector = ({
173193
}
174194
className="shrink-0"
175195
>
176-
{glass.sizeInMl}ml
196+
{glass.size}ml
177197
</Badge>
178198
</div>
179199
{glass.description && (

src/pages/simple-mode/simpleOrder/simpleOrder.tsx

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ interface Ingredient {
2121
interface Glass {
2222
id: string;
2323
name: string;
24-
sizeInMl: number;
24+
size: number;
25+
sizeInMl?: number;
2526
description?: string;
2627
}
2728

@@ -58,12 +59,6 @@ const SimpleOrder = () => {
5859

5960
useEffect(() => {
6061
if (recipe) {
61-
if (recipe.defaultGlass) {
62-
setSelectedGlass(recipe.defaultGlass);
63-
setAmountToProduce(recipe.defaultGlass.sizeInMl);
64-
} else {
65-
setAmountToProduce(250);
66-
}
6762
setIngredients(recipe.ingredients || []);
6863
}
6964
}, [recipe]);
@@ -89,7 +84,11 @@ const SimpleOrder = () => {
8984
}, [recipe, amountToProduce, boost]);
9085

9186
const getOrderConfig = () => ({
92-
amountOrderedInMl: amountToProduce || recipe?.defaultGlass?.sizeInMl || 250,
87+
amountOrderedInMl:
88+
amountToProduce ||
89+
(recipe?.defaultGlass as any)?.size ||
90+
recipe?.defaultGlass?.sizeInMl ||
91+
250,
9392
customisations: {
9493
boost: parseInt(boost.toString()) || 100,
9594
additionalIngredients: additionalIngredients || [],
@@ -193,6 +192,18 @@ const SimpleOrder = () => {
193192
!checking &&
194193
areAllIngredientsAvailable(feasibilityResult?.requiredIngredients || []);
195194

195+
// Debug logging
196+
console.log('canOrderDrink debug:', {
197+
feasible: feasibilityResult?.feasible,
198+
selectedGlass: selectedGlass,
199+
loading,
200+
checking,
201+
ingredientsAvailable: areAllIngredientsAvailable(
202+
feasibilityResult?.requiredIngredients || [],
203+
),
204+
canOrderDrink,
205+
});
206+
196207
const hasBoostableIngredients = feasibilityResult?.requiredIngredients?.some(
197208
(item: any) =>
198209
item.ingredient.type === 'automated' &&
@@ -277,7 +288,7 @@ const SimpleOrder = () => {
277288
setSelectedGlass={setSelectedGlass}
278289
onGlassChange={(glass) => {
279290
if (glass) {
280-
setAmountToProduce(glass.sizeInMl);
291+
setAmountToProduce(glass.size || glass.sizeInMl || 250);
281292
}
282293
}}
283294
/>

0 commit comments

Comments
 (0)