Skip to content

Commit d2e9e01

Browse files
Add results to email callback (#182)
* added results * updated result data set exposed in email callback * updated result data set exposed in email callback
1 parent 0d60c66 commit d2e9e01

File tree

3 files changed

+14
-3
lines changed

3 files changed

+14
-3
lines changed

spec/components/ShareResultsModal/ShareResultsModal.test.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
11
import React from 'react';
22
import { fireEvent, render, screen, waitFor } from '@testing-library/react';
33

4+
import * as factories from '../../__tests__/factories';
5+
46
import ShareResultsModal from '../../../src/components/ShareResultsModal/ShareResultsModal';
57
import { QuizReturnState } from '../../../src/types';
68
import * as useShareResultsLink from '../../../src/hooks/useShareResultsLink';
79

810
describe(`${ShareResultsModal.name} client`, () => {
11+
const results = factories.quizResults.build();
912
const props: React.ComponentProps<typeof ShareResultsModal> = {
1013
onClose: jest.fn(),
1114
onEmailResults: jest.fn(),
12-
quizState: {} as QuizReturnState['quiz'],
15+
quizState: { results } as QuizReturnState['quiz'],
1316
};
1417

1518
beforeEach(() => {
@@ -25,6 +28,7 @@ describe(`${ShareResultsModal.name} client`, () => {
2528
expect(props.onEmailResults).toHaveBeenCalledWith({
2629
2730
url: 'http://example.com',
31+
results: results!.response!.results,
2832
})
2933
);
3034
});

src/components/ShareResultsModal/ShareResultsModal.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ export default function ShareResultsModal({
1919
onEmailResults,
2020
}: ShareResultsModalProps) {
2121
const url = useShareResultsLink(quizState);
22+
const results = quizState?.results?.response?.results;
2223

2324
return (
2425
<div className='cio-share-results-modal' role='presentation' onClick={onClose}>
@@ -42,7 +43,9 @@ export default function ShareResultsModal({
4243
? 'Share or save your quiz results through email or using the link below.'
4344
: 'Share or save your quiz results with this link.'}
4445
</div>
45-
{onEmailResults && <EmailField onSubmit={(email) => onEmailResults({ email, url })} />}
46+
{onEmailResults && (
47+
<EmailField onSubmit={(email) => onEmailResults({ email, url, results })} />
48+
)}
4649
<LinkField url={url} />
4750
</div>
4851
</div>

src/types.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,11 @@ export type {
3131
} from '@constructor-io/constructorio-client-javascript/lib/types';
3232

3333
export type QuizResultDataPartial = Partial<QuizResultData>;
34-
export type QuizEmailResults = { email: string; url: string };
34+
export type QuizEmailResults = {
35+
email: string;
36+
url: string;
37+
results?: Partial<QuizResultData>[];
38+
};
3539

3640
// QUIZ PROPS
3741
export interface ResultCardOptions {

0 commit comments

Comments
 (0)