mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-20 11:51:14 -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) {
|
export function AddRideCreditDialog({ userId, open, onOpenChange, onSuccess }: AddRideCreditDialogProps) {
|
||||||
const [selectedRideId, setSelectedRideId] = useState<string>('');
|
const [selectedRideId, setSelectedRideId] = useState<string>('');
|
||||||
|
const [selectedRideName, setSelectedRideName] = useState<string>('');
|
||||||
const [firstRideDate, setFirstRideDate] = useState<Date | undefined>(undefined);
|
const [firstRideDate, setFirstRideDate] = useState<Date | undefined>(undefined);
|
||||||
const [rideCount, setRideCount] = useState(1);
|
const [rideCount, setRideCount] = useState(1);
|
||||||
const [submitting, setSubmitting] = useState(false);
|
const [submitting, setSubmitting] = useState(false);
|
||||||
@@ -62,8 +63,9 @@ export function AddRideCreditDialog({ userId, open, onOpenChange, onSuccess }: A
|
|||||||
if (error) throw error;
|
if (error) throw error;
|
||||||
|
|
||||||
toast.success('Ride credit added!');
|
toast.success('Ride credit added!');
|
||||||
onSuccess();
|
|
||||||
handleReset();
|
handleReset();
|
||||||
|
onSuccess();
|
||||||
|
onOpenChange(false);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Error adding credit:', error);
|
console.error('Error adding credit:', error);
|
||||||
toast.error(getErrorMessage(error));
|
toast.error(getErrorMessage(error));
|
||||||
@@ -74,12 +76,21 @@ export function AddRideCreditDialog({ userId, open, onOpenChange, onSuccess }: A
|
|||||||
|
|
||||||
const handleReset = () => {
|
const handleReset = () => {
|
||||||
setSelectedRideId('');
|
setSelectedRideId('');
|
||||||
|
setSelectedRideName('');
|
||||||
setFirstRideDate(undefined);
|
setFirstRideDate(undefined);
|
||||||
setRideCount(1);
|
setRideCount(1);
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Dialog open={open} onOpenChange={onOpenChange}>
|
<Dialog
|
||||||
|
open={open}
|
||||||
|
onOpenChange={(newOpen) => {
|
||||||
|
if (!newOpen) {
|
||||||
|
handleReset();
|
||||||
|
}
|
||||||
|
onOpenChange(newOpen);
|
||||||
|
}}
|
||||||
|
>
|
||||||
<DialogContent className="max-w-md">
|
<DialogContent className="max-w-md">
|
||||||
<DialogHeader>
|
<DialogHeader>
|
||||||
<DialogTitle>Add Ride Credit</DialogTitle>
|
<DialogTitle>Add Ride Credit</DialogTitle>
|
||||||
@@ -91,16 +102,37 @@ export function AddRideCreditDialog({ userId, open, onOpenChange, onSuccess }: A
|
|||||||
<form onSubmit={handleSubmit} className="space-y-4">
|
<form onSubmit={handleSubmit} className="space-y-4">
|
||||||
<div className="space-y-2">
|
<div className="space-y-2">
|
||||||
<Label>Search for a Ride</Label>
|
<Label>Search for a Ride</Label>
|
||||||
<AutocompleteSearch
|
{!selectedRideId ? (
|
||||||
onResultSelect={(result) => {
|
<AutocompleteSearch
|
||||||
if (result.type === 'ride') {
|
onResultSelect={(result) => {
|
||||||
setSelectedRideId(result.id);
|
if (result.type === 'ride') {
|
||||||
}
|
setSelectedRideId(result.id);
|
||||||
}}
|
setSelectedRideName(result.title);
|
||||||
types={['ride']}
|
}
|
||||||
placeholder="Search rides..."
|
}}
|
||||||
className="w-full"
|
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>
|
||||||
|
|
||||||
<div className="space-y-2">
|
<div className="space-y-2">
|
||||||
|
|||||||
Reference in New Issue
Block a user