Skip to content

Commit e28aea7

Browse files
authored
Feature: Upgrade Attendees table to Tanstack (#903)
1 parent eb43fb2 commit e28aea7

File tree

7 files changed

+651
-190
lines changed

7 files changed

+651
-190
lines changed

frontend/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
"@stripe/stripe-js": "^1.54.1",
4343
"@tabler/icons-react": "^2.44.0",
4444
"@tanstack/react-query": "5.76.1",
45+
"@tanstack/react-table": "^8.21.3",
4546
"@tiptap/core": "^2.7.0",
4647
"@tiptap/extension-color": "^2.11.7",
4748
"@tiptap/extension-image": "^2.11.5",
Lines changed: 111 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,122 @@
1-
.tableContainer {
2-
overflow-x: auto;
1+
.attendeeDetails {
2+
min-width: 0;
3+
flex: 1;
4+
display: flex;
5+
flex-direction: column;
6+
gap: 6px;
37
}
48

5-
.table {
6-
width: 100%;
7-
position: relative;
9+
.nameRow {
10+
display: flex;
11+
align-items: center;
12+
gap: 8px;
813
}
914

10-
.stickyActionColumn {
11-
position: sticky;
12-
right: 0;
13-
background: white;
14-
box-shadow: -4px 0 6px rgba(0, 0, 0, 0.1);
15-
z-index: 2;
15+
.attendeeName {
16+
font-size: 15px;
17+
font-weight: 600;
18+
line-height: 1.3;
19+
text-decoration: none;
20+
color: var(--mantine-color-text);
21+
22+
&:hover {
23+
text-decoration: underline;
24+
}
25+
}
26+
27+
.attendeeId {
28+
font-size: 12px;
29+
color: var(--mantine-color-dimmed);
30+
font-family: 'Courier New', monospace;
31+
line-height: 1.3;
32+
}
33+
34+
.emailRow {
35+
display: inline-flex;
36+
align-items: center;
37+
gap: 8px;
38+
}
39+
40+
.attendeeEmail {
41+
font-size: 13px;
42+
line-height: 1.3;
43+
color: var(--mantine-color-dimmed);
44+
overflow: hidden;
45+
text-overflow: ellipsis;
46+
white-space: nowrap;
47+
max-width: 250px;
48+
}
49+
50+
.emailActions {
51+
display: inline-flex;
52+
align-items: center;
53+
gap: 4px;
54+
flex-shrink: 0;
55+
}
56+
57+
.actionIcon {
58+
flex-shrink: 0;
59+
}
60+
61+
.orderTicketContainer {
62+
display: flex;
63+
flex-direction: column;
64+
gap: 6px;
65+
}
66+
67+
.ticketName {
68+
font-size: 14px;
69+
font-weight: 500;
70+
color: var(--mantine-color-text);
71+
line-height: 1.3;
72+
overflow: hidden;
73+
text-overflow: ellipsis;
74+
white-space: nowrap;
1675
}
1776

18-
.tableContainer::-webkit-scrollbar {
19-
height: 10px;
77+
.orderId {
78+
font-size: 11px;
79+
color: var(--mantine-color-dimmed);
80+
font-family: 'Courier New', monospace;
81+
line-height: 1.3;
82+
83+
:hover {
84+
text-decoration: underline;
85+
}
86+
}
87+
88+
.registrationDate {
89+
font-size: 12px;
90+
color: var(--mantine-color-dimmed);
91+
line-height: 1.3;
2092
}
2193

22-
.tableContainer::-webkit-scrollbar-thumb {
23-
background: rgba(0, 0, 0, 0.2);
24-
border-radius: 5px;
94+
.checkInButton {
95+
display: inline-flex;
96+
align-items: center;
97+
gap: 6px;
98+
padding: 8px 14px;
99+
border: 1.5px solid var(--mantine-color-default-border);
100+
border-radius: 8px;
101+
background: var(--mantine-color-body);
102+
font-size: 13px;
103+
font-weight: 500;
104+
cursor: pointer;
105+
white-space: nowrap;
106+
107+
&.checkedIn {
108+
border-color: var(--mantine-color-green-6);
109+
background: var(--mantine-color-green-0);
110+
color: var(--mantine-color-green-9);
111+
}
112+
113+
&.notCheckedIn {
114+
color: var(--mantine-color-dimmed);
115+
}
25116
}
26117

27-
.tableContainer::-webkit-scrollbar-track {
28-
background: rgba(0, 0, 0, 0.05);
118+
.actionsMenu {
119+
display: flex;
120+
align-items: center;
121+
justify-content: flex-end;
29122
}

0 commit comments

Comments
 (0)