Skip to content

Commit 2f5ca7a

Browse files
authored
Merge pull request #186 from m2mathew/fix/send_correct_auth_user_id_to_firestore
Fix/send correct auth user id to firestore
2 parents 22c597a + e7c98b4 commit 2f5ca7a

File tree

5 files changed

+25
-10
lines changed

5 files changed

+25
-10
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "tmac-website",
33
"description": "Website for the Texas Music Administrators Conference",
4-
"version": "2.30.2",
4+
"version": "2.30.3",
55
"repository": {
66
"type": "git",
77
"url": "https://github.com/m2mathew/tmac-website"

src/components/members/MemberContent/MemberInfo/MemberStatus.tsx

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,11 @@ import MemberInfoCard from '../../../shared/MemberInfoCard';
2727
import PaypalButtonWrapper from '../../../register/paypal/paypal-button-wrapper';
2828
import PrintInvoiceUI from '../../../../pages/members/PrintInvoiceUI';
2929
import { appNameShort } from '../../../../utils/app-constants';
30+
import { TfaaAuthUser } from '../../../layout';
3031

3132
// Local Typings
3233
interface Props {
34+
currentAuthUser: TfaaAuthUser | null;
3335
currentMemberData: TfaaMemberData | null;
3436
}
3537

@@ -103,7 +105,10 @@ const StyledStrong = styled.strong(({ theme }) => ({
103105
}));
104106

105107
// Component Definition
106-
const MemberStatus: React.FC<Props> = ({ currentMemberData }) => {
108+
const MemberStatus: React.FC<Props> = ({
109+
currentAuthUser,
110+
currentMemberData,
111+
}) => {
107112
const isRegisteredForCurrentYear = Boolean(currentMemberData);
108113

109114
// If the member paid by check, the TFAA Executive Secretary will manually
@@ -128,14 +133,16 @@ const MemberStatus: React.FC<Props> = ({ currentMemberData }) => {
128133
receiptId: currentMemberData?.receiptId ?? 0,
129134
};
130135

136+
const userId = `${currentAuthUser?.email}-${currentAuthUser?.uid}`;
137+
131138
// Update the member's payment data in the Firestore database
132139
// This shape should be the same as register-membmer-payment
133140
// in the handleCompleteMemberPaymentStep function
134141
try {
135142
await doUpdateEntry(
136143
updatedMemberData,
137144
FIRESTORE_MEMBER_COLLECTION,
138-
currentMemberData?.userId,
145+
userId,
139146
);
140147
} catch (error) {
141148
console.error('Error while updating after a successful payment', error);

src/components/members/MemberContent/MemberInfo/index.tsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,12 @@ import MemberContactInfo from './MemberContactInfo';
1414
import MemberRegistrationTasks from './MemberRegistrationTasks';
1515
import MemberStatus from './MemberStatus';
1616
import AdminActions from './AdminActions';
17+
import { TfaaAuthUser } from '../../../layout';
1718

1819
// Local Typings
1920
interface Props {
2021
authUserEmail: string | undefined;
22+
currentAuthUser: TfaaAuthUser | null;
2123
currentMemberData: TfaaMemberData | null;
2224
isAdmin: boolean;
2325
onUpdateShouldRefetchUserList: ((shouldRefetchUserList: boolean) => void) | null;
@@ -60,6 +62,7 @@ const StyledRoot = styled.div(({ theme }) => ({
6062
// Component Definition
6163
const MemberInfo: React.FC<Props> = ({
6264
authUserEmail,
65+
currentAuthUser,
6366
currentMemberData,
6467
onUpdateShouldRefetchUserList,
6568
}) => {
@@ -71,7 +74,10 @@ const MemberInfo: React.FC<Props> = ({
7174
<StyledRoot>
7275
<Motifs small />
7376

74-
<MemberStatus currentMemberData={currentMemberData} />
77+
<MemberStatus
78+
currentAuthUser={currentAuthUser}
79+
currentMemberData={currentMemberData}
80+
/>
7581

7682
{currentMemberData && (
7783
<MemberContactInfo

src/components/members/MemberContent/index.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,10 @@ const MemberContent: React.FC<Props> = ({ currentAuthUser }) => {
3636
useEffect(() => {
3737
if (currentAuthUser && allMembersData && allMembersData.length > 0 && !currentMemberData) {
3838
const currentMember = allMembersData.find(
39-
// We used to use authUser.uid as the unique key in the Firestore
40-
// Now we use authUser.email
41-
// We have to search for both for backwards compatibility
39+
// We use a combination of email and uid to uniquely identify a user.
40+
// The email part makes it easier to find a user in the database.
4241
(user) => {
43-
return user.userId === currentAuthUser.uid || user.userId === currentAuthUser.email;
42+
return user.userId === `${currentAuthUser.email}-${currentAuthUser.uid}`;
4443
});
4544

4645
setCurrentMemberData(currentMember ?? null);
@@ -65,6 +64,7 @@ const MemberContent: React.FC<Props> = ({ currentAuthUser }) => {
6564

6665
<MemberInfo
6766
authUserEmail={currentAuthUser?.email || currentMemberData?.Email}
67+
currentAuthUser={currentAuthUser}
6868
currentMemberData={currentMemberData}
6969
isAdmin={isAdmin}
7070
onUpdateShouldRefetchUserList={handleUpdateShouldRefetchUserList}

src/components/register/SponsorRegisterContent.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,8 @@ const SponsorRegisterContent: React.FC = () => {
217217

218218
const hasCompletedAllSponsorSteps = completedSponsorSteps?.length >= 3;
219219

220+
const authenticatedUserId = `${currentAuthUser?.email}-${currentAuthUser?.uid}`;
221+
220222
/* Children change depending on which step is active */
221223
return (
222224
<StyledRoot>
@@ -237,7 +239,7 @@ const SponsorRegisterContent: React.FC = () => {
237239
)}
238240
{activeStep === 1 && (
239241
<RegisterSponsorFormWrapper
240-
authenticatedUserId={`${currentAuthUser?.email}-${currentAuthUser?.uid}`}
242+
authenticatedUserId={authenticatedUserId}
241243
initialSponsorFormValues={INITIAL_SPONSOR_FORM_VALUES}
242244
onCompleteSponsorStep={handleCompleteSponsorStep}
243245
onUpdateSponsorForm={handleUpdateSponsorForm}
@@ -246,7 +248,7 @@ const SponsorRegisterContent: React.FC = () => {
246248
)}
247249
{[2, 3].includes(activeStep) && (
248250
<RegisterSponsorPayment
249-
authenticatedUserId={currentAuthUser?.uid}
251+
authenticatedUserId={authenticatedUserId}
250252
onUpdateSponsorForm={handleUpdateSponsorForm}
251253
sponsorForm={sponsorForm}
252254
/>

0 commit comments

Comments
 (0)