mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-20 08:51:13 -05:00
Fix ride selection in Add Credit modal
This commit is contained in:
@@ -22,6 +22,7 @@ interface AddRideCreditDialogProps {
|
||||
|
||||
export function AddRideCreditDialog({ userId, open, onOpenChange, onSuccess }: AddRideCreditDialogProps) {
|
||||
const [selectedRideId, setSelectedRideId] = useState<string>('');
|
||||
const [selectedRideName, setSelectedRideName] = useState<string>('');
|
||||
const [firstRideDate, setFirstRideDate] = useState<Date | undefined>(undefined);
|
||||
const [rideCount, setRideCount] = useState(1);
|
||||
const [submitting, setSubmitting] = useState(false);
|
||||
@@ -62,8 +63,9 @@ export function AddRideCreditDialog({ userId, open, onOpenChange, onSuccess }: A
|
||||
if (error) throw error;
|
||||
|
||||
toast.success('Ride credit added!');
|
||||
onSuccess();
|
||||
handleReset();
|
||||
onSuccess();
|
||||
onOpenChange(false);
|
||||
} catch (error) {
|
||||
console.error('Error adding credit:', error);
|
||||
toast.error(getErrorMessage(error));
|
||||
@@ -74,12 +76,21 @@ export function AddRideCreditDialog({ userId, open, onOpenChange, onSuccess }: A
|
||||
|
||||
const handleReset = () => {
|
||||
setSelectedRideId('');
|
||||
setSelectedRideName('');
|
||||
setFirstRideDate(undefined);
|
||||
setRideCount(1);
|
||||
};
|
||||
|
||||
return (
|
||||
<Dialog open={open} onOpenChange={onOpenChange}>
|
||||
<Dialog
|
||||
open={open}
|
||||
onOpenChange={(newOpen) => {
|
||||
if (!newOpen) {
|
||||
handleReset();
|
||||
}
|
||||
onOpenChange(newOpen);
|
||||
}}
|
||||
>
|
||||
<DialogContent className="max-w-md">
|
||||
<DialogHeader>
|
||||
<DialogTitle>Add Ride Credit</DialogTitle>
|
||||
@@ -91,16 +102,37 @@ export function AddRideCreditDialog({ userId, open, onOpenChange, onSuccess }: A
|
||||
<form onSubmit={handleSubmit} className="space-y-4">
|
||||
<div className="space-y-2">
|
||||
<Label>Search for a Ride</Label>
|
||||
{!selectedRideId ? (
|
||||
<AutocompleteSearch
|
||||
onResultSelect={(result) => {
|
||||
if (result.type === 'ride') {
|
||||
setSelectedRideId(result.id);
|
||||
setSelectedRideName(result.title);
|
||||
}
|
||||
}}
|
||||
types={['ride']}
|
||||
placeholder="Search rides..."
|
||||
className="w-full"
|
||||
/>
|
||||
) : (
|
||||
<div className="flex items-center justify-between p-3 border rounded-lg bg-muted/50">
|
||||
<div>
|
||||
<p className="font-medium">{selectedRideName}</p>
|
||||
<p className="text-sm text-muted-foreground">Selected ride</p>
|
||||
</div>
|
||||
<Button
|
||||
type="button"
|
||||
variant="ghost"
|
||||
size="sm"
|
||||
onClick={() => {
|
||||
setSelectedRideId('');
|
||||
setSelectedRideName('');
|
||||
}}
|
||||
>
|
||||
Change
|
||||
</Button>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
|
||||
<div className="space-y-2">
|
||||
|
||||
Reference in New Issue
Block a user