Compare commits
	
		
			1 Commits
		
	
	
		
			3525001035
			...
			f54c87260c
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | f54c87260c | 
| @ -10,8 +10,6 @@ export interface Api<T extends Entity> { | ||||
|   create(serializable: Serializable<T>, object: T, callback: (object: T) => void): void; | ||||
|   update(serializable: Serializable<T>, object: T, callback: () => void): void; | ||||
|   destroy(serializable: Serializable<T>, object: T, callback: () => void): void; | ||||
| 
 | ||||
|   post(serializable: Serializable<T>, path: string, callback: () => void): void; | ||||
| } | ||||
| 
 | ||||
| export interface Serializable<T> { | ||||
| @ -100,14 +98,4 @@ export class AbstractApi<T extends Entity> implements Api<T> { | ||||
|     }).then(callback) | ||||
|       .catch((error) => console.error(error)); | ||||
|   } | ||||
| 
 | ||||
|   post(serializable: Serializable<T>, path: string, callback: () => void): void { | ||||
|     fetch(`/api/${getSlug()}/${serializable.apiPath()}/${path}`, { | ||||
|       method: 'POST', | ||||
|       headers: { | ||||
|         'X-CSRF-TOKEN': getCsrfToken(), | ||||
|       } | ||||
|     }).then(callback) | ||||
|       .catch((error) => console.error(error)); | ||||
|   } | ||||
| } | ||||
|  | ||||
| @ -11,7 +11,6 @@ import { LinkIcon, TrashIcon } from "@heroicons/react/24/outline"; | ||||
| import { useEffect, useRef } from "react"; | ||||
| import { useState } from "react"; | ||||
| import { classNames } from "../components/button"; | ||||
| import { Toast } from "primereact/toast"; | ||||
| 
 | ||||
| function InvitationCard({ invitation, allGuests, onGuestAdded, onDestroy }: { | ||||
|   invitation: Invitation, | ||||
| @ -118,7 +117,6 @@ export default function InvitationsBoard({ guests, invitations: originalInvitati | ||||
|   guests: Array<Guest>, | ||||
|   invitations: Array<Invitation> | ||||
| }) { | ||||
|   const toast = useRef<Toast>(null); | ||||
|   const api = new AbstractApi<Invitation>(); | ||||
|   const serializer = new InvitationSerializer(); | ||||
| 
 | ||||
| @ -148,19 +146,14 @@ export default function InvitationsBoard({ guests, invitations: originalInvitati | ||||
|   } | ||||
| 
 | ||||
|   function handleDownloadQrCodes() { | ||||
|     api.post(serializer, 'email', () => { | ||||
|       toast.current?.show({ | ||||
|         severity: 'success', | ||||
|         summary: 'Email scheduled', | ||||
|         detail: 'A document with the QR codes will be sent to the organizer\'s email.' | ||||
|     api.getAllPdf(serializer, () => { | ||||
|       console.log("QR codes downloaded"); | ||||
|     }); | ||||
|     }) | ||||
|   } | ||||
| 
 | ||||
|   return ( | ||||
|     <div className="flex h-screen"> | ||||
|       {/* Left Column: Guests */} | ||||
|       <Toast ref={toast} /> | ||||
|       <div className="w-1/4 h-full overflow-auto border-r border-gray-300 p-4"> | ||||
|         <h2 className="text-lg font-semibold mb-4">{unassignedGuests.length} guests without invitation</h2> | ||||
|         <div> | ||||
| @ -187,7 +180,7 @@ export default function InvitationsBoard({ guests, invitations: originalInvitati | ||||
|           onClick={handleDownloadQrCodes} | ||||
|           className={classNames('primary')} | ||||
|         > | ||||
|           Send QR codes via email | ||||
|           Download QR codes | ||||
|         </button> | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user