Additional status changes #63
| @ -26,12 +26,15 @@ export default function guestsTable() { | |||||||
|       }); |       }); | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|  |   const handleInviteGuest = (e: React.MouseEvent<HTMLElement>) => handleGuestChange(e, 'invited'); | ||||||
|  |   const handleConfirmGuest = (e: React.MouseEvent<HTMLElement>) => handleGuestChange(e, 'confirmed'); | ||||||
|  |   const handleDeclineGuest = (e: React.MouseEvent<HTMLElement>) => handleGuestChange(e, 'declined'); | ||||||
| 
 | 
 | ||||||
|   const handleInviteGuest = (e: React.MouseEvent<HTMLElement>) => { |   const handleGuestChange = (e: React.MouseEvent<HTMLElement>, status:string) => { | ||||||
|     fetch("/api/guests/bulk_update.json", |     fetch("/api/guests/bulk_update.json", | ||||||
|       { |       { | ||||||
|         method: 'POST', |         method: 'POST', | ||||||
|         body: JSON.stringify({ properties: { status: "invited" }, guest_ids: [e.currentTarget.getAttribute('data-guest-id')] }), |         body: JSON.stringify({ properties: { status: status }, guest_ids: [e.currentTarget.getAttribute('data-guest-id')] }), | ||||||
|         headers: { |         headers: { | ||||||
|           'Content-Type': 'application/json', |           'Content-Type': 'application/json', | ||||||
|           'X-CSRF-TOKEN': getCsrfToken(), |           'X-CSRF-TOKEN': getCsrfToken(), | ||||||
| @ -42,6 +45,7 @@ export default function guestsTable() { | |||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   guests.length === 0 && loadGuests(); |   guests.length === 0 && loadGuests(); | ||||||
|  |   const ctaClassName = "text-white py-1 px-2 mx-1 rounded"; | ||||||
| 
 | 
 | ||||||
|   return ( |   return ( | ||||||
|     <div className="w-full relative overflow-x-auto shadow-md sm:rounded-lg"> |     <div className="w-full relative overflow-x-auto shadow-md sm:rounded-lg"> | ||||||
| @ -97,9 +101,15 @@ export default function guestsTable() { | |||||||
|                 </span> |                 </span> | ||||||
|               </td> |               </td> | ||||||
|               <td> |               <td> | ||||||
|                 {guest.status === 'Considered' && (<button data-guest-id={guest.id} onClick={handleInviteGuest} className="bg-blue-300 hover:bg-blue-500 text-white py-1 px-2 rounded"> |                 {guest.status === 'Considered' && (<button data-guest-id={guest.id} onClick={handleInviteGuest} className={`${ctaClassName} bg-blue-400 hover:bg-blue-600`}> | ||||||
|                   Invite |                   Invite | ||||||
|                 </button>)} |                 </button>)} | ||||||
|  |                 {guest.status === 'Invited' && (<button data-guest-id={guest.id} onClick={handleConfirmGuest} className={`${ctaClassName} bg-green-500 hover:bg-green-600`}> | ||||||
|  |                   Confirm | ||||||
|  |                 </button>)} | ||||||
|  |                 {guest.status === 'Invited' && (<button data-guest-id={guest.id} onClick={handleDeclineGuest} className={`${ctaClassName} bg-red-500 hover:bg-red-600`}> | ||||||
|  |                   Decline | ||||||
|  |                 </button>)} | ||||||
|               </td> |               </td> | ||||||
|             </tr> |             </tr> | ||||||
|           ))} |           ))} | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user