ESLint exceptions and safety on optional chaining.

This commit is contained in:
Bradley Shellnut 2022-01-09 16:22:45 -08:00
parent f9b5f3f4ba
commit 01ac00eda7
2 changed files with 52 additions and 46 deletions

View file

@ -34,7 +34,7 @@ export default withSession(async (req, res) => {
// console.log('group', group); // console.log('group', group);
response.id = id; response.id = id;
const guestList = []; const guestList = [];
for (const guestId of group?.guests) { for (const guestId of group?.guests || []) {
// console.log(JSON.stringify(guestId)); // console.log(JSON.stringify(guestId));
const guestData = await Guest.findById(guestId); const guestData = await Guest.findById(guestId);
const guest = { const guest = {

View file

@ -297,29 +297,32 @@ export default function SingleGroupPage({ group }) {
gap: '1rem', gap: '1rem',
}} }}
> >
{group?.guests?.map((guest) => {
!guest.isPlusOne ? ( // eslint-disable-next-line react/prop-types
<QuestionStyles key={`${guest?.id}-dietaryNotes`}> group?.guests?.map((guest) =>
<p> !guest.isPlusOne ? (
{guest.firstName} {guest.lastName} : <QuestionStyles key={`${guest?.id}-dietaryNotes`}>
</p> <p>
<label htmlFor={`${guest.id}-dietaryNotes`}> {guest.firstName} {guest.lastName} :
<p className="sr-only">{`Enter dietery restrictions for ${guest.firstName} ${guest.lastName}`}</p> </p>
<textarea <label htmlFor={`${guest.id}-dietaryNotes`}>
name={`${guest.id}-dietaryNotes`} <p className="sr-only">{`Enter dietery restrictions for ${guest.firstName} ${guest.lastName}`}</p>
id={`${guest.id}-dietaryNotes`} <textarea
cols="30" name={`${guest.id}-dietaryNotes`}
rows="2" id={`${guest.id}-dietaryNotes`}
placeholder="Example: Nut allergy, Fish, etc." cols="30"
value={inputs[guest.id]?.dietaryNotes} rows="2"
onChange={handleChange} placeholder="Example: Nut allergy, Fish, etc."
/> value={inputs[guest.id]?.dietaryNotes}
</label> onChange={handleChange}
</QuestionStyles> />
) : ( </label>
'' </QuestionStyles>
) : (
''
)
) )
)} }
</div> </div>
</fieldset> </fieldset>
<fieldset aria-busy={loading} disabled={loading}> <fieldset aria-busy={loading} disabled={loading}>
@ -330,29 +333,32 @@ export default function SingleGroupPage({ group }) {
gap: '1rem', gap: '1rem',
}} }}
> >
{group?.guests?.map((guest) => {
!guest?.isPlusOne ? ( // eslint-disable-next-line react/prop-types
<QuestionStyles key={`${guest?.id}-songRequests`}> group?.guests?.map((guest) =>
<p> !guest?.isPlusOne ? (
{guest.firstName} {guest.lastName}: <QuestionStyles key={`${guest?.id}-songRequests`}>
</p> <p>
<label htmlFor={`${guest.id}-songRequests`}> {guest.firstName} {guest.lastName}:
<p className="sr-only">{`Enter song requests for ${guest.firstName} ${guest.lastName}`}</p> </p>
<textarea <label htmlFor={`${guest.id}-songRequests`}>
name={`${guest.id}-songRequests`} <p className="sr-only">{`Enter song requests for ${guest.firstName} ${guest.lastName}`}</p>
id={`${guest.id}-songRequests`} <textarea
cols="30" name={`${guest.id}-songRequests`}
rows="2" id={`${guest.id}-songRequests`}
placeholder="Example: Paint It Black - Rolling Stones" cols="30"
value={inputs[guest.id]?.songRequests} rows="2"
onChange={handleChange} placeholder="Example: Paint It Black - Rolling Stones"
/> value={inputs[guest.id]?.songRequests}
</label> onChange={handleChange}
</QuestionStyles> />
) : ( </label>
'' </QuestionStyles>
) : (
''
)
) )
)} }
</div> </div>
</fieldset> </fieldset>
<fieldset aria-busy={loading} disabled={loading}> <fieldset aria-busy={loading} disabled={loading}>
@ -436,7 +442,7 @@ export async function getServerSideProps({ params }) {
group.id = params.id; group.id = params.id;
const guestList = []; const guestList = [];
for (const guestId of groupData?.guests) { for (const guestId of groupData?.guests || []) {
const guestData = await Guest.findById(guestId); const guestData = await Guest.findById(guestId);
const guest = { const guest = {
id: guestData.id, id: guestData.id,