Compare commits

..

3 Commits

Author SHA1 Message Date
63d07096bf Include transition to the transitive status
Some checks failed
Playwright Tests / test (pull_request) Has been cancelled
Check usage of free licenses / build-static-assets (pull_request) Has been cancelled
Build Nginx-based docker image / build-static-assets (pull_request) Has been cancelled
2024-10-27 19:37:24 +01:00
c1e40af2c4 Merge branch 'tentative-status' into additiona-status-changes 2024-10-27 19:34:42 +01:00
7fd8c9cd99 Flag tentative stsatus with a yellow icon
Some checks failed
Playwright Tests / test (pull_request) Has been cancelled
Check usage of free licenses / build-static-assets (pull_request) Has been cancelled
Build Nginx-based docker image / build-static-assets (pull_request) Has been cancelled
2024-10-27 19:28:43 +01:00
2 changed files with 10 additions and 7 deletions

View File

@ -21,7 +21,7 @@ export type Guest = {
name: string; name: string;
email: string; email: string;
group_name: string; group_name: string;
status: 'Considered' | 'Invited' | 'Confirmed' | 'Declined'; status: 'Considered' | 'Invited' | 'Confirmed' | 'Declined' | 'Tentative';
} }
export type Group = { export type Group = {

View File

@ -29,6 +29,7 @@ export default function guestsTable() {
const handleInviteGuest = (e: React.MouseEvent<HTMLElement>) => handleGuestChange(e, 'invited'); const handleInviteGuest = (e: React.MouseEvent<HTMLElement>) => handleGuestChange(e, 'invited');
const handleConfirmGuest = (e: React.MouseEvent<HTMLElement>) => handleGuestChange(e, 'confirmed'); const handleConfirmGuest = (e: React.MouseEvent<HTMLElement>) => handleGuestChange(e, 'confirmed');
const handleDeclineGuest = (e: React.MouseEvent<HTMLElement>) => handleGuestChange(e, 'declined'); const handleDeclineGuest = (e: React.MouseEvent<HTMLElement>) => handleGuestChange(e, 'declined');
const handleTentativeGuest = (e: React.MouseEvent<HTMLElement>) => handleGuestChange(e, 'tentative');
const handleGuestChange = (e: React.MouseEvent<HTMLElement>, status:string) => { const handleGuestChange = (e: React.MouseEvent<HTMLElement>, status:string) => {
fetch("/api/guests/bulk_update.json", fetch("/api/guests/bulk_update.json",
@ -94,6 +95,7 @@ export default function guestsTable() {
'bg-blue-400': guest.status === 'Invited', 'bg-blue-400': guest.status === 'Invited',
'bg-green-600': guest.status === 'Confirmed', 'bg-green-600': guest.status === 'Confirmed',
'bg-red-400': guest.status === 'Declined', 'bg-red-400': guest.status === 'Declined',
'bg-yellow-400': guest.status === 'Tentative',
} }
)}> )}>
</span> </span>
@ -104,12 +106,13 @@ export default function guestsTable() {
{guest.status === 'Considered' && (<button data-guest-id={guest.id} onClick={handleInviteGuest} className={`${ctaClassName} bg-blue-400 hover:bg-blue-600`}> {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`}> {guest.status === 'Invited' && (
Confirm <>
</button>)} <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`}> <button data-guest-id={guest.id} onClick={handleDeclineGuest} className={`${ctaClassName} bg-yellow-500 hover:bg-yellow-700`}>Tentative</button>
Decline <button data-guest-id={guest.id} onClick={handleDeclineGuest} className={`${ctaClassName} bg-red-500 hover:bg-red-600`}>Decline</button>
</button>)} </>
)}
</td> </td>
</tr> </tr>
))} ))}